Build a 3D Site Without Code with Framer - Crash Course

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
Today we're gonna build a fully functional 3d site without code, and it's all done in Framer. We have a full landing page with animation and parallax, as well as multiple types of components and layouts. Then we have multiple pages and layout styles with effects and appear animations, and it's all responsive, meaning that it's gonna work on any resolution, including with a hamburger menu that is very common and you can switch between the pages from here. Framer has forms, which means you can collect information from users using services like MailChimp. So we're gonna use stacks pretty much everywhere so that we can add new components easily, and it's going to adapt to the new content and we're going to use break points to adapt the layout to different devices. Now framer feels like a design tool. You have the navigator, you have the layers and then you have the inspectors and all the styles, as well as the size and positioning and effects and typography works pretty much the same way as in Figma and it's going to be so familiar thanks to the component system, as well as the overrides and the interactions. And as I design, you can see that I can edit everything on the fly and I can embed fully functional elements, such as this 3d asset by using an embed component. Now what makes framer so unique is that I can insert a lot of types of pre-made components, such as layout elements, navigation for menus, isolated elements, such as cards, dropdowns, and indicators and all the icons that you see here are using a premade component that have access to hundreds. Then there's the CMS part. So we have a collection and it's very easy to create your own data so that your teammates, especially editors and managers can enter that information and it's going to populate your layout. So this is a full course. We're gonna learn all of that, how to create a basic layout and content that are dynamic, how to work with components, interactions, and animations. We're going to build multiple pages and add break points to make your layout responsive, work with forms and all types of dynamic components, such as icons, social, utility, etcetera. This is a full course, and we're going to learn everything step by step, all the assets and the design files will be provided and you can also copy my project to your documents and fully inspect, edit everything. This is a template that you can use for your own site and build from there. Now, this course is entirely free thanks to Framer sponsorship, which means that you can share it to your friends and then they can learn with you without having to pay. Framer has been a top design tool for designers for many years and they've been focusing on framer sites, which allows you to create a fully functional site using all the familiar design tools. In fact, they have many free templates that you can start with. And there are many top design teams that use framer to launch their website. To follow this course, going to need to create a free account and you have access to all of the features and you can even publish your website for up to a thousand monthly visitors. In fact, I built all of this by using the free account so you can follow along and build everything without having to pay anything. You will also need to download the assets file, which include the images for the logos, the backgrounds and wallpapers. So with this, I hope you're excited to build a 3d site without writing a single line of code. So let's get started. Let's start with the basics. In Framer, you can edit from the browser or you can also download for the Mac which is a little bit more convenient and they have a version for the apple M1 chip. Once you have created an account and inside the app you have a bunch of basic tutorials that you can go through. But otherwise let's create a new project. This new project comes with a basic template, including the top bar and a few pages about contact and 404. You can preview the website by going to the play button on the top right and here you can navigate to each of those pages and see how they respond two different devices. Let's exit this. And I'm going to go back to home. Then I like to start from scratch. It's also better for learning. So we already have the canvas, which is the desktop version. And here we're going to create a frame. If you used Figma before, you're going to be familiar with creating this pretty much everywhere. I am pressing F and I'm drawing a rectangle. This is great for grouping elements. So basically a container, or it can also be an element by itself for images, backgrounds and stacks. So for this rectangle, I have the position, the size and the layout features as well as the styles I can decide to change the feel and go to image then upload from the assets folder. So I'm going to pick hero BG. So I can drag this around and resize it, or I can use constraints. By setting zero from the top and Left and right. And set the height to 600. And so far, this is how a design tool works. I can also switch between pages and layers and assets. Now you can see that we have the text styles as well as the links. So when you start a new design, it's really good to have a bunch of text styles so that your design is consistent across. Framer it already comes with four text styles but typically we have a few more such as footnote and caption. I like to model a lot from some of the best practices from apple and material design from Google so we can pretty much cover any range of layouts that we need. Now I'm going to go back to layers. I'm going to create a title by using the T. And here I'm going to type mixed 3d and 2d design with framer. So going down a little bit in the inspector, I have the text options, but I should definitely select one of the preset textiles. And here I have one which is called title. It's typically very large and I can edit this. The font that we're going to use for the entire project is called Manrope. And this is actually from Google fonts so it's free. You can see here from the logo. So with Framer, we have access to all of the Google fonts on top of the custom fonts that you may have installed. Since my website is mostly a dark mode website I'm going to change the color to white. Then for the size I'll set to 60. Let me move this to the left a little bit. And here we have the option to select between large, medium, and small. And what this means is that if the resolution is 1200 and plus, then we're using this size and for the medium is 810 to 0 then we have small. For medium I'll sit 2 48 and for small let's set it 2 38. So what this means is that if I play this. And I resize to a smaller resolution. You can see that the font size is changing based on that. As well as the constraints for my image that responds to the browser size. Let's add another text. So press T and here I'm going to paste a long text. You can use any text that you want. Again, I'm going to select styles. This time, I'm going to select paragraph. Let's edit this. I'll change to regular then set it to white. And what I'm noticing is that I don't have break points for this one. So what I can do is to add them and we have these preset numbers. For medium 13 is a little bit too small. So I'm going to set to 14. And small 14 as well. Let me move this text right here. And now I want to show you how to set break points, not just for texts but also for your layout, this is going to be super useful for making it adaptive. I'm going to click on break point and you can see, we have pretty much the same numbers of 1,208, 10. So tablet. I'm going to zoom out a little bit. And add another one for phone. These are the most common resolutions when you're designing a website. And what you're noticing right away is that my constraints are working. Meaning that the size of the image is going to zero, zero from the sides and the text styles also adapt. And for every page it's really helpful to have these break points. Let me focus back on the desktop. Now, I'm going to say like both texts and resize the with. To four 60. Let me just. Place them a little bit and also after selecting the two of them I'm going to group them inside a frame and the shortcut is command enter. So let's learn a little bit about constraints because this is what every design tool have. And it's also good to see the results in real time, especially across multiple resolution. It's going to help you understand. You can already see the problem where this is cut off. Also the second text is from the bottom and we have a lot of gap here. So let me select the container and I'm going to set to one 30 from the top and 50 from the left. Like this, we have consistent spacing from the left and top across the break points. Secondly, it's also good to inspect the constraints for each. So we can see that the title is top left and right. But the text is bottom. But we can switch that to top instead. However. However that is not solving our problem because for the small resolutions. We still have that gap. Now, this is where I love to use the stack feature. And this is more how CSS works, meaning that the content will Stack one after another. So Figma also has this feature and when I go to the height I have this option called fit content. What this means is that is going to detect the size of the content on any resolution at any text size and it's going to automatically set the height of the container to fit that. And voila that solves our problem. Now the way that break points work is that whatever is changed on the main template, which is the desktop is going to apply automatically to tablet and phone, but you can also change on the phone and it's only going to apply for the phone. Meaning that if I select the container for the text on the phone, And I change it to a size of 300 it's not going to affect the other resolutions. Likewise for the constraints I'm going to set to 40 from the left. Then you also need to pay attention to what has a fixed size, a fit size or a fill size. So we've learned that fit is going to fit the size of the content. But you also have fill which means that it's going to take all available space. I'm going to select both texts. And set the width to fill. Meaning that if the container is smaller. Then it's going to fill that space. Now we have an adaptive layout. Let me just put "and" to another line. And this is what we have so far. So before we go, I want to show you how to embed a 3d element in your design because I think 3d is really cool and so much more accessible nowadays. Now right now, we have a frame that is using a background. And instead of using a background, I'm just going to remove that by pressing on the X and instead I'm going to go to insert and go to utility and we have a really neat embed component that we can insert. So here I'm going to set it to the full size using constraint, zero on all sides. And I'm going to use my 3d asset from spline by pasting the URL from spline. And there you go this is a 3d asset that is fully interactive that I can use for my website. So just like in design tools, we need to prioritize some layers, putting some above others. So I'm going to put the embed after meaning that now my content is on top. In design is very important to make the text easy to read. And here we're lacking a little bit of contrast, especially for the smaller resolution and because of the background. We can solve that by clicking on the text and adding a text shadow. So I'm going to set Y to 10. And blur to 20. And also the color. I'm going to increase because with a darker UI, you should set the drop shadow a little bit darker and it's going to be fine. Another thing that I can do to increase the contrast is to add a mask using a gradient. So let's add a frame. I'll set the height to 400. And the constraint to zero from left and right, as well as bottom. Now I'm going to go to Fill and set a linear gradient from black 0%. Then for the other side, I'll select it first and set it to black 50%. Just make sure that this is after the content. Now, if you play this, you can see that I have my 3d element then, if I resize, it's going to adapt automatically, but also I'm noticing that I don't have the interaction at the bottom. And this is easy to fix by going to styles. What you see in the inspectors are the most commonly used styles, but you can also have more by clicking on the plus sign and here we have styles such as blur, blending and the one that I want is called 0.2 events, and I'm just going to set it to none. What this means is that this element, which is the mask I'm going to rename it to mask is not going to be in the way of the interactions. So I can just mouse over right here. So let's rename the frame and this is the hero section. Also, we should rename the project to my 3d site or whatever name that you have for your site. And that's it. We managed to design a very basic Hero section with a 3d asset. We're going to dive deeper into the stacks and adaptive layout features. So far, we've played a little bit with fill and fit content. And when you set a container to fit content, it will automatically use the layout feature, which is essentially a stack. And you can see here that just like CSS flex or Swift UI stacks, we have the direction, the distribution, the alignment, the wrapping, as well as the gap and the padding. And that's typically how you would design your layout in CSS or in Swift UI. So stacks are gonna make your life so much easier. Personally. I like to use stacks everywhere because when I add new content, it's going to adjust automatically. So for example, I'm going to set the entire desktop to a stack. So I can either click on the plus sign on the layout, or as soon as I set a height or width to fit content, it's going to automatically use that. Now, keep in mind that when you change an existing element to a Stack, sometimes it can affect the inner elements. So in this case, it's very important to pay attention to the next container inside in this case it's hero. So make sure to select that and we're noticing that it has a fixed size across the resolution so we need to set that to Fill to take the full space. To avoid having to readjust some of the elements it's definitely best to start with stacks from the start. And when you have a Stack, you can add more columns or rows depending on the direction. So in this case, I'm going to add a new section to my landing page, and we have a gap here. So I can set the gap to zero. And now in my new section, I'm going to change the feel the 0 7 0 8 18. So this is my background and I'm going to start right away with a Stack, but notice that I don't have fit content if I don't have any child element. And if I don't have a container, it's not going to show the option for Fill. So for now, I'm just going to set layout and the direction is going to be vertical. Then I'll add a new text trusted by 8,000 companies worldwide. And here I'm going to select one of the styles which is section title. Edited set it to white. The size is going to be 22. And then add break points, medium 20 and small 20. Notice that inside a Stack it's going to center automatically and that's because the container itself controls the alignment, distribution and so on. Let's add a new text and this time you can copy from the content. So I'll create a new style and name this one, footnote create. Here, I'm going to edit set the font, to Manrope weight medium white 70% opacity. Then the size 16 medium 14 and small 14. Let me exit this and I'm going to set the width to a fixed size of four 60. And text alignment to center. Now looking at the different resolution. You can see that I have some issues for the phone resolution. And what you want to do for small resolutions is to set the, width to fill. As long as you have a container, this is going to work. And then we need to add some extra padding. So let's select the container. First, I like to make sure that the height is set to fit content. And I'm going to use padding instead which is the best practice. A number that I like to use to have enough negative spacing is 100. But the problem with having 100 all around is that it doesn't work well for mobile. Instead of using on all sides, I'm going to customize the sides. For top and bottom, leave it at 100. But for left and right. I'm going to set it to 30. So it looks much better here. In fact, the standard for tablet and desktop is about 30, but for mobile, it's actually 20 on left and right. So we have as much space as possible for the content. I also want to make sure that the title is going to be centered. Great. If you play this, you can see that it adapts really well to the content as I change the resolution. So, what about the hero? What if I want to use a Stack instead of constraints, because it's far more responsive when I do that. Now the thing is we added two elements that are supposed to use constraints such as the mask, as well as the embed element, which is the background. So we need to do a little trick here and adjust our elements. And I'm going to show you that. Let's go to the hero container and I'm going to turn this. Into a Stack. But you're going to notice a big problem. And I think it's important that we face these big problems. It's going to happen a lot, especially if you switch between constraints and stacks. So, what is happening here is that each element that you see inside this Stack is spread horizontally, meaning that we have the 3d embed, the mask and the rows in that order. So, what I need to do is to make sure that these two elements that are using constraints I should keep using constraints, even though it's part of a Stack and this is a really neat feature in framer. So I'm going to select both of these. And I'm going to set the position type to absolute. As a result, it's no longer part of the Stack and you can see that by having my content completely centered within the Stack. So I just need to adjust the constraints of these two extra elements. For embed, I'm going to set zero on all sides like before. And for the mask I'm going to set to zero. On left, right. And bottom like before. Now when you using absolute positioning within a Stack, sometimes it's going to take priority in term of being above the other elements. So to fix this we have this concept, which is very common in swift UI and CSS, which is the Z index and the higher, the more it's going to be above, so lower meaning going to the back. I'll set the mask Z index to zero. As well as the embed Z index to zero. And voila, you can see that the content itself is now above. Another thing that you'll notice when you turn an existing element using constraints into a Stack. Is that it's going to affect the different break points. So we can just repeat the same steps. So zero on all sides. And sometimes you also have the ability to right click and reset overrides, meaning that it's going to take exactly the same values as the original ones in desktop. Okay. So we learned a lot about how stacks work, how it affects the inner elements and how to turn an existing element with constraints into a Stack then deal with the problems. So now I'm going to go to hero and because it's using a Stack I should definitely use height. With fit content. Then use my magic numbers for the padding which is 100 3,130. I also want to align my content to the left by default it's centered by using distribution. I can set it to start. So start depending on the direction, it means left if it's horizontal or top, if it's vertical. So depending on the size of your titles. I do feel that sometimes with really big titles, you need even more spacing. So the bigger, the elements the bigger, the spacing. So I like to use 54 desktop in some cases. But for tablet definitely set to 30 left and right. And for the phone, I'm going to set it to 20. Perfect. While I'm here I want to make sure to select the title, but notice here that I cannot select the title and this again will happen if you're using absolute positioning again which can also take priority over the selection of the elements. And one trick that I found was that you can lock those elements. So the embed element and a mask as a result, they won't be selectable anymore. This is useful for backgrounds that don't need to be changed all the time but keep in mind that once it's locked you need to go back to the layers list to be able to select it again. While I'm here, I'm going to select the rows container and set the gap to 30. And for the title I like for it to be consistent across the resolutions. So I want to make sure that with is with the word framer. And so I'm going to put this from the desktop to make sure that it affects every single resolution. Now a really good practice for mobile is to take the entire width of the phone. I'm going to select the rows for mobile specifically and set the width to fill. Perfect. So previewing this, you can see that the layout is far more responsive to the resolution. Okay. Let's focus back on the second section. I'm going to set the gap to 30. Then I'm going to add some logos underneath. Let's go to the images folder. Copy all the company logos. Then paste in the second section. And allow. Now I'm going to move this back to the rows container. And I have my logos. Then I'll group inside a frame command enter. I like to start with fit content on both width and height and then set the Stack to horizontal. Let me use the down arrow on the keyboard to move it down. And in this case, I'm going to set the width back to fill, to take the entire space. And then we're going to play with the distribution. So we can use start, which is left center or end to right, depending on the direction. We can also use space between which is going to push the first and last to the far end. Or you can use space around and evenly to think of each element as a box and centered within the boxes meaning that now we have a little bit of padding at the start and at the end, but in this case, I like to use space between. And the items as I did before I can move it quite easily in the order that I want by using the keyboard arrows, I'm going to check for mobile it doesn't fit the screen so one thing that I can do is to resize the logos first because remember that the text styles also resize based on the resolution. So I'm going to select all of these logos and I'm going to resize them manually to roughly 38 in term of height. And for mobile, I'm going to resize to about 36 in term of height. This is still not enough to fit every logo. So what I can do is to enable wrap. Then I want to set to center for the logos. Let me add a little bit of gap to 20 and there you go. So, this is what we have so far and I think that looks pretty good. Now before we go, I want to add a few new elements, including the divider. So let's create a frame. Set the height of one, and a width, we can use a percentage so 25% which becomes relative instead of fixed. Let's change the fill color to white and the alpha to 10%. Then I'll add a new text. Publish a site in minutes. Change that to section title. And here we're going to use a really cool plugin which allows us to have access to hundreds of icons. So we're going to insert going to icons. And the one that I really like is called phosphor. And so this is what we have. I'm going to move it down. Change the size to 32 by 32. And you can see that it's a custom component. And it has its own section for the inspector. And I can quickly change from hundreds of icons. If I want to have the full list I can go to their website. And I can search for the icon. So in this case, I'm going to search for Pen and I'm going to use this one. So let's go to the dropdown change to Pen. Then I'll add a new text after that. Flexible component. Create a new textile, which is going to be very close to the footnote. And instead of creating from scratch, I can duplicate the footnote. Rename this to caption 2. 2 because I want to set it in caps. So select it. And edit it. I'm going to set it to bowl and transform, upper case because I want everything in caps. To create a different style of a title or a subtitle. And I'm going to set the size to 14 in large and 13 for small and medium. So the color, let me just set it back to a hundred percent. Then I'll add a new text which is roughly the same size as the caption 2. So I'm going to duplicate caption 2. And this one is just going to be caption. Select it. Edit it. Set it back to none. I don't want this uppercase. As for the weight, I'm going to set it to medium. White. 70% opacity. And we're going to keep the same size because it's caption and caption 2. Okay. So what I want to do is select these three and put that inside a container. So select these three elements, command and enter. Width to 2 50. And height to fit content. I'll set the padding to 30, 20, 30, and 20. Now, oftentimes when you create a frame. The inner elements are going to be fixed so what you can do, especially for the text is to set them to fill so that they fit the container. And then set the alignment to center in this case. So I want to add a border. So I'm going to go to styles and ad d a border white to 10%. Then the corner radius to 25 and the Fill, set it to black 40%. And voila, I have my container, it's all in stacks and it's super adaptive. Every time that I add a new element, it adjusts the frame automatically and that's why stacks are so powerful in framer. In fact, this is a feature that is available in all the design tools and designers are learning to use this more and more. But in framer is just to another level because we're building a fully working site. Before we go I just want to make sure that I rename this Stack to feature and this section to features. I hope you learn a lot about stacks and fit and fill content, how to adapt to different break points. And most importantly, how to deal with the difficult task of turning an existing element with constraints to a Stack that is far more adaptive and responsive. These are concepts that are universal to every single platform, including CSS in Swift UI so you're going to carry this knowledge with you regardless of the platforms. In this section, we'll learn about components, which have super powers in framer because we have so many features packed with it. Now when you designing, as soon as you have an element that is meant to be reused multiple times you want to create a component. So I'm going to select this feature Stack here. And I'm going to create a component using option command and K. And I'm going to call that feature, then create. So here we have the component view. And we can create new variants as well as a state. In this case, it's a hover or a pressed state. But let's start with variables essentially they are overrides, which means that you can make your component customizable as you create many instances. So for example, You want to make sure that you can customize the icon, the title and the text. And to create variables it's very simple. Each of these values that you see in the inspector, including the styles and the plugin properties can be variables. So for example, you want to make sure that the name of the icon is customizable. So I'm going to click on plus name. I'll rename this to icon and press enter. And voila I have my first variable. I'm going to do the same for the title. Text content create a variable, it's going to be of type plain text. And it's simply a title. Then we have the text content create variable, plain text and it does a pretty good job at auto-filling the name of the variable. So as a result, I can exit my component by going to the breadcrumbs menu here, click on home and we're back. Then I'll duplicate this command D two times. Go to the second one and notice that my component has overrides. I have the icon title and text, and I can change them as I wish. So you can use any content that you want or from the content text. That I'm going to copy and paste. I'll select the third one. Change the content. And also change the icon, this one to image. And select the third one icon to layout. Title copy and paste. And voila, this is how you create components. This is how you set variables and you replace the overrides. Now let's set the layout I'm going to select these three elements. Create frame, command enter. Set width to fill and height to fit content. As soon as I have fit content is going to set the layout which allows me to set the direction to horizontal. Distribute to center, then gap to 20. And I also want to make sure that each of these elements are going to use the full width. Because notice that in tablet, it doesn't really fit well. And to make it more responsive, I'm going to set the width to fill. So it's going to distribute proportionally depending on the available space. Now after changing the elements to fill in term of height, you're going to notice that it's going to affect the height. Of the container. And it's become fixed. So make sure to adjust that back to fit content. Then for mobile I want to set the direction to vertical. Now let's test this in the preview. And I want to show you a different problem. You can see that when I go at this resolution before the tablet. It's becoming really, really large. And likewise, when I go to desktop and I go really large. These elements, including the logos are becoming too large. So there's one technique that I love to use and it's called max width. So for any container or any element I can set the min-max values. In the inspector I can select a max width and I'm going to set it to 800 px which is the fixed value, especially if you're switching between percentage and fixed value. The same for the logos. I'm going to add a max width of 800 PX. So that it doesn't become too large. And the same for the phone. I'll set the max width to 400. Now let's take a look. And you can see it doesn't exceed that 400. And likewise for the desktop. You can see that it's quite manageable. Okay, let's talk about components and variants because they are necessary in order to create buttons and states. In this case, I'm going to add a button and I'm going to make a hover interaction for that button. Let's start with the text, which is get the app and I'm going to select styles. I'm going to use footnote 2, which means that I'm going to duplicate this first change the name. Create and selected. Let me edit it. I'll change the color to white a hundred percent and transform because it's footnote 2, to uppercase. For the weight, I'm going to set it to semi bold. Let me close this and I'm going to put this inside a frame. So command enter. Rename it to button. Set the width to two 20. Height to fit content. Direction, horizontal padding. I'll set it to 10. Now, I'm going to go to the field and I'm going to use one of the gradients so linear and here you can use one of the preset gradients I'm going to use the last one, or you can use any color. And then I'm going to change the angle to 1 35. If you use shift is going to snap to a more precise angle. For the color code, you can see it's B 1 75 F F two 1 C 14 F F. Okay. For the corner radius, I'm going to set it to 24. But the thing is I want to customize one of the corners so I can go to the specific corner which is bottom right and set it to zero. So now I have a very different style. I'm also going to add an icon. So I'm going to go to insert and again, icons phosphor. The color is black. And then in phosphor, there's a neat style called duotone which has an additional shade. The icon itself, I'm going to change that to device mobile. Awesome. Now I'm going to select the button and I'm going to create a component, option command and K. Create for the name button. So when you have components, it's also very common to have different variants, especially when you have a different style spacing structure. So you want to create a new variant for that. And I just need to click on plus variant. It's going to create one. And from here I have exactly the same layers. I can also have new layers or hide existing layers. So it's very flexible. Now, if I'm using the same layers and properties, I want to be consistent with those properties. So for example, here, I'm using a gradient. So I want to make sure that every new variant, if I'm using the same properties, I'm also using a gradient as well. So, let me go to styles. Even though I want to use a flat color I still need to use linear gradient. So the first color and the second color is going to be black. Opacity 50% and likewise for the second color, black 50%. Then for the icon, I'm going to change this to play. And change the color. To F F 8 8 AA. Now I will also change the variables so if I'm using the same layers, I can just go from Varian one is going to apply to all the other variants. I'm going to start with the name of the icon name that icon. And the text which is already set in this case. Now for the variables I already have the title for the text. Just make sure that both of them have those variables. And for the icon, I'm going to select both and set the name which is icon. Now, because these are variables, you're going to notice that it's going to take the default value everywhere. And we're going to customize that when we're outside of the component. So I'll duplicate the component. And the first icon again is DeviceMobile. And for the second icon it's going to be play. But here because I have a new variant, I have a field called Variant that I can customize to variant two. Let me just change the text to watch the video. Perfect. Now I'm going to select both of these components. Create frame command enter. Width Fill height fit content. Then direction horizontal. Then gap 20. Let me look at the different resolutions. And here, I noticed that for the phone, I should set the layout to vertical. And at the same time, I should align to the left. So I could also use a border color for the second variant. So let me do that. And go to styles and border using white and 20% opacity. Perfect. Now we want to add a hover state and this is very common for web design is to have the mouse over interaction, a little bit of transition animation. So we're going to do that through the hover state. So I'm going to press on plus hover. Select hover. And here for the transition animation, I can change any value that are already set and existing. So for example, I can select the title. And I can change the opacity to 0.6, which is 60%. I can also increase the gap to 20, which means that it's going to animate the gap. 40 icon I can animate the rotation. So let's say 90 degrees. Now the real icon is the device mobile. And I don't have the correct preview here. So one thing you can do is for your variable, you can select a default value that you want. So device mobile. And voila. Now, one thing to note is that when you're creating a transition, make sure that the original variant has that value. So for example, if I want to animate a border, well, make sure that the border already exists originally, otherwise the animation is not going to look good. It's going to look instant. So I'm going to add a border of white. And I'm going to set it to 0% opacity so that it's not visible. And I'm going to animate that to 20%. And likewise for the variant 2, I'm going to create a hover state. So gap 20. Then for the border, I'm going to set to 30% opacity. And the Fill color, set it to 20%. Now you can preview the interaction from the component itself, or to make it more accurate, you can preview from the website. Now another thing that you can do is to change the animation timing. So you can select variant 2, and for the transition we can change from spring to the popular ease. And here we have the ease in out with the animation timing that I want. You can also customize the animation timing and the Bezier. So you have a lot of control over the timing of your animation. So here I have spring and here I have ease in out as 0.3 and I can preview that. So. This is how it looks like with a little bit of spring. And this is how it looks like with ease in out. All right, we're going to finish by creating the third variant for the button. And I want to show you how powerful variants can be by changing even more of the structure. So let's create a third variant. So for the width, I'm going to set it to fit content this time and for the padding, I'm going to set it to 4 from the top, 16, 4 and 16. The icon is going to be much smaller to 16 by 16 changing it to white and the text is going to be caption. Now you can double click on the style to go to the list of text styles. I'll select caption. Let me select back the container and I'll change the radius to all around 20. The border is white 20%. For the background, I'm going to set both colors to white 10%. Then I'm going to move the icon to the right side instead. Now you can see that I changed the structure of the component completely for variant three. And I'm still using the same layers, but with different styling. So now I'm going to create a hover state, set the gap to 20 and I'm going to go to fill. Set both to black 10%. Then the border to white 30%. Let me exit the component. And I'm going to insert the component. There's a shortcut for it, which is command forward slash. This is where you're going to see your team components. If you have a team or you can go home and you have your project component. So I'm just going to drag and drop the button right here. Change to Varian three. Set the width to fit content. And I'm going to change the container to align to the left. Select the component and for the title is going to be updated. iOS 16. For the icon, arrow right. And voila. So let's preview this again. And we have the beautiful small button that is a third variant of our component. And that's really cool. Let's zoom out a little bit to make sure that everything is well adapted for all resolutions and everything seems to work great. So we can see that the components are really powerful in Framer, and I haven't even shown all the features yet. In the next section, we're going to create a custom top bar with a background blur and also a beautiful hamburger menu animation. So I'll see you in the next section. In this section, we're going to create a top bar animation, which is one of the most important elements in a website because it's the main menu and it's also adaptive to mobile so we have a hamburger menu along with a smaller size menu that is going to animate on top. So along the way, we're going to learn how to work with the background blur and how to create a sticky header. Now, let me zoom in a little bit and I'm going to select the desktop. And insert a frame. So this frame, I'm going to put that outside of the hero. I'll set the width to fill and the height to 60, which is a typical size. The background I'll change to black 30%. Right now it's taking its own section, but I can also choose to make it fixed, which is a positioning value that is very common in CSS as well. Now, because this is fixed, it's going to have to use constraints. So I'm going to set it to zero left and right. And if I preview this and I scroll, you can see that it always sticks to the very top. Let me rename this to top bar. And I'm going to zoom out to make sure that it works across resolutions. I'm noticing that sometimes, especially working with absolute or fixed positioning, it's going to affect some of the resolutions. So I'm going to select the top bar right-click and reset overrides. One thing to keep in mind is that when you add a top bar that is on top of the content. You need to add an extra top padding to compensate for it. Otherwise sometimes it's going to hide some of the valuable content. So in this case, I'm going to go to the hero section. And I'm going to add 60 to the top. So 1 60. And I'm going to do the same for mobile. And there you go. Now let's talk about background blur because if I select this and I go to style, I click on the plus because it's not available in the inspector. I see that I don't have that value anywhere. In Framer, it's pretty hidden. And you're going to need to find that in the options here, go to view. And at the very bottom, you're going to have the option for show background blur. Once you have that, you can now use that inside your project anywhere there's a style. So we're going to add that option right after blur which is BG blur. And I'm going to set the strength to 40. And there we go, so scrolling with this, we have this beautiful blurred sheet. Let's create a button inside the top bar. Let's start with the logo. I'm going to create a frame and it's going to be 24 by 24. Then I'll go to fill, change the image and upload logo DC. Typically you want your clickable area to be different from the asset itself. Sometime the asset is not exactly the size that you want. A good size universally is 44 by 44 which is great for mobile and desktop as well. You can even go to 36 by 36 or 24 by 24, especially for desktop. So I'm going to create another frame to surround it and I'm going to set it to 44 by 44. Let me just remove the fill and I'm going to select the logo itself. Then it's going to be centered. You can also use the alignment tools to align middle or left if you wish. This is nicely coordinated with the constraints. Now I'm going to select the frame and create a component called logo because I want to hover interaction. So let's create the hover. And it's going to be very simply set to opacity 0.6. And that's it. Let's click on the top bar and we're going to set the layout, direction horizontal. Next we're going to create the menu using the text. Press T, components text style footnote. And now we're going to create a component because we want this to be duplicated multiple times. And another thing is, if it's not a frame the component will take care of the frame. So in this case, this is a text element. And I'm going to create a component, which is button small. And you can see that my component has created a frame, which is the variant itself. As a result, I can set the width to fit content as well as the height to fit. And then I'm going to set the padding to 8 from the top 16 from the sides. Remember that for the transition to be smooth, we want to set the fill and the border if we want to animate those values. So I'm going to set the fill to black. And opacity 0%. And the border to be white. Again, opacity 0%. Also I'll set the corner radius to 10. Now I can set my hover state. Go back to the fill. And set to 20%, likewise for the border. Great. Let me go back to home. And now I have my component. And both have the hover interaction and it's really smooth in term of transition. Let me duplicate this two times to create more items. The second component, notice that the value was created automatically, especially because we have the text selected. So it's pretty smart like that. I'm going to change to pricing for the second and updates for the third. I will also create a frame from these three button small. Command enter. Then fit content for both width and height. Set the gap to 50. And now for the container which is the top bar. I'm going to set to space between to push everything to the sides. I'm also going to use my spacing rules of 8 for bottom and top, and 30 for left and right. Now, if I add another element inside my Stack, it's going to push this text menu to the middle. So, let me start with a text which is sign up. Set it to footnote 2. Create a component. I'll call that button 2. And we'll set the padding here, but first, fit content for width and height. Padding 8 and 16, so repeat those. Now for the radius, I'm going to set it to look like my buttons and it's going to be 24, 24, 0 24. Then I'll add a border color. And I'm going to use the color code 6 1 9 3 F F. Then said a simple hover state. Which is going to change the border color to white. Now, I'm going to go back and you can see that from here since I have three elements in my Stack and I'm using space between it's going to push two to the extreme and one to the center. All right. So now we're ready to create the hamburger menu animation. And also the top bar typically should be a component because we're going to have multiple pages. So it's going to be reused. So I'm going to select the top bar and create component, name it top bar. So, this is a nice trick. Where you want to use a variant for the phone resolution. So I'm going to create variant 2 and I'm going to name that phone so this name is going to help us a lot when it comes to applying for the different break points. And typically the phone we're going to set to a resolution of 3 90. And we can hide certain elements. So I'm going to select the middle menu and go to visible no. Also, I want to use my rule for phones, which is the padding of 20 left and right. Another thing that I want to do is to replace the logo with a hamburger menu icon and we're going to draw that from scratch. First of all, we're going to hide the logo as well and we're going to insert a new frame which is 44 by 44. No fill. Then inside this frame, we can zoom in to make it easier. We can draw three rectangles. The first one is going to be 22 in term width and 2 in term of height. Then I'll set a radius of one. And the color is going to be white. Now in term of positioning, I'm going to set it to 12 from the top. And 11 from the left. The goal is to make sure that it's centered. And I'm going to duplicate this two times. The middle one is going to be 12 by two from the left. And the third one, 30 from the top and a width of 22 as well. Now, there you go. This is the hamburger menu icon that we have created from scratch. And now we have the freedom to animate this the way we wish by using the transition inside the component feature. So I'm going to select the frame and rename this to hamburger. I will also move this to the left. Then I'll create a new variant which is called phone expanded. And here I'm going to set my animation. Since these are essentially states you can do the rotation movement and it's going to transition for you. Let's select the first line. And set the rotation to 45 degrees. Also, I'm going to align middle center vertically. And then for the second line again, 45. And then center, both vertically and horizontally. Also, I'm going to change the opacity to zero so that it fades nicely. For the third line, it's going to be rotation minus 45. And then center vertically. And that's it. This is going to get us the animation that we want. We can test this by going to home. Now, I'm going to try to say the top bar, but we have the hero in the way. So, let me just readjust the top bar to be after. It's going to be easy to select. So going back to phone, select it and I'm going to change the variant for phone. So now when we have the phone resolution, it's going to switch to that specific variant. And I can select the phone. Then preview, just the phone from here. Now I just need to set the connection. So I want to make sure that when I tap on the hamburger menu icon, it's going to go to phone expanded. So there's this little lightning icon that I can just connect to phone expanded. It's going to do all the transition for me. And from the close icon back to phone. And with this, I can go back to the preview. And I will be able to tap on it and I have my really nice hamburger menu icon just like that. Next we're going to add the actual menu when the menu is expanded. So I'm going to create a rectangle outside first to take care of the styling. Then I will set the fill to black 60%. Corner radius 20. And then border white 10%. And also I'm going to add background blur. So this is going to be 40. Next, I want to add a text content. Components. Using the text style caption 2. And then I want to have a hover animation. So I'm going to create a component first. Call that menu button. This one is going to have a fixed size of 300 by 44. Then I'll select the text, align that to the left and vertical center. For the animation, I'm going to use the fill color as well as the border color. For the fill, I'm going to set to white 0%. And I also want to have a border. Now we have a neat feature for border where you can set the size for each side. So in this case, I want zero on all sides except bottom to one. And the color is going to be white 10%. Let's create a quick hover state. So change to fill color to 10%. And I also want to move the text by 20 pixels. So using shift and right arrow, I can move by 10 pixels two times. Great. Now I'm going to go back to the top bar and here for this frame I'm going to use fit content with a padding of 30 and gap zero. Then I'll duplicate this six times to get seven menu items. Starting with home, then components, then pricing, updates, support, community and sign up. Now notice that the last item has a bottom line and we don't want that. So a solution that you can use is to create a second variant. And for this one, we can disable the border. So I'm going to set it to zero. And I need to repeat the hover interaction which has a fill of 10%. And there you go. So going back to the top bar for this one, I'm going to set to variant two, and now I have a good looking menu. So zooming out, I'm going to move this menu right here to the variant one. So when I do that, it's going to exist on pretty much all of them. So opening the variant one, then I'm going to change the position type to absolute set the top to 60 and left to zero. So this is the position that I have. I want to add some padding, so I might want to use an extra frame. So command enter. And this one, I'm going to set the height to fit content and the width to relative a hundred percent. Then I'll add a padding of 20. So what I want is the size of the menu to take the full width as well. I'm going to change the width to fill. Now that we have this, we can set what is visible at which resolution. So the variant one, we can set this to not visible. For the phone selecting the columns, we're going to set this to visible. And likewise for phone expanded. Columns, we're going to set it to visible. Since this is outside of the bounds. We're not going to see it. So, what I can do is change this feature called overflow hidden to make it to visible. What this means is that it's not going to clip anything outside of the bounds of this content. I'm going to do the same for the phone. Set it to visible. And also I'm going to set the opacity to zero. So we have some fade animation going on. Lastly, I can animate the constraints to get from left to right. And I'm going to select the columns and use left to minus 20. So let's get out of this and we can preview. It's nicely adaptive now with beautiful hover interactions on the buttons, but notice that the background blur doesn't always work well in the preview. So to make sure that you're showing this correctly, you might want to publish the website. And in order to do that, you just need to click publish, and it's going to generate the URL for you. You click on it. And there you go this is the website that you have built so far. And you can resize to see the menu animation. We're noticing one problem. And that has to do with overrides. So we can easily fix this by setting all of these menu buttons to fill as well. It takes a bit of practice to work with overrides, especially because sometimes you're working with copies and you're not sure if it has applied everywhere. One tip that I can give you is to mostly always work with the original. So if you do it like this, it's always going to apply to the variants or the break points. But keep in mind that this is not bulletproof. Sometimes you have a little bit of inspection to do as with coding or design. This is just part of the practice. It is important that you learn how to achieve these results and how to troubleshoot some of these problems. And there you go. We learn how to create the top bar that is sticky. And we also made this adaptive and responsive with a beautiful hamburger menu animation as well as the interactions on the menu buttons. So I hope you enjoyed it. In this one, we're going to cover the scroll parallax, which typically takes a lot of steps to install and a third party library. But with framer, this is done with just a few clicks. Also, we're going to continue creating more layout components and learn a lot of techniques in between. So let's go to the desktop. And the first thing that we want to animate using scroll is the embed element. Since this is locked, we need to select this manually from the layers list. We have this section about effects. So we're going to click on it and set scroll speed. We're just going to change it instead of 110% to 80%. And that's it. So if I play this, you're going to see that when I start scrolling the image itself is moving slower, which means that the next section is covering more of that. And of course you can change the speed. To get a more dramatic effects such as 50%. And it feels even faster. Now I'm going to put it back to 80%. And then I want to show you how to use a scroll parallax on multiple elements so that they move at different speed. So to make your life easier, we're going to select all of these items at once. Starting with a button title, text, and then the column of two buttons. So we have four items in total and then I'm going to add scroll speed. Then set to 95%. Like this, I'm applying to all the elements. And from here, I can just select them one by one and change the value. So selecting the title, I'm going to set it to 90%. Then the text 85. And the column to 80. If I preview this, you're going to see that it's moving at different speed. We just need to set the overflow, not to hidden so that we can see outside of the bounds. And this will also fix our drop shadow issue. So often you're going to have the container that has the overflow hidden. And you can just set it to visible, to show outside of those bounds. Play again, and this should solve our issue. We can see different elements moving at different speed including the embed element. The texts that are moving further apart from each other and it creates this really nice effect. We're going to create more scroll parallax after the content, but first we need to create more content. So I'm going to select on desktop, and I want to show you that you can insert multiple types of layouts. So for example, here, if you go to layout, we have hero sections, features, et cetera. And so sometimes to help you with a basic structure especially if you're blocked creatively or if you want to save time, it's a pretty good idea to use one of these pre-made components. So I'm going to use this one, which is the gradient. And it's going to add here so I'm going to move this outside of features. And move this down. Let me select it and set the width to fill. If I want to start editing, I'm going to double click on it. It's going to turn blue. And now I have my elements. Now, all of these elements are fully customizable. I'm going to start with fill and change that to an image I'm going to upload wallpaper one. And I'm going to change to my text styles. So selecting the title, I'm going to change that to subtitle. But I need to edit the properties. So the weight is going to be extra bold, I'm going to set it to white with a size of 50. I'm also going to add break points, which gives me pretty good numbers already. So in the text property, I'm going to center this and change the text to one of my own. Then for the second text, I'm going to change to grow auto width, and I'm going to change the text to my own. Then for the button, I can right click on it. And I can replace with one of my own buttons. So going to project, I'm going to select button and here I can change to Varian to. Also change the icon to cards. And the text to learn more. As you design more and more, you're going to see that there are many patterns to create a layout. And they're usually comprised of the same elements. That's why you don't always have to think too hard about where to start and what is the first step. Sometimes you can just use one of the template and really learn how to customize to your own style or to the theme of your website. And that is such a good skill to have. In this case, I'm going to add an extra icon to the top. Insert Phosphor icon, but that to the top. And I'm going to change to rocket. Then I'm going to add a divider by using a line. This is going to have a 50% width and one in term of height. For the fill color is going to be 10% white. Also, I'm going to add another text. Change this to caption. Let's zoom out a little bit to see how it looks like and typically what you want to do is to set all the texts to width Fill. And when you do that, it's going to adapt nicely. But just make sure that you center the text. As well. Then for the section itself. We want to have fit content. And set the magic paddings so 130, 130. And then for phone. It's going to be 80 20 80. 20. Let me adjust that for the other sections as well. 84 top and bottom. So it's essentially 20 less. So we can also use operations. So minus 20. It's one 40 and then minus 20 is 80. The goal is to use the space properly depending on the device. What feels right in term of information density. When you have a bigger screen, you have to fill the space more and the negative spacing helps breathe, but when it comes to the phone, you need to make sure that the negative spacing is not at the cost of usability, meaning that you need to have enough information density. Smaller fonts, images and spacing. So in this layout, I want to set multiple columns and I'm going to select all of these elements. And create a frame. So command enter. Then I'll set it to fill. With a height of fit then a max with of 400 pixel. It's going to affect the inner elements. I'm going to select all the texts again and set them to fill. We have these break points that is always available to us to see. And we can see what goes wrong and how to fix this. Now let's talk about the scroll parallax because it's slightly different if you have a section that is not at the very top of the page, because you have to think about the positioning of the scroll. So in this case, I want to make sure that I'm not using a background. If I want to use a scroll parallax on the image. So I'm going to go to styles and I'm going to remove that image. Instead, I'm going to create a frame. And remember that by default, it's going to add to an element. And so what I need to do is to set this to absolute. Set the constraints to zero on all sides. And then change the fill to that image that I wanted which is wallpaper one. Then we need to make sure that it's underneath. Then let's rename it. And we're going to set the Z index to zero. Again, when you're changing things around. It's definitely going to affect your break points. So make sure to reset overrides if you need to, or to change those manually. Awesome. Now that I have my background that is essentially an image I can apply the scroll parallax to it so I'm going to select scroll speed. Change the speed to 90% and instead of setting scroll to current. I'm going to set it to scroll. But first, let me show you why. So I'm going to play this and you're going to see that even before I get there, the scroll position is already affected dramatically. So in order to fix this, we're going to go back to scroll speed. And we're going to select scroll and here's only going to start moving when the bottom of the visible area is touching the top of the section. So you're going to see I'm here. And it hasn't moved yet, so I don't have that white space. And of course, depending on the positioning of my image, I can change the value. So in this case, I'm going to set it to 500. So now it starts a little bit later but again, depending on the image here, I can simply set a background to fill the space. So that it looks seamless. So let's go back to the hero gradient. And instead of having a white fill, I'm going to set to the same color as this blue background, I can use the eyedropper to select that color. And when I try again you can see that I no longer have that problem, but I do have my scroll parallax effect. Let's create more content for the layout. Let's start by creating a frame of 300 by 300. Now, what you're noticing is that sometimes when the image is a frame, whatever you draw is going to be inside that frame. So you might want to take it out. And if you don't want this to repeat again, You might want to lock that layer. Let me put this to the front. I'll set to 300 by 300 with a corner radius that is specific. So 40 0, 40 and 40. Then I'm going to change the fill and I'm going to go to image and this is where we're going to use a really neat feature and that's Unsplash. So if you're not familiar Unsplash is a service where you can find a lot of free photos that you can use in your design. So we're going to search for 3d render and you get a lot of nice images that you can use for your site. And this service is available on most design tools via plugin. And in this case, it's directly embedded into the image feature of framer. So I'm going to search for 3d render and I'm going to scroll a little bit to find the one by Javier. Click on it. And it's going to apply to my element. So let's create another frame. With a height of 1 20 and I'm going to set the constraints to zero left right and bottom with a Fill of black 20%. Then the border it's going to be white 10%. Now we want the border to be shown also for the corner radius. So we're going to use the same corner radius value, which is 40. And then we're going to use a background blur sheet, which is really nice when you have an image in the background. So if your design style has a lot of backgrounds, and shapes and colors that are behind, the background blur is going to really help set the depth for your design and top of that, whatever content that you have above it is going to be much more legible instead of using the traditional gradient mask using black opacity. So I'm going to add background blur, set it to 40. And from here, I'm going to use layout. Set the padding to 20. And distribute to start, which means I'm going to align everything to the left. Now I'm going to create a text. Coit tower. Which is footnote to. Then duplicate this I'm going to use. Caption and again, Duplicate and then caption 2. So let's change the text for the second text to 30 minutes ago. And the third text. 3000 zero 54 steps. Then select the container. I'm going to set to direction vertical, and now I can use a line instead. So depending on the direction distribute and align can apply differently. But lucky for us. Everything is visual. We can easily play with these values and we can understand what's going on. And the same concepts apply to CSS. Next, I want to add a button to the top right. And also a text to the bottom right. I could of course create a frame for these three elements and another frame for these two elements, but I can also use absolute positioning which is going to have less containers. So both methods are good. I'm going to use a second one so that we can practice with absolute positioning. Now I'm going to insert my component, which is going to be button 2. And then with this selected, I'm going to set to absolute. Then the position of 20 from the top and 20 from the right. Perfect. So for the bottom right text, I'm going to use the same text as the third one. And then apply absolute again, 20 from the right, 20 from the bottom. Then I'll change the text to 3% higher. Now one of the key rules in design is to make sure that texts are well aligned with each other. Most often we're going to align with a baseline. There are two ways to go about it. One is to use space between or a height of fit content. So the height is going to depend on the content. Otherwise, if you absolutely want to have that height of one 20, which is fixed. We can always use space between and it's going to push this to the far end. Now that we have the card created, we're going to create a component and have multiple variants. So I'm going to name this one card. And then I'm going to create a second variant. This time, I'm going to remove the image and then replace that with a solid color, which is going to be white 10%. Then I'm going to add a border. Of white 10%. Also, I'm going to use a background blur to fit nicely with whatever background that I have. Right click here, background blur, set it to 40. Then I'm going to add some text content in the middle. So set this to layout with a gap of 20. Now I'm going to add a title, which is going to be closer rings which is going to use section title. I'm going to move that to the top. Duplicate this. Then add some text. And here I'm going to use caption. Then center the text. Then I'll set the width to fix, and it's going to be two 60. Now I want this to hug the bottom and the right. I'm going to change the width to fill. And also, I want to make sure that this container is going to fit the content. I also want to have some padding from the top. So I'm going to use specific padding from the top to 20. Then oftentimes you want to add an icon, to the left or to the right of the text. So you can just create that right away by inserting. So let's say first Phosphor icon. I'm going to move that to the very top. It's going to be 30 by 30. Set color to white. And the name is person simple. Run. There you go. So afterwards you can easily select both and create a frame. Then fit the content for both with and height, then set the direction to horizontal. So with this technique, it's very easy to have additional content and stacks. You can just select the elements that you want and then put that into a frame, then change to fit content. Now let's create a third variant where we're just going to have this bottom part. So I'm going to remove the content. Then go to styles and remove the border as well as the fill. And also the extra padding that I had at the top. Now I'm going to add some drop shadow here and it's going to be a little bit more dramatic. There's a really neat feature called realistic drop shadow. Instead of creating multiple drop shadows and organize that, we have only one realistic drop shadow, and here you can play with the Y position as well as the diffusion to create the effect that you want. You can see that this looks very much like in real life which normally, if you were to do that, using the traditional drop shadows, you would have 3, 4, 5 layers. So, this is very nice. I'm going to set the Y to 100 and diffusion to one. Again, if you apply to the main variant, it's going to apply to the secondary variants as well. Next I'm going to set the variables. Of course you can set way more than what I'm going to do because of time. So far we have the image. And then I'm going to set the title. So this is going to be a plain text name title. And I can even add a text. So content here and plain text named text. Now I'm going to exit this and create multiple instances of this component. The second one, I can set San Francisco. And change the image to again, Unsplash 3d render. I'm going to scroll a little bit to find the one by Polina. And there you go. We have a nice background blur on top of this element creates a really nice shade. I'm going to select the whole container. And then set the direction to horizontal. And I want to have three columns. So these two is going to be part of one. So select both create frame. Select the layout. Width, height to fit And then direction vertical. Gap to 50. Now we need to make sure that the overflow is set to visible. Otherwise it's going to cut off the shadows. So let me duplicate this column right here. And now I'm going to change the variants. So this is going to be variant to. And this one is going to be variant 3. Really nice. So you can see thanks to the background blur. We have some really nice effects on top of the background. And then I'm going to duplicate this one as well. And go back to Variant one change the title to Cupertino. And the image to, again, 3d render and I'm going to scroll a little bit to find the one that I want, which is the one by Simon. Now of course you should definitely use your own titles, texts and images and really play with the layout. I think that's really going to help you get familiar with UI design, but also with framer in general. So, let me select the whole container again. I'm going to set the gap to 30. And I want to show you a really cool technique. So, this is what I have for tablet and mobile. You can see that we have a bit of a problem. Now with just one setting, which is wrapped to yes, it's going to put the items of a horizontal Stack to the next line when necessary. The only problem that we have here is that we need to make sure that each item has a fixed width. So in this case, I'm going to select this Stack. And instead of using fill, which is very dynamic, I can also use relative which is to 100%, and this is a little bit less dynamic. We don't have a fixed size because it's fill and we have a max width. We can also add a min width to make sure that we do have a range of size. So I'm going to set to min width 300. And you can see that it's looking pretty good. So in short, when you're using wrap, make sure that the elements inside the Stack has some sort of a size. You can use a fixed size and this is using the component size, or you can use a range of size by using min width and max width. So those are really cool techniques and I'm just going to fix the text style because I find them to be a little bit too small for the phone. So I can go to assets. And here I'm going to click on footnote then check for break points. So I'm going to set to 14 for both medium and small. This is going to improve a lot and the same for footnote now. We're good. And also for captions. So 14, 13. Making sure that we have consistent numbers. So 13 here as well. Sometimes the default values when you add break points are a little bit exaggerated. So you might want to customize. But most importantly, you want to be consistent across the way. So if you're using those values for caption 2, you should also use the same values for caption because the difference between the two is simply the text transform as well as the font weight. Awesome. I hope you learn a lot about scroll animations and layout. In this section, we're going to learn about appear animation. So basically when you load the website, you're going to see a very nice welcoming animation. And also when you scroll, it's going to fade in nicely. Now in framer, you can use all sorts of values to animate such as the X and Y position as well as scale rotation and 3-d rotation. Now let's start with the basics. So we're going to select these four elements and then we're going to, and then we're going to effects and add appear. So we have a bunch of preset animation, including the scale in, which is a default one. So you can play with this list and preview them. The one that I like to start with, especially because it's highly customizable is fading. So now I'm going to customize that effect. And here you can see that I have multiple values that I can work with and fade in is going to use opacity. So starting at zero and then going to one. I also have X, Y rotate, rotate X and rotate Y as well as perspective. So these three is for the 3d transform. If you're familiar with CSS animation, they're basically the same as transform. Right now I can use offset Y because I'm already using the scroll speed and the scroll speed is controlling the Y position. So what I'm going to do is to use left-to-right animation by using the offset X. And I'm going to set that to minus five. Then I can also change the transition. Spring tends to work well, if you have a lot of movement and distance. But if it's a small distance, I like to use ease. It's a little bit more predictable and I'm going to set the timing to 0.8 as well as a delay of 0.1. Now I'm going to preview this. And you can see a very subtle. Animation from left to right, as well as opacity. But the thing is we're going to spice it up a little bit by using delay. So I'm going to go back to layers. And I'm going to start with the button. Then click on appear, by the way, if you have these tool tip enable, you can navigate them and you can switch between the items for their specific settings. And that's really helpful, especially for sequence animations. So button's going to be minus five and then minus 10. And then the third one minus 15. The fourth which is the columns minus. Minus 20. So now we have a little sequence animation. Let's refresh that. It's very subtle, but that's how we like it. Another thing that I want to do is to set the delay. So I'm going to select this second one. And go to appear, ease in. The second one is going to be 0.2 in term of delay. Third one 0.3. And then the columns 0.4. Now it's even nicer. And at the same time, I also want to animate the embed 3d asset. So I'm going to go and add, appear. Let's repeat the step, fade in. This time, I'm not going to use any positioning. I'm just going to go to spring using the timing, ease in out with a timing of one second. And that's it. The problem that we have right now is that the background is white, which does not fit with the embed background. So we can go to the desktop and change from a white background to a black background. So this should be a little bit better. Now let's talk about 3d transform because a lot of people haven't played with these settings yet. I'm going to select these four elements again and go to appear, go to effect. This is where on top of playing with offset X and Y I can use rotate, especially rotate X, Y and perspective. So to show you, I'm going to set the opacity to one for now. If I play with the rotate X, you can see, this is how it looks like. It's kind of like 3d ish. And if I pair that with rotate Y, you can see that it's really cool. And the perspective gives me the exaggeration or not. But I can keep it to 1200. Now the settings that I will use is 2020. And I'm going to use the sequencing. So the second one is going to be 15. 15. The third one 10 10. Then the columns five five. Let's not forget about putting back the opacity. So set it back to zero and we're going to play this. And voila, we have a very unique intro animation for the content and the background. Now let's do the appear animation on this section right here and just like scroll speed, it's going to be a little bit different because it's going to animate when it's visible. So let's do a basic animation. I'm going to select all of these six elements. Then add effect appear. But this time, instead of onload it's going to be on scroll.. The difference is on scro ll is going to animate when it's visible. You don't want to start your animation on load because otherwise you're not even going to see the animation because it's going to happen even if you haven't started scrolling yet. So again, I'm going to start with the fade in and enter. This time I can use the offset why because my elements are not affected by the scroll speed, which is using the Y position. So I'm going to set to minus five for all six elements and I'm going to go to spring, switch to ease, change the time, 0.8, delay 0.1. Then I'm going to select from the layer. And I'm going to go to the second one and change the delay afterwards. So 0.2. 0.3. 0.4. 0.5 0.6. And also I'm going to change the offset. Great. Now you're going to see that when I scroll and only when I see this, it's going to start animating. Let's do the same with the cards. Select all five. Set the effect appear, on scroll. Fade in. Enter. This time I'm going to use minus 10 for offset y. Ease. 0.8, then start with 0.1. And select the second one. 0.2. 0.3. 0.4 And then five. Awesome. So you can see that we have a pretty smooth animation on this section. So I'm going to continue with the layout. And what I like to do is to have alternating content. So something that is more complementary. And then something that has a background, a little bit more effects. Typically, you don't want to have every single section to be heavy and a lot of colors. You want to pair it with something a little bit more neutral. And also it's good to alternate your content. So for example, if the titles are on the right side, maybe in the next section is going to be on the left side. So it makes your design less repetitive. And it also injects a little bit of energy into the scrolling experience. So I'm going to name this section components one. And then I'm going to duplicate this because I'm going to use fairly similar content. The only difference is I'm going to remove the image. And also I'm going to switch to my other background color. So I drop her and use the same as this one. As I mentioned before, I like to alternate the content. So now the titles are going to be in the left side. And this time I'm going to have two columns instead. I might also want to alternate the button. So I'm going to set to variant one. I'm also going to set the height to 44. And the same for this button. I find that to be a little bit too slim for the content that I want. And there you go. So without changing anything really I'm able to create a flow that feels natural and interesting. And now we just need to change the content itself. Starting with the title. And also I'm going to change the icon to trophy. Then I'm going to switch the second component to variant three. And now I'm going to show you how to create an interesting circle showcasing a little bit of progress and a bunch of circles. So I'm going to start with a frame of 375 by 3 75. This frame is not going to have a background. Then I'm going to start with a component that exists from the components list. It's called progress. And it looks a little bit like this. I can insert it and I can customize it. Works pretty similarly to the apple watch ring. Now I'm going to set the width to 180 and height 180. And here I'm going to change the value and you can see that the progress changes based on that. I'm going to set it to 30%. The animation happens right away on load. And for the color I'm going to set it to white. And the track I'm going to set it to white, but at 30%. Then I'm going to create another frame. One 40 by one 40. Then center it. Radius 100%. So that makes a circle. Let me adjust the progress as well in term of centering. And go back to my circle. So here, I'm going to use the fill and change that to gradient. And change the angle to 1 35. Then I'm going to pick the reddish gradient. And I'm also going to add a border that is white 30%. Now with a circle, you can essentially duplicate this multiple times to create sort of like a sonar effect. So duplicate it and resize it using option shift. Then I'm going to set it to two 20. Let me send this to the back by using command square brackets. And I'm going to use a different gradient, which is going to be the purple one. Then the border is going to be 50%. Now I can play with the opacity. Let me set it to 0.5. Then I will duplicate this again. I'm going to set the other one to 300 by 300. If this is not precise, I can always go from here. But just make sure that it's well centered. This time is going to be 0.2 in term of opacity. Then selected duplicated again. And I'm going to take the full width and height. So 3 75, 3 75. Center. I will remove the fill and set the border to 10% and put the opacity back to 100. So this is what I have so far. Obviously you can play with the colors. The sizes to create something a little bit different from mine. But essentially you want to use the progress which gives the information and makes it dynamic. But otherwise the rest is just to complement your progress. I'm going to rename this frame to circles. And I will move it inside rows. But this time we want to use absolute positioning. Now, I'm noticing that in my circles, I have the big one, which is using constraints. So I'm going to disable the constraints and make sure that it's just 3 75 by 3 75. Sometimes the constraints set automatically and it can affect if you change the size of your frame. So I'm going to select the circles again. And set overflow visible. And I'm going to move it to the center. Then use Z index zero. So that it's really in the background. Awesome. Sometimes you want to start with an existing component in term of layout and styles, but you don't necessarily want that to be a component. So what you can do is first of all, I'm going to select two variant to let's say this is a little bit more interesting especially with the background element and I can simply detach instance. Then it becomes a normal element, which means that I can customize it from here. So I don't really need the rows and the description. Now the circles are kind of in the way. So I'm going to lock that. And select back the card. Then I'll set the gap to 10 and padding to 10. I will also insert an image. Now, let me just put the image outside of the columns. And I'm going to set it to fill with a height of 180. The radius 30. Then the image itself. I'll go to Unsplash then I'll search for 3d abstract then I'll select one of the images. So I'll change the text to choose, which represents the image. And I don't need an icon here. I have an extra container. So if I want to remove that, I can always command delete. So this is a shortcut to remove whatever container that you have. Then I'm going to select components 1. Duplicate this and move this after. Let me rename this to components three. This one will also have two columns. So I'm going to delete the middle one. I will replace the image by uploading wallpaper 2. Then I'll change the title. And change the icon, which this time is going to be let's say record. Now, I'm going to use one of these components and customize it. I'm going to set to variant two first. This is the closest to what I want and detach it. Let me remove the rows, which I don't need. Then change the radius to 40 on all sides. Then set the padding to 30. So I'll select the frame. I don't need the icon. So I'm going to remove the frame first. Delete the icon. Change the title. Then add some text. Now there's another cool plugin, which is called humaaans for creating illustrations. So I'm going to insert that. Go to icons and select humaaans. Now, what is cool about this. Is that it has a bunch of preset characters, including the colors that you want. And you can customize the colors of the skin and the hair. So, for example, you want to have different head. Different hairstyle. And the same for the body. As well as the bottom portion. So you can make the illustration stand or sit. Direction left or right. So after you're done, you can move this below the title. I'm going to delete this component. And just duplicate my new custom card and I'm going to create a new one. This time, I'm going to remove the illustration and insert the component, which is called progress. Going to move that to the middle, set it to 1 75 by 1 75. With a value of 30%. Then scroll down a little bit to change the thickness to 20. And I can change the colors. So white and white 30%. Now, let me change the title. As well as the text. And voila. So it's that easy to create multiple styles of components and detach. Duplicate existing sections, which in turn already have those appear animation setup as well as the layout options for mobile, you might need to adjust a little bit. We need to fix something real quick. So in set speed. Because the background is at the top and not at the bottom. I need to set the top to zero. And so far, this is what we have. It has nice animations across all of those new sections. And we managed to create more layout styles and cards and types of content. In this section, we're going to make an overlay. And also we're going to create a signup form. What is an overlay? Essentially you can put any UI on top of the existing UI. So this is great for a floating menu or floating button as well as any modal, such as an alert, a message, a sign up modal as well as a forgot password. Now the overlay needs to be connected to one of the elements, especially for buttons. So, for example, if I click here, it's going to show the overlay and I'm going to select the button. Then I have this option called overlays. So if I click on it, it's going to give me the space to design my overlay. First of all, I can set the preset animation in this case, I'm going to set to fade in and out. Then change the background to 30% instead. Then I'm going to create my actual UI. So starting with a frame of 500 by 500. Let me center this. Then scroll, get a radius of 30. Background black 30% and border white 10% with a background blur. I'm going to set this one to 30. And there you go. So the container I'm going to start setting the layout. The gap is going to be 30. Padding 30 and 60 for the top as well as bottom. Then direction vertical. Now I'm going to create my title, which is sign up and I'm going to change that to subtitle. Then I will create a second text. This time, it's a paragraph. And because the text can go smaller I'm going to set it to fill. Then center. Now let's take care of the form here in framer. We have a bunch of preset ones. So I'm going to go to the forms and I have MailChimp for newsletter, Intercom for customer support and chatting. Newsletter again. Collecting with a form with Typeform, calendar and here we have form spark which lets you collect information so people can enter their email name and message. This is not going to be a real sign up form because that would require a database such as Firebase. But if you just want to collect some light information, you can use form spark. First of all, I'm going to go to the options and I'm going to hide the message first. Then the layout is going to be vertical. And also for the width I'm going to set to fill to fit my container. For the height I'm going to set roughly to 1 90. Then the button color, I can change the color. to 7 7 5 5 CC. Now I'm going to move the paragraph right below the title. Then I'm going to add some disclaimer, text below. Set it to fill. And it's going to be a text style caption. Then I'm also going to center it. So this is my signup form using overlay. And you want to see how it works. You're going to tap on, get the app and you can see, we have a fade in animation. This is going to be instantly appearing because the fade in only applies to the background itself. So we should tap outside it's going to fade out. If you want to have an animation also on the modal then we're going to use effects. So let me rename this to modal and I'm going to select it and scroll down a little bit to get to appear effect. Change that to fade in. And I'm going to change also the offset Y to minus 20. Change from spring to ease in out. And delay 0.1. So now I should have some fade in, fade out also on the modal itself. And it's going to reverse the animation when I dismiss. Now what about a custom background? So I'm going to add a background blur because it's going to blur the background. Gives a nice effect. So I'm going to create a frame first. Then set the constraints to zero on all sides. Move this below the modal. Then remove the fill. And add a new background blur. Let me set this one to 20. So this background blur is going to be nicer with the animation as well, so that it fits with the rest of the animations. I'm going to set appear again, using fade in. And this time I'm going to switch from spring to ease in out. The timing is going to be one second. So let's test it again. And voila. We have a nice blur animation as well. Now, the only problem is we need to be able to dismiss the same way. So framer has a neat function that you can add. So I'm going to go to interaction with a background selected. And it has the option to close the overlay on tap and it should be working just the same way as before. And boom. Awesome. When you're done, let's exit the overlay canvas. And now we're going to build a new section for the pricing cards. If you have any product that is paid. The pricing card section is a must. And in fact, Framer has a bunch of these components as well. So for example, You can scroll down a little bit to find the pricing section. It has a bunch of components that you can use, but otherwise I'm going to show you how to do it from scratch. So I'm going to have a background that is going to be aligned from the bottom. And the closest section that I'm going to use is the components one. It already has all the animations that I need. So I'm going to duplicate this one, move that to the very bottom. I'll scroll and then change the image. I'm going to change this one to wallpaper three. Then select the container and change the background color to fit this background which is my wallpaper. Now I'm going to remove the parts that I don't need. So these two columns. And the rows container command delete. Let me rename this to pricing and do the direction vertically instead. So I'm just going to keep the title text and line, which means that I can delete the icon, the button and the small text. I'll change the title to ready to start. Then the text as well. Okay, so now we're ready to create the pricing card. I'm going to start with a frame. Let me size this to 360 to 4 60. The radius 25. Fill is going to be white 60%. Border white 50%. And also I'm going to use a background blur that is 40. Now I'm going to start with the icon. Insert Phosphor 32 by 32. Set the color to black. And change it to a pen. Now, let me set the layout. So I'm going to set to fit with a padding of 20. Then I'm going to add a text. Free plan. Which is footnote to. Since the textile is white, I'm going to have to change manually to black. Then set the price. I'm going to duplicate this, 15 per month using subtitle. Then we have a small toggle and info that we can use from the button variant 3. So I'm going to insert a button. And set it to varian three. I'm just going to detach. Set the width to fit content. Change pretty much the whole content to the black equivalent. So you can just move the color wheel to the black. And for both colors and the same for the border color. Likewise for the text, I'm going to set it to black. And the icon, set it to black. Here for the text is going to be, up to three projects. Then I'm going to change the icon info. Next, we're going to show a list of features for each plan. So I'm going to start with the icon that I can copy from here. This time is going to be 24 by 24. I'll change it to globe. Then add a text right below it. Which is going to be. Footnote. Now, selecting both I'm going to create a frame. Set to fit fit. And change the horizontal. Then duplicate it four times. And change the icons as well as the text for each feature. Starting with lock. And then password protect. Books and gigs of bandwidth. Then Stack 1000 CMS items. Then person and 10,000 visitors. Keep in mind that these are just placeholder texts and you should definitely customize that. So now if I want to align everything to the left, I'm going to select them one by one and put them inside a frame. Again, using fit and fit for width and height, then align to the left. Next I'm going to add a button. So, let me use the components again, using the button. Go inside the components because I want to add two more variants. And I'm going to do that from the variant 2 so with this selected, I'm going to create the variant. Which simply is going to have no border. And the opacity for black to a hundred percent on both sides as well as the icon being white. Let me create a fifth one this time with the colors inversed. So it's going to be white. Then the elements with a black color. So going back, I'm going to set two variant 4. Change the icon to pen. And text to try for free. And I also would like to have a line between the button and the features. So I can just copy from this one. And put it here. I'm going to set it to 50% instead. And set the color for the fill to be black. Awesome. Next I want to add a drop shadow, and it's going to be the realistic one with a Y of 100 diffusion one. So with this, I can create a component and create the two other pricing cards. So let me option command and K. Set the name to pricing card. And then I'm going to create a second variant. Now this one is going to be the popular one. And you want to make this stand out a little bit more, so it's going to be taller. And it's going to have a little tag that says popular. So I'm going to use this small button, duplicate that, move that to the very top. And just switch the icon to the left. Let me change the icon name to metal. And the text to popular. For the textile, I will change to caption to. Then this card is going to be in dark mode, which means that I'm going to inverse the colors pretty much everywhere. So let's start with a small buttons. I'm going to change the fill t o white on both sides. The border to white as well. And here I can essentially select all similar elements. So all the texts. Change it to white. And likewise for the icons. All similar icons. And change the color all at once, which is neat. And then the line set it to white. For the background of the container I'm going to change it to black 40% and the border to white 10%. Then for the button, I'm going to change it to variant five. Now the goal here is to make sure that when I'm going to center the three cards. This is going to align perfectly. Button to button and text to text in term of baseline. I already tested and the padding that I'm going to want is for the bottom to be 68. And then I have the third card for the pro or the team. So selecting the first variant and I realized that I have an extra variant, I must have been trigger-happy. So I'm just going to delete this. And it's not going to change anything. So we have variant one and variant two. And now from Variant 2 I'm going to create Varian three, because it's the same colors. So I'm just going to remove the extra element as well as the padding, which is 20 on all sides. Then change the background to black 90%. So what's left is to customize the content a little bit. And also I forgot that I do have an extra line in between. The tag and the rest of the content. Some duplicating that and moving this here. And I'm going to change the price. This one to 30. This 1, 2 45. Change the text. The middle one is basic and the right one is pro. Finally, we have the icon. This one is circle. And this one is cloud. Of course feel free to use your own design and your own content. Then let's not forget about the buttons. So I'm going to set credit card. And the text is going to be subscribe. Now what's cool about Framer that you shouldn't hesitate to select multiple similar items and edit them at once. It's going to save you so much time and it's really powerful. Also, we have this small button that I should change to toggle left. And the text is going to be built yearly. So I'm going to copy that. And change this text as well. So with this, I want to make sure that we have the right name for the variant. And then we can go back to home. And duplicate this two times. To change the variant to Variant 2 and then variant three. So I'm just going to set it to be next to each other. So I'm going to create a frame first. Set to Fill for width and height to fit content, then direction horizontal. Go to overflow and make it visible so that we can see the extra drop shadows. Now for the gap, I'm going to set it to 30. And I'm going to zoom out a little bit to see what it looks like on the other devices. So you can see that we have a bit of a problem. Now to fix this, remember that when you create components, They tend to use fit, and it's going to use the size that you have set inside the component. In this case, it's set to fixed. But all that can be changed from outside of the component. So for example, I can set it to fill and if they're all set to fill, then it's going to take the available space. In this case. It looks pretty good, except that I can even use more space by removing the gap to zero for the tablet. Now, remember that my goal here and why I added the bottom padding was to align all the buttons and the content so I can use my ruler from macOS and you can see it's pretty well aligned. And now I'm going to take a look at the phone resolution and set direction to vertical. So we're going to have the same problem for the in-between resolution and the large resolution. So we're going to preview this, for example. And you're going to see. That it gets too large and also in between the resolution it's way too large. So remember that we fixed this by using the container and set to max width. Now I'm going to start with the original, which is the main, so it's going to apply to the rest. And I'm going to set max with the 1200 pixel. And here as an override I'm going to set it to 400. And so this should solve the problem that I had. And it's not going to go larger than this and as well, the in-between resolution. It's not going to go larger than 400. So that's it. And I think this design is really nice if you have a background. So we're using the background blur layer and you can of course change the wallpaper in the back. And it's going to set a completely different tone because we're using these beautiful sheets. Now I hope you found it useful to know about the overlays as well as how to use forms and creating a sign up modal and working on the pricing cards. In this section, we're going to learn how to create multiple pages for the site and how to link them. Also, we're going to create more components for those pages. Let's get started. First of all, let me explain. We can switch to the pages tab. And this is where we have all the pages. When we created the file, we had these pages already set up. So we can delete them because we don't need them anymore. And we can start from scratch. I think we're going to learn a lot more this way. Now the pages are based on the menu that we have in the top bar. We have components, pricing, updates, and sign up. So I'm going to create another page. This one it's components. Then another one. Or pricing. Then updates. And sign up. Keep in mind that these are not just names of the pages, but they're also the URL on top of the main one. So in this case, You have a randomized name before dot framer.app. And then you have slash signup, slash updates, pricing, components. And this is pretty much the standard for websites to make it easier to remember and to share those URLs. Now let's copy and paste some elements into those new pages. So don't so that we don't have something that is completely blank. What we actually need, and I'm going to switch to layers is the hero component, plus the tab bar. So I'm going to copy this switch to the components page. And then paste it. And voila. I'm just going to change the title as well as the embed. The URL you can find in the content. So I'm going to replace the URLs and this is what we have for the components page. Now for the pricing page, I'm going to use the top bar. Plus the pricing component which is this one. So I'm just going to go to pages. And then paste that. The positioning is a little bit weird right now, so we might need to use height, fit content and make sure to set the gap to zero. So I'm going to do the same for components, select the desktop and set, fit content. Gap zero. For the updates I can start with what we have in pricing. So let me select the pricing and on top bar. And there you go. So set to fit content. Yep. Zero. We named this to updates. Remove the pricing cards and also we're going to change the image to wallpaper five. So each page is going to have its own wallpaper, which means that I should set the image for the pricing to wallpaper for. And you can see it sets a very different tone. Now I'm just going to increase the contrast a little bit here for the text. So set the color to black. And the line as well. And let's take care of the last page, which is the signup page. I can also start with what I have in the updates page. And select the desktop set to fit content. Gap zero. Change the wallpaper to wallpaper six. Now we already created a UI for sign up. We're going to go back to home and we can find that UI inside the first button. Going to layers. I'm going to go to overlay and I'm just going to copy the modal. But before that, I might want to set a component so that I don't have to change across multiple places. So with this component, I can copy it to the sign up page by selecting the section first and I actually don't need. The title and description because I already have in the modal. And in term of name. You also want to change those to be consistent. It's a lot of back and forth of course. But we're creating these pages really quickly. And that's just how powerful framer is because a lot of these changes oftentimes are really confusing and time-consuming when you do them in code, especially if you have a very large code base. So you can see that framer makes it super easy and instant to not just make the edits that you want, but to deploy them instantly to the website. Awesome. Now we have five pages and we can start linking them. Now we already have the top bar component and it's included across all of those pages. So when we make the changes here, it's going to apply everywhere. Starting with the logo that is going to be linked to the homepage. So we're going to go to interaction and click on open link. And this is going to link to home and that's it for the linking. So I'm going to do the same for the other buttons. OpenLink this one components. This one it's going to be pricing. And then updates. Finally we have signup. We can go back to home. And you can preview the pages. Going to components or going back home. But here for the pricing, we do have an issue and this is related to the scroll parallax. So we're going to have to fix that, but also we need to put the top bar on top. And this is an easy fix. First of all pricing, I'm going to put the top bar after. And then for the image, remember that we have this whole parallax. When you set the scroll is because it's not at the top of the page, but when it's at the top of the page, We're going to set it to 80% and current just like the homepage. I also want to make sure that I do the same for the other pages. So the top bar after and the image. Set it to current 80%. And finally the signup. So the top bar after and the image set to current 80%. Now I'm going to go back to home. And again, I'm going to preview this. And everything should work as intended. Awesome. Next, we're going to talk about break points. And in fact, we should have done this before copying pasting. Otherwise, we need to reset those overrides for the extra breakpoints. So it's always recommended to have the tablet and the phone for every page. And this can be a very good exercise to know what is wrong with your layout and how to fix them. So in this case, when I copy and paste, it doesn't have the width set to fill or to a hundred percent. And that's why we have this problem. You can easily tell by the outline what goes wrong. And framer makes it super visual to allow you to fix these issues across those platforms. Now for the rows, we're going to repeat this. It's going to be very good practice. We're going to set it to fill. And also we have the padding that we can set 20 left and right. And then the button to be vertical. And left aligned. Now I understand that we're repeating a lot of these steps, but keep in mind that the ultimate goal is for you to find these issues and to try to solve them yourself. Especially if we have already gone through the motion. Likewise for the animations I didn't take the time to apply the animation on every single element, every single section. So if you find that perhaps to be more consistent, we should apply to some other places. Then you should take the initiative to do those things and it's going to really help you. So let's go to the next page, which is the pricing. Try to do it before I do it with you. And then see if you're doing it correctly. So we're going to add the tablet and add the phone. Then we're going to go to layers. And make sure that the width is set to fill. If you remember we set the gap to zero. And for the phone, we're setting the direction to vertical. Also, we have a max width 1200. And here we can set to 400 pixels. And voila. At any point, you can test this and see if it works exactly the way you intended it. Let's go to the next one, which is updates. Again, breakpoints for tablet and phone. Make sure that the section itself is set to fill. And we're going to take care of the content later. Now let's go to sign up and repeat the steps. Again, the section. Set to fill. Then go to phone and I'm going to set it to fill for the container. And also the section padding 20 on each side. Let's give it a test to see if it works fine. One thing that we can even improve, especially for the phone is to set less paddings so we have 20 here, but right now we have 30 for the modal, and we can change that to save space. So I can easily create a new variant specifically for the phone. And just for simplicity I'm going to set to 40, 20, 40, 20 in term of padding. So now I have a little bit more space. And then going back here, I'm going to switch to the variant that is the phone. And if I test this, you're going to see that I have a lot more space for the phone users. Great. Now we're going to go back to pricing. And we're going to create an FAQ section. And this is going to utilize the interactions again in components. So we can minimize and maximize each question and answer. From the pricing page, I'm going to go to layers. And I'm going to select the desktop. Then I'm going to add a new section. This section is going to have a black background. And I'm going to start with a title, which is FAQ. Set the text style to subtitle. Rename this section to FAQ. Set the width to fill and the height to fit content. The padding is going to be 100, 30, 100 and 30. And then make sure to set the direction to vertical. And we will also set the proper padding for mobile while we're here. So I'm going to set to 80 20 80 20. Now I'm going to set a component for each question and answer. Let's start with the question, and this is going to be a section title. Then I'm going to create a frame. With the content fit for with and height. Direction vertical. Padding 20. The radius 25. Then the border I'm going to set it to white 10%. Now we're going to need an icon on the right side that shows that we can expand or we can minimize. So we're going to insert a phosphor icon that is 32 by 32. Color white. And the name is plus. So I'm going to select these two, create a frame set fit and fit. Then set direction to horizontal. I'm going to move also my icon to the right side. Let me expand the container using fill in term of width. And likewise for the columns inside. So I'm going to set this one to fill. Now I want my texts to also take the full width so it's going to use all available space and it's going to take priority. So set it to fill. Then I'm going to add a frame which is going to serve as the line. Set it to fill with a height of one the color. 10%. Then the text which is going to use paragraph. Again, set it to fill. Now, I'm pretty much ready to create my component. So command option and K. I'm going to name this one, FAQ. Let's set the variables, starting with the title and then the text. Now that I have all my elements, I can create the variant. And so I'm going to rename the first one to be closed. And the second one to be opened. So what I need to do at this point is first select the line and the text, set it to opacity zero, but also set to visible no. And then go to opened. So these two layers, again, opacity to one and visible yes. A really cool inexpensive icon animation is to rotate the plus icon into a close icon. So all I need to do is to set the rotation to 45 degrees. And it's going to animate for me. Now I'm going to set the connection to open and it's going to be on tap. And likewise to make it easier to tap I'm going to select the entire thing and going back to closed. Finally, we can add a little hover state that is very simple, which is simply going to use the border color. And I'm going to set this to 20%. And that's it. So I can preview this. And scroll down a little bit. I can see that I have my beautiful animation 40 icon. And I can tap on the whole thing to maximize or minimize. Now I'm going to duplicate three times to have four questions. Feel free to have your own questions and answers. I have mine in the content. And voila. So I'm just going to add a gap of 30 between each. And also I want the first question to be opened by default. Then I'm going to fix the width. So that, because it's filled, it's going to become way too large. So I'm going to select all four components and I'm going to set it to 800 pixels in term of width. But for tablet, I'm going to set it to fill. And likewise for the phone. So this section for the FAQ, we can also use it for the page that is home. So, let me just select the desktop and paste that. We might need to set the overrides again. So set it to fill. And for the phone as well. The padding I'm going to set it to 80. 20. 80 20. And before we go, we can reuse the components one, two, and three sections. And put that into the components page. So select the desktop. And paste that let's make sure that they all work fine for mobile and tablet and they do. Depending on the technique that you're using. Ideally we don't need to adjust to anything. But nothing beats testing. So we should always preview. Now we have the 3d animation. And we have the sections. Then publish. And test everything in the browser. Especially the new FAQ sections which looks really nice and all the pages, the pricing , updates and the sign up. You can already see, we have built so much together, including multiple pages and so many components as well as sections and animations and working with the 3d embed. We're going to learn something cool, which is the CMS. So that stands for content management system. This is great, when you don't want to go back and edit the layout every single time and changing the content manually. And instead you want to have an admin panel where you can input a lot of data or you're working in a team environment and there are a lot of non-technical people such as editors and managers and they just want to be able to change the content from there. To use the CMS we're going to go to the CMS tab here on the top, and we're going to add a new collection. We're going to start with something very simple, which is the testimonials. Then you want to right-click on it and take care of the fields that you need for your content. So in a testimonial, usually you have the name, the job and also the text. Basically we can remove the existing one and create from scratch. So I'm going to start with a plain text and this is going to be the name. Then another plain text for the job. Then the text. And finally we have the avatar, which is going to be an image. I'm going to name that avatar. So with this done, I can create my data. I'm going to fill the first one. And then when it comes to the avatar, you want to go to Unsplash. And we're going to search for face. So it's entirely up to you. I'm just going to select the first one right here. And then I'm going to create more data. So you can see that this process can be done by anyone in your team without any technical knowledge of how to create a layout and how to deal with a website. Let me just enter three more. There you go. So I have four items. Of course I can have hundreds of them. And this is what makes CMS so powerful, but for the sake of this course, I'm going to keep it simple. We're going to have four items and we're going to put the testimonials in the pricing page right after the pricing section. Let me go to layers and I'm going to duplicate the FAQ section. It's very similar. And it has the same paddings that I want. I'm going to remove the FAQ changed the color to a color that fits well with the wallpaper that I have up there. And you can use the code, which is 4, 4 0, 2 19. And I'm going to rename the title to a more custom title. Such as this one. Set this to feel and center. Then add a text. Set it to footnote. Cool. Now that we have this. We can now insert the content from the CMS. So I'm going to go to insert and we have a tab for CMS content and you can see that I have my collection which is testimonials and I can just click on it. It automatically populates with the data that I have entered earlier. And now I have a bunch of options in the right. So I can take care of the order. This is showing the newest first. I can also reverse it. And I can also filter by setting a condition of what field and what value, but for now, I'm going to remove the filter. I'm going to show everything. Then I want to customize the style. So to do that, you want to customize the first item. Likewise for the structure. I want to have a simpler structure, so I don't need to have the extra Stack. So I'm just going to delete that using command delete. And I want my container to have a direction vertical. Align to the left. With a gap of 12. Padding 20. Radius 30. And then border using white 10%. Now you can see that any time that I changed the first item, it changes all of the items. And that's really cool and dynamic. It works the same way as the component where if you change the main one, it's going to apply to all of the instances. So I'm going to style each of the elements. And starting with the avatar it's going to be 44 by 44 with a radius of 100%. Then I'll set the name first. Which is going to use the section title. Then the job to caption 2. And the text to footnote. Now I'm also going to change the color to white for both of these texts. Like this. You can also notice that the blue content is very similar to how variables work in components. So you can definitely switch them around if you want to, but in this case, it's already the way I want. Now we're going to select the Stack again. And we want to have two columns and two rows. So if I want, I can use a grid and choose the number of columns that I want or the number of rows depending on how much content that I have. If I want the items to take full height. First it's best to use a fixed height. So for example, 400 and that's going to solve our problem, but sometimes you just want to fill like this. And it's going to work a little bit better. And also selecting the container. I can set the width to fill. So I'm using the full width. Now I'm just going to fix the gap to 30. And I want to show you the advanced options specifically for Auto. So I can have a min width for each of these items and that is especially useful when you use Auto. So this is going to try to fit as many items as possible with the available space using the min width. So I can set to 300 and whatever exceed is going to go to the next line. So this is very similar to wrap using stacks. And by doing this, I don't need to set the number of columns and the number of rows. Now it's entirely up to you, but I'm going to use fixed and I'm going to use two columns. Like this. Then set a max width of 800 pixel. Then for the mobile I'm going to set it to one column. And voila. Then let's make sure that we fix the text. I'm going to set the width to fill and center it. Now, before we finish the course, I'm going to do the rest of the contents including the updates page as well as the footer. And also we're going to make the 3d embed optional so activate on-click then share the design as a template. So let's go to the page that is updates. And then we're going to create a layout for it. So far as you've seen, there are two ways to start a layout. Either you can start with the container and then drill down into the content, or you can start with the content first and then get into the containers. In CSS, you do the first method in SwiftUI, you tend to do the second method. In Framer, I found that both works quite well. So in this case, I'm going to start with the content first starting with the text. Which is caption 2. Then the image which is going to be Fill and height 300. Now it's a little bit annoying that I always insert at the top. So I'm going to create my frame right away. Command enter. Set this to fill and content to fit. Then align left. Gap 20 with a padding of 30. Now I'm going to set the background right away. So go to styles with a fill black 20% the border white 10%. Radius 30. Let's add a background blur to 30, and then I'm going to add a realistic drop shadow. Setting to 100 and diffusion one. Now, I want to make sure that it's not too large. So I'm going to set a max width of 800 pixel. For the image. Let's readjust that to fill. And I'm going to set Unsplash to 3d abstract. Let's scroll a little bit to find this flower here by Simon Lee. Then set a corner radius of 20. Let's continue with the title. This is going to be a section title. Then duplicate it. With a footnote. Now, both the title and the text I'm going to set it to fill. Then we have a line. Setting to height one. Fill with the color. White. 10%. And also we have a small title. What's fixed. Setting this one to footnote two. Cool. Now we're going to set the little cards to show each of the fixes. I'll start with duplicating this. And then pasting the content using footnote. Then the text using caption. Also, I'm going to insert an icon. Just make sure to put that next to your new text. I'm going to set this to white. 32 by 32. Then move this before the title and select the three. Create a frame. Set to fill and fit. With the Stack going vertical. Aligned to the left with a padding of 30, 20, 30, and then 20. I'm going to change the style with the fill of black 20%. Border 10% white. Radius 25. Now, because I'm going to use this multiple times, I'm going to create a component out of this called fix and I'm going to set the values. So the name of the icon. The title. And the text. Just make sure to fix whatever problems you may have. So I'm going to set the text to fill. And then go back. I'm going to duplicate this and put this. And create frame. That to fill and height fit. Direction horizontal. And also make sure that each of the component is also using Fill. So there we go. I'm just going to change the icon for this one to Spade and then change the title as well as the text. Great I'm just going to fix these text colors to black instead to have a better contrast. And also I'm going to create a new section for the rest of the updates because otherwise the wallpaper is going to stretch too much. Let me duplicate this. And I'm going to remove the background. Then change the background color to let's say black then change the text back to white. Now we can change the content and also change the image. And there you go. Let's make sure that the updates are going to work fine for the phone as well. Everything is good, except for the padding. Which we can set 2 80, 20, 80, 20. Likewise for here 80 20, 80, 20. And then we also want to make sure that the Stack here for the phone is going to be vertical. And likewise for the second update. We actually didn't need the title and description in the second part. Now, all that's left is to create the footer. So I'm going to go to home. And we can see how we can design a footer that is functional and well-organized and adaptive. So I'm going to go to layers, select the desktop, create a new section using this plus sign. And here I'm going to set a background color. First, I'm going to rename this to footer. Said the width, to fill and set to layout. Direction vertical. Gap 30. And then the padding is going to be 100 30 100 and then 30. A footer is typically comprised of the links to more of the sections that are normally not included in the top bar, but also you can have a newsletter and then you have the copyright plus the links to the terms and the privacy. So we're going to start with the links and I'm going to insert the icon for each link. It's going to be 30 by 30. Setting it to white. I'm going to use Duotone and change the icon to Stack. Now I'm going to insert the text which is to the page components which is going to use the textile caption to. Now I'm going to create a frame by selecting the two of them. Set to fit and fit. Horizontal. Have a little bit of padding so I can create a button. 8 16, 8. 16. Radius 10. And fill black. For now. I'm going to set it to 0% because I'm going to set a hover. But to do that, I'm going to create my component. Which is going to be called link. Now let's create the hover state. And I'm going to go to the field. And set it to white. 10%. And I'm going to create five more of these. Make sure to set to fit content. Then I'm going to change the content. But now I'm missing the variables, especially for the icon. So let's not forget that. So the second one. Pricing, Credit card. Then updates. Using files. And then I'm going to have links to the social channels, including discord and then Discord logo. YouTube youTube logo. Instagram. Instagram logo. So, let me set this into columns. I'm going to select the first three. Create frame. Fit fit. And then to the left. Likewise for the next three. Fit fit. And then left. Also, I want these links next to each other. So create another frame. And fill, fit in term of height. And direction horizontal. Now I'm going to center. And I'm going to add a newsletter component. Let's start with a title. Which is caption 2. Then we're going to use a really popular service, which is called MailChimp. I'm going to go to forms and select on MailChimp. Now you can see that I didn't want to put that inside the rows. So I'm going to put that outside. Then select these two. Create a frame. Set to fit fit. And vertical. Align left. Put the title to the top. Make sure that depending on the size of your texts. It's usually better to set it to fill and likewise for the form. So I also want to have a little disclaimer at the bottom of the newsletter. Just to say that we're not going to spam. Then I'm going to set this one to caption. Now for the container itself, I'm going to style a little bit. Set it to gap 20. Padding 20. Radius 20. Fill Black 40%. And border white 10%. Also, I want to style the button. So I'm going to use the color. F F 5 2 4 F. Awesome. Now for each of these columns. I can definitely set them to fill. So that they use exactly the same space. Now I'm going to add a little bit of gap between the columns. Add a divider, height of one and with of 25%. Then set to white which is 10%. Next I'm going to add the copyright text. It's going to be a caption. Then duplicate and add the terms as well as the privacy policy. So I'm going to use a Stack by creating a frame. And set it to fit content. For now I'm going to use the direction horizontal. And a gap of 30. Let's take a look if this is working well for the tablet first. And so I can definitely reduce the size of the newsletter. For example, I'm going to set it to fill with a max with of 400 pixels. So this fits a little bit better for the tablet. And we're going to deal with the phone inside the components. Since we're going to be reusing the footer across multiple pages. We're going to select everything and create a component. Then right away, we're going to create a variant and we're going to set this to 3 90. Now I'm going to set my container to wrap and I'm going to set the padding to 80, 20, 80, 20 to have more space. I'm going to fix the text at the bottom first direction vertical. And for these two columns I'm going to set to fill. So we can definitely fix this by making sure that the newsletter has a min width of let's say 300. Perfect. Again, there are many ways to go about this layout and. You can even have two columns. So, for example, you can have another container for these two columns. And it's going to wrap nicely. But otherwise min with max width is also a really good option. All right, I'm going to rename this to phone and I'm going to get out to home. Then I'm going to go to the mobile and make sure that I'm selecting the phone variant. Then I can copy the footer. And place that inside the other pages. So selecting desktop and then paste that. Set it for the phone variant for phone. Do the same things for the other pages. Perfect. So one final topic that I want to discuss is about the performance of 3d assets. I do have a course about spline and we get to learn about the 3d environment and also how to create a mock-up like this. And you can play with the animation, you can work with the interaction, it's really cool. But the thing is 3d is not made for all the devices and there are are still a lot of them out there. So performance is definitely a big issue when it comes to animations. And 3d. When you work with 3d, typically you want to reduce the amount of polygons as much as you can, but sometimes. There's just a limit to how much you can reduce that without reducing too much the quality. Already, we can see that these polygons are not super curved it's a little bit sharp. But it still looks good. The two things that I like to do is to reduce the shadow quality as well as the detail of shadow. Of course for each polygon you want to reduce the number of this subdivision. In this case, I'm already at the minimum. Then you have these assets you want to use low resolution assets as much as you can. And then we have the blur layers et cetera. So we have to look into all of these things. So at the end of the day, it depends on what you're trying to create and how complicated that is. In this case, I do have a blob, which is fairly heavy, I do have a background blur and multiple screenshots as well as the interaction itself. A lot of computers can handle this, but of course there's no denying that older computers can't. One thing you can do is to go to the embed and create a component and make it optional. If performance is really important and supporting all the devices is really important. So I'm going to select embed and I'm going to create a component out of it called 3d asset. And then here, I'm going to set a variant. So I have the second variant, which is the 3d asset. And then the first one. Instead of showing the 3d asset, I can just have an image. So I'm going to set the constraint to zero on all sides. And change the fill set to image I'm going to upload. Hero background. So, this is what I have and I'm going to hide. So set, visible to know for embed and for variant 2 I'm going to do the opposite. So embed yes. And the frame to know. Then I'm going to set a simple hover state which has a button. That I'm going to insert from components. And it's the button. Then I'm going to set to variant three width fit content. Change the icon to cube. And change the text to click to view in 3d. I'm going to set the connection from the first variant to the second variant using a tab. And from here I should have the image that shows by default. So it's going to load much faster and then when I click on it, it's going to start loading the 3d. So like this on first load, your website is going to feel a lot faster. And not everyone has to experience the 3-d if their device can't handle the 3d as well. Now, this is a fully working site and you can even share that as a template. So you can definitely publish it and share the link and you can also save that as a template. And if you save that as a template, typically, you're going to need a cover. So the canvas is kind of made for that. So you can say thumbnail. There's a specific resolution of artwork and here you're going to put the cover for the template. I can just put this image, which is a screenshot right here. And then I'm going to set overflow to hidden. And there you go. I'm going to right click on this and it's going to set as a thumbnail. So once you have the thumbnail, it's going to show up in your template. So we can move back to the project or you can save it again, as a template, then you can see the templates that you have. And you can copy the remix link, which allows people to view the template and copy that to their account. And also you're going to be able to publish your template make it free or make it paid to the collection that is on framer.com. So I hope you had a lot of fun following this course. I have my own template that you can just copy into your project and work from there. I think we've learned so much about how Framer works, how to do all of these effects, working with layouts and parallax effects and animations as well as creating a full site with multiple pages and 3d assets, really interesting components and CMS data, variables, overlays a sign up form, and making our website fully responsive and even creating a custom hamburger menu that is functional and really easy to design. I really enjoyed creating this course. And I think Framer has a magical tool for creating a website that is familiar to a lot of designers who are using Figma and framer and sketch. So I hope this experience is going to encourage you to create your own site. If you create something interesting give me a shout out on Twitter. And I hope to see you in the next course.
Info
Channel: DesignCode
Views: 156,762
Rating: undefined out of 5
Keywords: Framer sites, web design, nocode, ui design, design tool, adaptive layout, responsive site, 3d asset, spline tool, crash course
Id: 0korQqBgJ_o
Channel Id: undefined
Length: 164min 53sec (9893 seconds)
Published: Tue Aug 30 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.