Back
10 minute Framer Crash Course for Beginners [FREE]
Nabeel
Founder @ SegmentUI
Framer and no-code tools have been the latest craze. While it is pretty straight forward and easy to learn for beginners, here are the 10 most important concepts you need to know in Framer to get started the right way. After all, having a good base is crutial before building.
1. Frames and Stacks
Frames: Frames are the foundational building blocks in Framer, akin to divs in HTML. They can contain various elements such as text, images, and even other frames. Frames offer flexibility in styling and positioning, making them crucial for structuring your layout. For instance, you can use frames to group related elements together, apply background colors, or add borders. If you're used to Figma, frames should not be a new subject for you.
Stacks: Stacks are essential for creating responsive layouts. Think of them as responsive frames or auto-layout in Figma. They automatically arrange their child elements either vertically or horizontally and adjust based on screen size. Using stacks ensures that your design remains consistent and adaptive across different devices. Stacks function similarly to CSS Flexbox, allowing you to control the spacing, alignment, and distribution of elements within a container. The best way to learn this is by experimenting and playing around or remixing other people's projects from free remix libraries
2. Relative vs. Absolute Positioning
Relative Positioning: This keeps elements within the flow of the document, making them adapt naturally to changes in the layout. Elements positioned relatively will move as their containing elements change, ensuring responsiveness. This is particularly useful for maintaining the alignment of elements as the screen size changes.
Absolute Positioning: Allows for precise placement of elements but can lead to issues with responsiveness. Absolute positioning removes elements from the normal document flow, which can cause overlap or misalignment on different screen sizes. Use it sparingly and only when necessary, such as for overlaying text on images or creating custom layouts that require fixed positions. Absolute positioning is ideal for elements that need to stay in a specific location, regardless of the surrounding content, like a floating action button.
3. Min and Max Width
Minimum Width: Setting a minimum width ensures that an element does not shrink below a certain size, maintaining its usability and readability. This is particularly useful for elements like buttons or text boxes that need to remain legible at smaller screen sizes.
Maximum Width: Setting a maximum width prevents an element from growing too large, which can disrupt the layout. This is useful for maintaining a consistent design across different screen sizes. For instance, setting a maximum width of 1200px for a container ensures that it does not stretch excessively on larger screens, especially on wide monitors
For maximum responsiveness, combine relative positioning, stacks, min width and max width. You can see this in full effect on some of our templates.
4. Responsive Design and Breakpoints
Breakpoints: Framer allows you to define breakpoints for different screen sizes. Breakpoints enable you to create custom layouts for specific screen widths, ensuring your design looks great on desktops, tablets, and mobile devices. Common breakpoints include 810px for tablets and 390px for mobile devices. At each breakpoint, you can adjust the layout, font sizes, and other properties.
Responsive Adjustments: Ensure your design elements adjust fluidly between breakpoints to maintain a cohesive look. Use flexible units like percentages or viewport units (vh) and avoid fixed widths. Utilize Framer's preview feature to test your design on various screen sizes and make adjustments as needed. Additionally, you can set the responsiveness of text for different breakpoints in the font panel.
5. Components and Variants
Components: Reusable design elements that help maintain consistency across your project. For example, buttons, headers, and footers. Components allow you to create a master element that can be used throughout your project. Any changes made to the master component will automatically update all instances. This feature is particularly useful for maintaining a consistent design language across a large project.
Variants: Different states of a component, such as open and closed states for a dropdown menu. Each variant can have its own hover and pressed properties, providing a comprehensive range of behaviors within a single component. Variants help manage complex interactions and design states without duplicating elements. For example, a dropdown menu component can have a closed variant and an open variant, each with their own hover and pressed states, streamlining the design process and reducing redundancy. We have a huge library of components that make use of theses components & variants concepts. It's quite amazing what you can do with just variants and components once you master them.
6. Site Styles
Global Styles: Define typography, colors, and other design properties that apply throughout your project. This ensures consistency and saves time when making global changes. Global styles can be set for headings, paragraphs, buttons, and other elements, ensuring a cohesive look and feel. For example, you can define a primary color that is used for buttons, links, and highlights throughout your site, making it easy to update the color scheme later.
Dark and Light Modes: Framer supports creating both dark and light modes for your site, enhancing the user experience. Define separate styles for each mode and easily switch between them. This feature is particularly useful for accommodating user preferences and improving accessibility. Implementing dark mode can reduce eye strain for users in low-light environments, while light mode can enhance readability in bright conditions.
7. CMS (Content Management System)
Collections: Manage dynamic content like blog posts, portfolios, or products. Collections centralize your content, making it easy to update and manage. Use collections to store and organize data, which can then be bound to design elements in your project. For example, you can create a collection for blog posts with fields for title, author, date, and content. This allows you to easily update your site with new blog posts without manually editing the design. Think of the CMS as a database for your projects.
Content Binding: Bind your CMS content to elements in your design, ensuring that updates in the CMS reflect instantly on your site. This dynamic approach allows for easy content management and ensures that your website remains up-to-date without manual updates to individual elements. For instance, binding a collection of product images and descriptions to a grid layout allows you to showcase your products dynamically. Additionally, you can add a bunch of upgrades and manipulations on top of the CMS to make the most out of it.
8. Interactions and Animations
Interactive Elements: Add hover effects, click actions, and other interactions to make your site more engaging. Framer's interaction tools allow you to define how elements respond to user input, such as changing color, size, or position. For example, you can create a button that changes color on hover and triggers a modal window on click.
Animations: Use Framer's animation features to create smooth transitions and entrance effects. Animations can enhance the user experience by providing visual feedback and guiding user attention. Customize animations with easing functions, durations, and delays to achieve the desired effect. For example, you can animate a banner to slide in from the top of the screen, capturing the user's attention immediately upon page load.
There are a couple of ways to do this
Using variants, transitions and states
Using hover effects
Using scroll animations and transforms
Using page transitions
If you're looking for what can be possible with these effects, check out our free community collection of scrolling animations & transitions.
9. Code Overrides
Custom Code: Framer allows you to add custom code to extend the functionality of your designs. This is particularly useful for adding unique interactions or integrating with third-party services. Use JavaScript to manipulate elements, handle events, and create more complex behaviors. For instance, you can use custom code to fetch data from an external API and display it dynamically on your site.
Code Components: Create reusable components with custom behavior using code. This helps in building more complex and dynamic websites. Define custom properties and methods for your code components to make them versatile and easy to integrate into your design. For example, a code component for a dynamic chart can take data as a prop and render it using a charting library like D3.js.
You can either make them yourself using react and javascript of remix them from other code libraries.
10. Performance Optimization
Adding Site Meta Data: Add titles, thumbnails, favicons, descriptions so google understands what your page is about.
Reduce Blurs, Background Blurs and Shadow Blurs: High amounts of blurs and shadow blurs can cause serious performance issues so its recommended to keep them at a minimum.
Minimizing Code: Reduce the size of your code by eliminating unnecessary elements and optimizing scripts. Framer allows you to see the impact of your code on performance and provides suggestions for improvement. This includes minifying CSS and JavaScript files, which can significantly reduce load times.
Optimizing Assets: Framer optimises your content by default so this is not something you need to be worrying about.
Check out our full guide on performance optimizations to learn more