<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Faith Olohijere - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Faith Olohijere - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sat, 16 May 2026 22:22:18 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/author/snowolohijere/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ How to Use Viewing Patterns in Your Website Designs ]]>
                </title>
                <description>
                    <![CDATA[ While going through a website or an application, people tend to take in the information displayed differently. You may notice that sometimes a person may miss information that others wouldn't miss. This may have happened to you before, as well. This ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-use-viewing-patterns-in-your-website-design/</link>
                <guid isPermaLink="false">66d03a30ab216b4115759499</guid>
                
                    <category>
                        <![CDATA[ Accessibility ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Faith Olohijere ]]>
                </dc:creator>
                <pubDate>Wed, 12 Jun 2024 14:33:18 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2024/06/pexels-ramilugot-5011944.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>While going through a website or an application, people tend to take in the information displayed differently. You may notice that sometimes a person may miss information that others wouldn't miss. This may have happened to you before, as well.</p>
<p>This is because everyone has a particular way they process information. In design, this is called viewing (or reading) patterns. As a designer, it's important to understand how your users (including potential ones) consume information, and how best to place the most crucial information so nobody misses it.</p>
<p>In this article, we'll talk about different viewing patterns, how to choose the best ones for your project, and we'll also see real-life examples of these patterns.</p>
<h3 id="heading-heres-what-well-cover">Here's what we'll cover:</h3>
<ol>
<li>What you need to know before reading</li>
<li>The origin of viewing patterns</li>
<li>Common viewing patterns</li>
<li>Why are viewing patterns important?</li>
<li>How should I choose a viewing pattern for my design project?</li>
<li>Conclusion</li>
</ol>
<h2 id="heading-prerequisites">Prerequisites:</h2>
<p>Before we go into the article proper, please note that it'll be helpful if you have basic knowledge of core design principles and the importance of these principles in guiding users' attention and organizing information effectively. </p>
<p>But this is not necessary, as I wrote this article for everyone, including absolute beginners.</p>
<h2 id="heading-the-origin-of-viewing-patterns">The Origin of Viewing Patterns</h2>
<p>The concept of viewing patterns can be traced to the field of psychology, specifically the study of eye movements and visual perception. </p>
<p>While people have been reading and consuming visual information for a long time, proper observation and analysis of reading behaviors emerged with the development of eye-tracking technology and scientific research methodologies in the late 19th and early 20th centuries.</p>
<p>A lot of pioneers and researchers such as Louis Emile Javal, Edmund Huey, Alfred L. Yarbus, and Charles H. Judd conducted experiments to observe eye movemts and behaviours in the late 19th century and early to mid-20th century.</p>
<p>The formalization of viewing/reading patterns as design principles in the context of graphic design and information architecture began to gain traction in the latter half of the 20th century. Designers and usability experts started applying insights from eye-tracking studies to optimize layouts for print media, signage, and digital interfaces.</p>
<p>Over time, the study of viewing patterns expanded beyond text-based reading to include diverse media formats, such as web pages, multimedia presentations, and interactive interfaces. </p>
<p>Today, viewing patterns continue to evolve with advancements in technology and changes in user behaviors, guiding the way designers approach layout, navigation, and content presentation.</p>
<h2 id="heading-common-viewing-patterns">Common Viewing Patterns</h2>
<p>Now that we know how viewing patterns came about, let's talk about some common viewing patterns in existence.</p>
<h3 id="heading-the-f-pattern">The F-pattern</h3>
<p>This is a common viewing pattern observed in online content consumption. According to this pattern, users scan the page in a horizontal movement across the top, then move down the page, scanning shorter horizontal sections. They continue to read less of the content, until they finally start reading vertically, forming the F-shape.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/05/image-56.png" alt="Image" width="600" height="400" loading="lazy">
<em>Diagram illustrating how the F-pattern works on a wireframe. Image Credit: <a target="_blank" href="https://www.nngroup.com/articles/f-shaped-pattern-reading-web-content/">Nielsen Norman Group</a></em></p>
<p>To capitalize on the F-pattern, you can place important information such as headlines, key points, and CTAs along the top and the left-hand side of the page to ensure maximum visibility. </p>
<p>Some examples of real-life platforms that utilize the F-pattern include:</p>
<ul>
<li><a target="_blank" href="https://shopify.com/">Shopify</a></li>
<li><a target="_blank" href="https://linkedin.com/">LinkedIn</a></li>
<li><a target="_blank" href="https://www.nytimes.com/">The New York Times</a></li>
</ul>
<h3 id="heading-the-z-pattern">The Z-Pattern</h3>
<p>The Z-pattern is another common viewing pattern. This pattern can be noticed in designs where the user is expected to move their eyes in a zig-zag pattern across the page. </p>
<p>This pattern typically starts with a horizontal movement across the top of the page (forming the first stroke of the "Z"), followed by a diagonal movement from the top-right to the bottom-left (forming the second stroke), and finally, another horizontal movement across the bottom of the page (completing the "Z"). </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/05/Z-pattern.png" alt="Image" width="600" height="400" loading="lazy">
<em>Diagram illustrating the Z-pattern. Image Credit: <a target="_blank" href="https://uxplanet.org/z-shaped-pattern-for-reading-web-content-ce1135f92f1c">UX Planet</a></em></p>
<p>To capitalize on this pattern, you can align information on the predicted path of the Z-pattern to guide users' attention more effectively, especially in designs like landing pages and presentations.</p>
<p>Some examples of real-life platforms that utilize the Z-pattern include:</p>
<ul>
<li><a target="_blank" href="https://artykul.org/https://artykul.org/">Artykul</a></li>
<li><a target="_blank" href="https://www.mohash.co/">Mohash</a></li>
<li><a target="_blank" href="https://desclimbing.com/">Des Climbing</a></li>
</ul>
<h3 id="heading-the-gutenberg-diagram">The Gutenberg Diagram</h3>
<p>The Gutenberg diagram outlines a viewing pattern based on the natural eye movement of Western readers, and is influenced by cultural and linguistic factors. </p>
<p>The Gutenberg Diagram divides the page into four quadrants: the primary optical area (top-left), the strong fallow area (top-right), the weak fallow area (bottom-left), and the terminal area (bottom-right).</p>
<blockquote>
<p>The pattern suggests that the eye will sweep across and down the page in a series of horizontal movements called axes of orientation. Each sweep starts a little further from the left edge and moves a little closer to the right edge. The overall movement is for the eye to travel from the primary area to the terminal area... – Stephen Bradley (<a target="_blank" href="https://vanseodesign.com/web-design/3-design-layouts/">Vanseo Design</a>)</p>
</blockquote>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/05/image-1--3-.png" alt="Image" width="600" height="400" loading="lazy">
<em>Image illustrating Gutenberg diagram divided into 4 quadrants. Image Credit: <a target="_blank" href="https://www.techwala.in/gutenberg-diagram-why-you-should-know-it-and-use-it/">Techwala</a></em></p>
<p>You can strategically place content based on the Gutenberg diagram to optimize visual hierarchy and readability, ensuring that important information receives the most attention.</p>
<p>Some examples of real-life platforms that utilize the Gutenberg diagram include:</p>
<ul>
<li><a target="_blank" href="http://www.wikipedia.org/">Wikipedia</a></li>
<li><a target="_blank" href="http://www.bbc.com/news">BBC News</a></li>
</ul>
<h3 id="heading-layer-cake-pattern">Layer-Cake Pattern</h3>
<p>The layer-cake pattern involves stacking multiple layers of content vertically, with each layer containing distinct information or visual elements.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/06/image-3--1-.png" alt="Image" width="600" height="400" loading="lazy">
<em>Image illustrating the layer-cake pattern on a layout. Image Credit: <a target="_blank" href="https://chipcullen.com/layer-cake-design-pattern/">Chip Cullen</a></em></p>
<p>Users typically engage with this pattern by scanning the top layer first, then sequentially exploring deeper layers based on their interest or curiosity. You can use this pattern to present complex information in a more structured format, allowing users to navigate through layers of content at their own pace.</p>
<p>Some examples of real-life platforms that utilize the Layer-Cake pattern include:</p>
<ul>
<li><a target="_blank" href="http://www.medium.com/">Medium</a></li>
<li><a target="_blank" href="http://www.squarespace.com/">Squarespace</a></li>
</ul>
<h2 id="heading-why-are-viewing-patterns-important">Why are Viewing Patterns Important?</h2>
<p>Viewing patterns help you guide how users view and consume information on your designs. They help you arrange content in a way that naturally aligns with your users' reading habits. By placing information where users are most likely to look first, you're ensuring that key messages are effectively communicated. </p>
<p>Also, understanding viewing patterns help you cater to the needs of a diverse group of users. Different people process information in different ways and understanding these habits ensure that you design with accessibility in mind.</p>
<p>What's more, designs that align with existing viewing patterns provide a more intuitive and less stressful user experience. </p>
<h2 id="heading-how-should-i-choose-a-viewing-pattern-for-my-design-project">How Should I Choose a Viewing Pattern for my Design Project?</h2>
<p>Choosing a viewing pattern for your design depends on a number of factors including, the context of your project, users' preferences, goals of the project, and so on. </p>
<p>Here's a step-by-step guide to help you select the best reading pattern for your project:</p>
<ol>
<li>Know your Users: You have to first understand the demographics of your target or potential users. What do they prefer? What are their goals? In what situations would they use your project? Gather insights into how they interact with content and their technical proficiency.</li>
<li>Define your Project Goals: Make sure to clarify the objectives and desired outcomes of the project you're working on. Are you trying to inform or facilitate a specific action? Should your design be very serious or a little playful? You need to identify the key messages you want to pass across to your users, and prioritize them based on importance. </li>
<li>Evaluate Context and Platform: Take into account how your users would view your product. Will they view your content on a website, application or a print medium? Consider the device types and screen sizes that your users are likely to use.</li>
<li>Select Viewing Pattern: Considering the available data and the insights you've gathered, you can go ahead to choose a viewing pattern that best aligns with your project objectives. </li>
</ol>
<p>Now that you've selected a viewing pattern for your design, make sure to constantly monitor it's effectiveness through testing and feedback.</p>
<p>Note: You can interchange these steps or even skip some. Just make sure to do whatever works best for your users.</p>
<h3 id="heading-lets-do-a-little-practical-exercise">Let's do a little practical exercise:</h3>
<p>Say you're working on a hero section for a new e-commerce website selling outdoor gear. Some things you need to consider for this project include:</p>
<ul>
<li>The primary goal: to showcase the latest product offerings on the hero section and entice visitors to visit the website further. You'll want to highlight key features, products, and calls-to-action (CTAs) to encourage conversion such as making a purchase or signing up for a newsletter.</li>
<li>Your target users: likely outdoor enthusiasts, including hikers, campers, and adventure seekers. They'll likely be people with limited time to spend on each webpage.</li>
<li>Context and platform: Users will likely access the page on several devices, including desktop computers, laptops, tablets, and smartphones. You'll want to consider how the design will adapt responsively across different screen sizes and orientations, priortizing mobile optimization for on-the-go users.</li>
</ul>
<p>Due to the time constraints of your users, and the need to capture attention quickly, the F-pattern may be a suitable choice. Place high-priority content, such as featured products, top deals, and prominent CTAs, along the top and left-hand side of the page, where users are most likely to look first. </p>
<p>You can use visual cues such as arrows, bold typography, and contrasting colors to draw attention to key elements and guide users' eye movements down the page.</p>
<p>Here's what I came up with from the practical design:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/06/Frame-19-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Hero section I designed using the F-pattern.</em></p>
<p>In the design above, in sequential order, there's:</p>
<ul>
<li>a top navigation containing the logo, links to other sub-pages, and the log-in and sign up CTAs(call-to-actions).</li>
<li>a main heading, description, and call-to-action (Shop Now) on the left-hand side of the page.</li>
<li>a section showing latest arrivals on the website.</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/06/Frame-20--3--1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Image showing how the F-pattern is depicted on the design.</em></p>
<p>I would love to see the results of this practical exercise on your end.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Viewing patterns are very important as I mentioned earlier. They are invaluable for designers across different disciplines, and are easy to understand and incorporate into your designs. </p>
<p>You just need to be sure of what works best for your users, and design with that in mind. Also make sure to experiment with different viewing patterns so you can discover your own unique style. Have fun experimenting!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Create an Interactive Button Component in Figma ]]>
                </title>
                <description>
                    <![CDATA[ Designers are always searching for tools that help ease their workflow and create innovative solutions for their users. This ranges from components, style guides, and design systems, to plugins and extensions. In this article, we're going to look at ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-create-an-interactive-button-component-in-figma/</link>
                <guid isPermaLink="false">66d03a25daf2a38a6b1e1d0b</guid>
                
                    <category>
                        <![CDATA[ figma ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Design ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Faith Olohijere ]]>
                </dc:creator>
                <pubDate>Wed, 06 Mar 2024 18:44:53 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2024/03/pexels-jess-bailey-designs-810079.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Designers are always searching for tools that help ease their workflow and create innovative solutions for their users. This ranges from components, style guides, and design systems, to plugins and extensions.</p>
<p>In this article, we're going to look at components as features which can help boost your efficiency as a designer. I'll show you how to create an interactive button component using Figma.</p>
<h2 id="heading-table-of-contents">Table of Contents</h2>
<ol>
<li><a class="post-section-overview" href="#prerequisites">Prerequisites</a></li>
<li><a class="post-section-overview" href="#heading-what-are-components">What are Components?</a><br>– <a class="post-section-overview" href="#heading-button-components">Button components</a></li>
<li><a class="post-section-overview" href="#heading-how-to-create-an-interactive-button-component-in-figma">How to Create an Interactive Button Component in Figma</a><br>– <a class="post-section-overview" href="#heading-build-the-button-component">Build the button component</a><br>– <a class="post-section-overview" href="#heading-how-to-create-variants">How to create variants</a><br>– <a class="post-section-overview" href="#heading-how-to-create-hover-and-active-states">How to create hover and active states</a><br>– <a class="post-section-overview" href="#heading-how-to-create-other-button-states">How to create other button states</a><br>– <a class="post-section-overview" href="#heading-how-to-group-buttons-by-states">How to group buttons by states</a><br>– <a class="post-section-overview" href="#heading-how-to-make-the-button-components-interactive">How to make the button components interactive</a></li>
<li><a class="post-section-overview" href="#heading-conclusion">Conclusion</a></li>
</ol>
<h2 id="heading-prerequisites">Prerequisites:</h2>
<p>To get the most out of this article, it'll be helpful to have basic knowledge of how to use Figma and its features. But note that this is not necessary, as I wrote this article for everyone – irrespective of their individual level of knowledge.</p>
<p>This article is for everyone who is interested in learning more about components, reusable elements, Figma, and design in general.</p>
<h2 id="heading-what-are-components">What are Components?</h2>
<p>Components are reusable design elements that you can use multiple times within a project or across different projects. </p>
<blockquote>
<p>Components are interactive building blocks for creating a user interface. They can be organized into categories based on their purpose: Action, containment, communication, navigation, selection, and text input. – Material Design 3</p>
</blockquote>
<p>Components can range from simple elements like buttons or icons to more complex structures like navigation bars or entire UI modules. They help maintain consistency and uniformity in a design, they are scalable, and they're very helpful for collaboration.</p>
<h3 id="heading-button-components">Button Components</h3>
<p>Buttons, sometimes called CTAs, are elements which allow a user to carry out a specific action like signing up, buying a product, subscribing to a newsletter, and so on. They come in different formats and sizes, and are very important elements in design.</p>
<p>Button components typically consist of visual attributes such as shape, size, color, and typography to convey their functionality and encourage user interaction. They can vary in style and appearance based on the design system, brand guidelines, or the context of their usage within an application or website. </p>
<h2 id="heading-how-to-create-an-interactive-button-component-in-figma">How to Create an Interactive Button Component in Figma</h2>
<p>Next, we're going to create an interactive button component in Figma. This button component will contain text only buttons, buttons with icons on either the left or right side of the text, and buttons with icons only. </p>
<p>The button component will contain different button states (default, hover, and active), and will be interactive.</p>
<p>This is very helpful for when you're designing interfaces with different use cases. For instance, you could want a button in your design to carry text and an accompanying icon, for a particular screen. In another screen, you might want to use an icon only button. If you have already created these different components, you'll save a lot of time.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/image-30.png" alt="Image" width="600" height="400" loading="lazy">
_Different button types (Icon only, Icon &amp; text, text only). Image from <a target="_blank" href="https://www.google.com/url?sa=i&amp;url=https%3A%2F%2Fwww.telerik.com%2Fdesign-system%2Fdocs%2Fcomponents%2Fbutton%2F&amp;psig=AOvVaw2RdR4WQVKTp_y542hJlwaB&amp;ust=1709772173745000&amp;source=images&amp;cd=vfe&amp;opi=89978449&amp;ved=0CBYQ3YkBahcKEwjQnoXps96EAxUAAAAAHQAAAAAQBA">Telerik</a>_</p>
<p>Let's get started!</p>
<h3 id="heading-build-the-button-component">Build the Button Component</h3>
<p>Open a new Figma file. If you don't have a Figma account, go ahead and create one at <a target="_blank" href="https://www.freecodecamp.org/news/p/3c725afb-cd49-490c-b122-0115d9b1780a/figma.com">figma.com</a>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/02/Button-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Opening a new Figma file</em></p>
<p>Next, click on the Text icon on the left hand panel, and type <em>Button</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/02/Button-2.png" alt="Image" width="600" height="400" loading="lazy">
<em>Typing "button" in the search bar.</em></p>
<p>Next, add auto-layout (Shift + A). </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/02/Button-3.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding auto-layout</em></p>
<p>Make the horizontal button padding to be 36px and the vertical padding 12px. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/02/Button-4.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding horizontal and vertical padding</em></p>
<p>Also, give the button a border radius of 8px.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/02/Button-5.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding a border radius.</em></p>
<p>Add a fill to the button.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/02/Button-6.png" alt="Image" width="600" height="400" loading="lazy">
<em>Moving to the "fill" section.</em></p>
<p>I'll choose the color code #1C199, which is a shade of blue.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/02/Button-7.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choosing a color code.</em></p>
<p>Next, I'll make the text a little bit bolder. To do that, click on the text, and move to the font section on your right panel.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-8.png" alt="Image" width="600" height="400" loading="lazy">
<em>Moving to the font section.</em></p>
<p>I'll give the button a font size of 16px, and make the weight "medium".</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-10.png" alt="Image" width="600" height="400" loading="lazy">
<em>Changing the font size to 16 px</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-11.png" alt="Image" width="600" height="400" loading="lazy">
<em>Changing the font weight to medium.</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-9.png" alt="Image" width="600" height="400" loading="lazy">
<em>Showing the edited text</em></p>
<p>Next, I'll add any icon of my choice to the button frame. This will enable me easily create a button component with icons, and not just text when the time comes.</p>
<p>To add an icon, I'll use a Figma plugin called <em>Iconify</em>, which is one of the largest icon collections in Figma. To do this, right-click on your canva and a menu will pop-up. Go to the <em>Plugins</em> tab.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-12.png" alt="Image" width="600" height="400" loading="lazy">
<em>Opening Plugins</em></p>
<p>A list of the recent plugins you have used will pop-up. You'll also see all the <em>Saved</em> plugins you have. The first plugin on my list is Iconify (that's because I use it a lot, lol). Now, I'll just click on Iconify and search for the particular icon I want to use.</p>
<p>If you have never used a plugin before, and so there are no plugins on your list, you can use the resources section to search for your plugin of choice and save it to your list.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-65.png" alt="Image" width="600" height="400" loading="lazy">
<em>Going to the resources section</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-64.png" alt="Image" width="600" height="400" loading="lazy">
<em>Searching for plugins</em></p>
<p>I want to use the <em>forward arrow</em> icon, so I'll just search for that using the search field on the plugin.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-13.png" alt="Image" width="600" height="400" loading="lazy">
<em>Searching for the forward arrow icon.</em></p>
<p>A lot of forward arrow icons from different collections will pop-up so, I'll just choose any particular one that works best for me, in this case, a forward arrow icon from <em>IonIcons</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-14.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting a particular forward arrow icon</em></p>
<p>I'll select the icon and click on the <em>Import icon</em> button so it can appear on my Figma file.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-15.png" alt="Image" width="600" height="400" loading="lazy">
<em>Importing the icon to your file</em></p>
<p>Next, we'll reduce the size of the icon to whatever height and width we want it to be. It's currently on 48 x 48 and I want it to be 24 x 24.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-16.png" alt="Image" width="600" height="400" loading="lazy">
<em>Icon size currently 48x48</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-17.png" alt="Image" width="600" height="400" loading="lazy">
<em>Changing icon size to 24x24</em></p>
<p>We'll also change the colour of the icon to match the text colour (white). To do this, make sure the icon is selected and then scroll down to <em>Selection colours</em> to input the color code, which in this case is #FFFFFF.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-18.png" alt="Image" width="600" height="400" loading="lazy">
<em>Changing icon colour to white (#FFFFFF)</em></p>
<p>Next, we'll add the icon inside the button frame. To do this, just drag your icon inside the frame.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-19.png" alt="Image" width="600" height="400" loading="lazy">
<em>Dragging arrow icon into the button frame</em></p>
<p>You'll notice that the frame size increases to accommodate the icon added. </p>
<p>Next, duplicate the icon and move it to the other side of the text. Duplicating the icon will help us easily create button components with icons on either sides of the text later.</p>
<p>To do this, simply use Ctrl + D, and move the duplicated icon to the other side.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-20.png" alt="Image" width="600" height="400" loading="lazy">
<em>Using Ctrl + D to duplicate an icon</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-21.png" alt="Image" width="600" height="400" loading="lazy">
<em>Moving the duplicated icon to the other side of the frame.</em></p>
<p>Next, I'll hide both icons because I want to create my first button component (text only button). I'll rename the frame to Button.</p>
<p>To hide both icons, move to the layers panel on your left, and click on the eye icon by the side of the assets you want to hide.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-22.png" alt="Image" width="600" height="400" loading="lazy">
<em>Moving to the layers panel to hide the icons</em></p>
<p>You'll notice that the frame resizes automatically once both icons are hidden.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-23.png" alt="Image" width="600" height="400" loading="lazy">
<em>Button frame with hidden icons</em></p>
<p>I'll then rename the frame to <em>Button</em>. To do that, double click on the heading of the frame, and rename.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-24.png" alt="Image" width="600" height="400" loading="lazy">
<em>Double-clicking the frame</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-25.png" alt="Image" width="600" height="400" loading="lazy">
<em>Renamed button frame</em></p>
<h3 id="heading-how-to-create-variants">How to Create Variants</h3>
<p>Next, we'll make the button frame a variant. </p>
<p>Variants help you create multiple versions or states of a component. They're very useful when designing interfaces that have different states or variations, such as buttons with different sizes or designs, like we're creating here.</p>
<p>To make the button frame a variant, double-click on the component icon at the top of your screen.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-26.png" alt="Image" width="600" height="400" loading="lazy">
<em>Moving to the component icon at the top of the screen and double-clicking</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-27.png" alt="Image" width="600" height="400" loading="lazy">
<em>Variant of the button component</em></p>
<p>Next, I'll add another variant because I want to have three states for the button (Default, Hover, and Active). To add another variant, click on the plus icon on any of the already existing variants.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-28.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicking on the olus icon on a variant to add nother variant</em></p>
<p>Automatically, a new variant will be added.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-29.png" alt="Image" width="600" height="400" loading="lazy">
<em>Added third variant</em></p>
<p>Next, I'll increase the size of the component frame so it can accommodate other variants that will be added. To do this, simply select the whole component, and drag to your satisfied size.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-30.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting the component frame</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-31.png" alt="Image" width="600" height="400" loading="lazy">
<em>Increasing the width of the component frame.</em></p>
<h3 id="heading-how-to-create-hover-and-active-states">How to Create Hover and Active States</h3>
<p>Next, I'll tweak the last two buttons (hover and active states), so the difference between the three button states will be obvious. To do this, I'll make the hover state lighter, and the active state darker.</p>
<p>For the hover state, I'll change the color code to #392AE7, which is a lighter shade of blue. Make sure the particular button is selected so the changes take effect:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-32.png" alt="Image" width="600" height="400" loading="lazy">
<em>Changing color code for the hover state</em></p>
<p>For the active state, I'll change the color code to #19107A which is a slightly darker shade of blue.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-33.png" alt="Image" width="600" height="400" loading="lazy">
<em>Changing the color code of the active state</em></p>
<h3 id="heading-how-to-create-other-button-states">How to Create Other Button States</h3>
<p>Next, we want to create other button states (buttons with icons on either side of the text, and with icons only).</p>
<p>To start with, I'll duplicate the three buttons. To do this, select the three buttons and duplicate using Ctrl + D.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-34.png" alt="Image" width="600" height="400" loading="lazy">
<em>Duplicating the three buttons</em></p>
<p>Next, we want to create button components with text and a left icon. To do this, click on the eye on the left icons on each of the icons to reveal them.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-35.png" alt="Image" width="600" height="400" loading="lazy">
<em>Revealing the icons on the left side of the buttons</em></p>
<p>Next, we want to create button components with text and a right icon.</p>
<p>To do this, duplicate the buttons again, and do the same for the right icons.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-36.png" alt="Image" width="600" height="400" loading="lazy">
<em>Duplicating the buttons a second time</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-37.png" alt="Image" width="600" height="400" loading="lazy">
<em>Revealing the icons on the right side</em></p>
<p>Lastly, we want to create button components with icons only.</p>
<p>To do that, we'll duplicate the buttons one last time to hide the text.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-38.png" alt="Image" width="600" height="400" loading="lazy">
<em>Duplicating the buttons a third time</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-39.png" alt="Image" width="600" height="400" loading="lazy">
<em>Hiding the text</em></p>
<p>I'll make the <em>icon only</em> frames a square shape. To do that, select the three frames and drag to resize.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-40.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting the 'icons only' frames</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-41.png" alt="Image" width="600" height="400" loading="lazy">
<em>Resizing the frames</em></p>
<p>I'll now resize the component frame to fit its content.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-42.png" alt="Image" width="600" height="400" loading="lazy">
<em>Resizing the component frame.</em></p>
<p>Next, we'll rename the different button states so it'll be easy to identify them. First, select the whole component frame. Then move to the section labelled <em>Properties</em>, and change <em>Property 1</em> to <em>Button</em> to show that this is a button component.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-43.png" alt="Image" width="600" height="400" loading="lazy">
<em>Moving to properties section</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-44.png" alt="Image" width="600" height="400" loading="lazy">
<em>Renaming the component frame</em></p>
<p>Next, we'll rename the button frames by icons. Select the first three frames horizontally, and go over to the <em>Current variant</em> section. Rename them <em>No icons</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-46.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting first three buttons and renaming them</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-47.png" alt="Image" width="600" height="400" loading="lazy">
<em>Renamed no icons buttons</em></p>
<p>We'll do same for the next three buttons, and name them <em>Left Icons</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-48.png" alt="Image" width="600" height="400" loading="lazy">
<em>Renamed left icons' buttons</em></p>
<p>We'll do the same thing for the next set, renaming them <em>Right Icons</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-49.png" alt="Image" width="600" height="400" loading="lazy">
<em>Renamed right icons' buttons</em></p>
<p>Finally, for the last set, we'll rename the buttons <em>Icons only</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-50.png" alt="Image" width="600" height="400" loading="lazy">
<em>Renamed icons only buttons</em></p>
<h3 id="heading-how-to-group-buttons-by-states">How to Group Buttons by States</h3>
<p>Next, we'll group the buttons by states and name them. We'll start with the first state: <em>Default</em>. Select all the button frames under default and move to the <em>Current variant section</em> on the right hand panel. Click on the configure icon to edit the component configuration.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-51.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicking on configure icon</em></p>
<p>Click on the description box to add a description. In this case, I'll simply type <em>Default state</em>. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-55.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding a description</em></p>
<p>Do the same for the other two states – hover and active.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-53.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding a description for the hover state</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-54.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding a description for the active state</em></p>
<h3 id="heading-how-to-make-the-button-components-interactive">How to Make the Button Components Interactive</h3>
<p>To start, switch to the Prototype tab, located at the top of your screen, right-hand panel.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-56.png" alt="Image" width="600" height="400" loading="lazy">
<em>Switching to prototype mode</em></p>
<p>Next, add an interaction from the first to the second <em>no icon</em> button frame. To do this, click on the first button frame and drag the plus icon to the second frame.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-57.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding an interaction</em></p>
<p>This will bring up a list of interaction options and settings  for the animation. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-58.png" alt="Image" width="600" height="400" loading="lazy">
<em>Bringing up interaction setting</em></p>
<p>Change <em>On click</em> to <em>While hovering</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-60.png" alt="Image" width="600" height="400" loading="lazy">
<em>Changing interaction type to "while hovering"</em></p>
<p>Do the same for the next button frame but, instead of <em>While hovering</em>, change to <em>While pressing</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-61.png" alt="Image" width="600" height="400" loading="lazy">
<em>Animating the third button frame</em></p>
<p>Now, repeat the same steps for the other sets.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/Button-62.png" alt="Image" width="600" height="400" loading="lazy">
<em>Repeating the animation steps for the other button sets.</em></p>
<p>Voilà, you just created an interactive button component. </p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Components help enhance your designs and make them more efficient. They also help you save time and they improve consistency across your designs. But they can only help when they're created the right way.</p>
<p>Practicing often will help improve your ability to create helpful reusable components. Remember, make every decision with your users in mind.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Use Variables in Figma – A Handbook for Beginners ]]>
                </title>
                <description>
                    <![CDATA[ At Figma Config 2023, the Figma team unveiled a lot of new features – including variables. The launch of variables in Figma offers designers a new approach that helps them make their designs more flexible and adaptable.  In this tutorial, you'll lear... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/variables-in-figma-handbook/</link>
                <guid isPermaLink="false">66d03a3ba30d09f91d49b78b</guid>
                
                    <category>
                        <![CDATA[ Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ figma ]]>
                    </category>
                
                    <category>
                        <![CDATA[ handbook ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Design ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Faith Olohijere ]]>
                </dc:creator>
                <pubDate>Fri, 15 Dec 2023 22:11:10 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/12/How-to-Use-Variables-in-Figma-cover--1-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>At Figma Config 2023, the Figma team unveiled a lot of new features – including variables. The launch of variables in Figma offers designers a new approach that helps them make their designs more flexible and adaptable. </p>
<p>In this tutorial, you'll learn what variables in Figma are, and how to create and implement different types of variables while designing in Figma.</p>
<h2 id="heading-prerequisites">Prerequisites:</h2>
<p>To get the most out of this handbook, it'll be helpful to have basic knowledge of how to use Figma and its features. But note that this is not necessary, as I wrote this handbook for everyone – irrespective of their individual level of knowledge. </p>
<p>This handbook is for everyone who is interested in learning more about variables, Figma, and design in general.</p>
<h2 id="heading-table-of-contents">Table of Contents:</h2>
<ul>
<li><a class="post-section-overview" href="#heading-what-are-variables">What are variables?</a></li>
<li><a class="post-section-overview" href="#heading-differences-between-variables-and-styles-in-figma">Differences between Variables and Styles in Figma</a></li>
<li><a class="post-section-overview" href="#heading-why-are-variables-important-to-the-design-process">Why are Variables Important to the Design Process?</a></li>
<li><a class="post-section-overview" href="#heading-how-to-create-variables-in-figma">How to Create Variables in Figma</a><ul>
<li><a class="post-section-overview" href="#heading-how-to-create-colour-variables-in-figma">How to Create Colour Variables in Figma</a><ul>
<li><a class="post-section-overview" href="#heading-how-to-create-colour-variables-for-tokens">How to Create Colour Variables for Tokens</a></li>
<li><a class="post-section-overview" href="#heading-how-to-implement-colour-variables-in-your-designs">How to Implement Colour Variables in Your Designs</a></li>
<li><a class="post-section-overview" href="#heading-how-to-create-different-modes-with-variables">How to Create Different Modes with Variables</a></li>
</ul>
</li>
<li><a class="post-section-overview" href="#heading-how-to-create-number-variables-in-figma">How to Create Number Variables in Figma</a></li>
<li><a class="post-section-overview" href="#heading-how-to-create-string-variables-in-figma">How to Create String Variables in Figma</a></li>
<li><a class="post-section-overview" href="#heading-how-to-create-boolean-variables-in-figma">How to Create Boolean Variable in Figma</a></li>
</ul>
</li>
<li><a class="post-section-overview" href="#heading-how-to-use-variables-for-advanced-prototyping">How to Use Variables for Advanced Prototyping</a><ul>
<li><a class="post-section-overview" href="#heading-advanced-prototyping-with-number-variables">Advanced Prototyping with Number Variables</a></li>
<li><a class="post-section-overview" href="#heading-advanced-prototyping-with-boolean-variables">Advanced Prototyping with Boolean Variables</a></li>
</ul>
</li>
<li><a class="post-section-overview" href="#heading-how-to-use-variables-for-developers-using-apis">How to Use Variables for Developers- Using APIs</a> </li>
<li><a class="post-section-overview" href="#heading-conclusion">Conclusion</a></li>
</ul>
<h1 id="heading-what-are-variables">What Are Variables?</h1>
<p>The word "variable" has a lot of definitions. The Oxford Dictionary defines the word variable as "not consistent or having a fixed pattern; liable to change." Another definition says "an element, feature, or factor that is liable to vary or change." </p>
<p>The definitions above simply tell us that variables are elements which are dynamic and prone to change. With these definitions, we can now define what a variable is in Figma. </p>
<p>In Figma, a variable stores reusable values like colour and text values that you can apply to different kinds of design properties and prototypes.</p>
<h2 id="heading-differences-between-variables-and-styles-in-figma">Differences between Variables and Styles in Figma</h2>
<p>Given the definition of variables above, you might have begun to see some similarities between variables and style guides. Although both features exist to make your work better, there are a few key differences to keep in mind:</p>
<ul>
<li>Variables are a more advanced feature, and they allow you to define and reuse values like colours, text, and spacing across your designs. On the other hand, styles are predefined sets of design properties such as text styles, colour styles, and effect styles.</li>
<li>Variables allow designs to change when used in various contexts, because of their dynamic nature, unlike styles. For example, you can change your designs from light mode to dark mode or have padding values change when designing for different devices. This makes variables useful for creating design systems with adaptable components.</li>
<li>Variables offer a more flexible design process in creating flexible design components, especially where you want to change values like button text or color on different instances of the same component. Styles are typically used for maintaining consistent design elements like button styles, text headings, or colour palettes.</li>
<li>Variables can store raw, single values, while styles store sets of values.</li>
</ul>
<h2 id="heading-why-are-variables-important-to-the-design-process">Why are Variables Important to the Design Process?</h2>
<p>Using variables is quite important for a number of reasons.</p>
<p>First, variables help maintain <strong>consistency</strong> across a design system. By defining variables for colors, typography, spacing, and other design elements, you ensure that these elements have a uniform appearance throughout your project. This consistency is crucial for branding and user experience.</p>
<p>Variables also make designs <strong>adaptable</strong>. Designers can quickly experiment with different values such as colour schemes or font sizes by adjusting the variables. This adaptability is valuable when creating designs for different platforms or devices.</p>
<p>Variables are also quite <strong>efficient</strong>. When a variable is updated, all instances of that variable in the design updates automatically. This saves time and effort, and eliminates the need to manually update every instance of a specific element.</p>
<p>Variables are particularly useful in large projects or design systems because of their <strong>scalability</strong> and <strong>ease of maintenance</strong>. They allow designers to scale their designs without losing control. </p>
<p>Since projects grow and design systems evolve over time, variables can be adjusted globally to accommodate new requirements. Variables also provide a central place to update these changes, ensuring that all design elements are consistently modified.</p>
<p>And finally, variables can be beneficial to developers during the <strong>hand-off process</strong>. Designers can provide developers with precise values for design elements, reducing the chances of misinterpretation and streamlining the implementation process. </p>
<h1 id="heading-how-to-create-variables-in-figma">How to Create Variables in Figma</h1>
<p>Variables are quite easy to create in Figma. Below, I'll walk you through the steps for creating different kinds of variables in Figma.</p>
<p>At the moment, we have four types of variables in Figma:</p>
<ul>
<li>Color: used for colour fills.</li>
<li>Number: used for dimensions, corner radius, and auto layout properties.</li>
<li>String: used for text layers and variant properties.</li>
<li>Boolean: used to toggle layer visibility.</li>
</ul>
<p>We'll create and implement each of these variables in Figma, and also use them for advanced prototyping.</p>
<h2 id="heading-how-to-create-colour-variables-in-figma">How to Create Colour Variables in Figma</h2>
<p>The first type of variable we'll be creating is a colour variable. As a designer or developer, you have likely used colours in your projects. So, the concept of colour shouldn't be unfamiliar to you from a design standpoint.</p>
<h3 id="heading-step-1-open-a-new-figma-file">Step 1: Open a new Figma file</h3>
<p>Let's assume that you want to create colour variables for a new design project you're going to start working on, like a magazine website for example. The first thing you need to do is open a new Figma file.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/Variable-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Blank Figma file</em></p>
<h3 id="heading-step-2-choose-a-colour-palette">Step 2: Choose a colour palette</h3>
<p>The next step is to choose a colour palette for the project. Every design project has a set of colours used repeatedly to establish consistency – for example, for headers and backgrounds, to call attention to a primary button, and so on. </p>
<p>You'll want to choose colours which complement each other for your design. If you need some help here, you can read my article on the <a target="_blank" href="https://www.freecodecamp.org/news/the-60-30-10-rule-in-design/">60-30-10 rule in design</a>. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/Variable-3.png" alt="Image" width="600" height="400" loading="lazy">
<em>Creating a colour palette</em></p>
<h3 id="heading-step-3-create-variables-for-each-colour">Step 3: Create variables for each colour</h3>
<p>Next, we'll create variables for each colour code in the palette. Go to the panel on the right-hand side and click on <em>local variables</em>.</p>
<p>Local variables means all the variables located in the design file.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-4.png" alt="Image" width="600" height="400" loading="lazy">
<em>Click on local variables</em></p>
<p>Click on <em>create variable</em> to create the first variable in the file. </p>
<p>A dropdown will appear containing the four types of variables I explained earlier. Since we're trying to create colour variables in this section, we'll choose <em>color</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-5.png" alt="Image" width="600" height="400" loading="lazy">
<em>Create a colour variable</em></p>
<p>A created variable section will come up, with two columns: the title of the variable (<em>Color</em>), and the value of the variable (the colour code-FFFFFF).</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/Variable-6.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choose colour variables</em></p>
<p>Give your new variable a name – you can use the role of the colour, primary background for instance. In the next column, type the colour code or use a colour picker. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-7.png" alt="Image" width="600" height="400" loading="lazy">
<em>Rename variable &amp; type in colour code</em></p>
<p>And there you go – you just created your first colour variable!</p>
<p>To see more editing options, hover over the variable's row. An <em>edit variable</em> icon will pop up.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-141.png" alt="Image" width="600" height="400" loading="lazy">
<em>Edit variable</em></p>
<p>Click on it to edit the colour variable to your taste.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-8.png" alt="Image" width="600" height="400" loading="lazy">
<em>Edit the colour variable/add a description</em></p>
<p>In the editing section, you can add a description on how to use the variable, hide from publishing, and so on.</p>
<p>Having done that, follow the steps above to create variables for the remaining colours in the colour palette.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-10.png" alt="Image" width="600" height="400" loading="lazy">
<em>Create variables for other colours</em></p>
<p>You can also organise your variables into groups. To do this, select the colour variables you want to group (hold down SHIFT key), and right-click.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-11.png" alt="Image" width="600" height="400" loading="lazy">
<em>Group the colour variables</em></p>
<p>This will bring out some options:</p>
<ul>
<li>New group with selection</li>
<li>Edit variables</li>
<li>Duplicate variables</li>
<li>Delete variables</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-12.png" alt="Image" width="600" height="400" loading="lazy">
<em>New group with selection</em></p>
<p>Choose <em>New group with selection</em>, double-click on the group name, and rename it to <em>color/blue</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-14-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Rename group</em></p>
<p>You can group your colour variables anyway you'd like to – for example, background colours, header colours, different shades of a particular colour, and so on.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-15.png" alt="Image" width="600" height="400" loading="lazy">
<em>Colour blue variables grouped.</em></p>
<p>Violà! You just created a colour variable group in Figma. Click on the collection drop-down and choose <em>rename collection</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-16.png" alt="Image" width="600" height="400" loading="lazy">
<em>Rename collection</em></p>
<p>You can rename this collection <em>primitives</em>. </p>
<p><em>Primitives</em> means basic. Also, you can decide to rename your collections or not. The choice rests on you.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-39.png" alt="Image" width="600" height="400" loading="lazy">
<em>Renamed primitives collection</em></p>
<h3 id="heading-how-to-create-colour-variables-for-tokens">How to Create Colour Variables for Tokens</h3>
<p>Now, we'll create colour variables for the text, surfaces (such as backgrounds), and borders we need for the project. We want to assign different functions to the colour palette (variables) we created earlier.</p>
<p>Click on local variables and create a new collection. You can name this <em>tokens</em>. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-21.png" alt="Image" width="600" height="400" loading="lazy">
<em>New collection</em></p>
<p>Create a new colour variable and rename it "primary text". </p>
<p>In order to save yourself time, and group your variables as you're naming them, rename the variable as <em>text/primary</em>. This will automatically form a group.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-24.png" alt="Image" width="600" height="400" loading="lazy">
<em>Creating and grouping text variables</em></p>
<p>Click on the fill box and go to <em>Libraries</em> to see all colour variables created.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-26.png" alt="Image" width="600" height="400" loading="lazy">
<em>Assigning colour from libraries</em></p>
<p>We'll choose <em>Main Black</em> which is under <em>color/greys</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-27.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choosing colour black</em></p>
<p>We can go ahead and assign other colour variables for different text functions, as much as we want to. Remember to add <em>text/</em> before the actual name of the variable, so it'll form a group automatically.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-28.png" alt="Image" width="600" height="400" loading="lazy">
<em>Assigning colour variables for text</em></p>
<p>Next, we'll create colour variables for surfaces such as backgrounds, and for borders as well.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-29.png" alt="Image" width="600" height="400" loading="lazy">
<em>Colour variables for surfaces and borders</em></p>
<p>Some of the colour variables might bear the same colour code, but they have different functions, so that's totally fine. For example, the colour code for button text is the same as the colour code for main background. </p>
<h3 id="heading-how-to-implement-colour-variables-in-your-designs">How to Implement Colour Variables in Your Designs</h3>
<p>Next, we're going to implement these colour variables in our design. </p>
<p>In the image below, there are four mobile wireframes with no colour and images (I created these previously). </p>
<p>You can read about how to create wireframes in this article: <a target="_blank" href="https://www.freecodecamp.org/news/what-is-wireframing/">What is Wireframing? How to move from Paper Sketches to High Fidelity Wireframes</a>.</p>
<p>We'll use the colour variables we've created to add colour to the buttons and text, making sure all elements are consistent.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-30.png" alt="Image" width="600" height="400" loading="lazy">
<em>Low-fidelity wireframes</em></p>
<p>Starting with the first screen, let's add colour to the button. Click on the button, and go to to <em>Fill</em> on the right-hand side of your screen. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-32-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Click on button</em></p>
<p>In the <em>Fill</em> section, click on <em>style</em> (the four dot icon by the side). Selecting <em>style</em> will bring up a list of colours in your libraries. Select the colour you've assigned for the primary button in order to implement it.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-33-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Select a fill colour from the colour variables in libraries</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-34-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Implemented button colour</em></p>
<p>Next, give the button text a white colour following the same steps.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-35-3.png" alt="Image" width="600" height="400" loading="lazy">
<em>Implementing colour variable for button text</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-36-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Implemented button text colour</em></p>
<p>You can go ahead and do the same for the other screens, following the steps above. Don't forget to update the text and colours as well. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-37-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Updating colour variables for other screens</em></p>
<p>You can also add some images or illustrations to complete the look.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/09/variable-38-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding illustrations to updated design</em></p>
<p>Note: You can get your illustrations from plugins in Figma like Storyset by Freepik, Artify Illustrations, and so on, as well as from illustration libraries like <a target="_blank" href="https://www.freepik.com/">Freepik</a>, <a target="_blank" href="https://www.lapa.ninja/blog/free-illustrations-library-for-your-project/">Lapa Ninja</a>, and others.</p>
<h3 id="heading-how-to-create-different-modes-with-variables">How to Create Different Modes with Variables</h3>
<p>Next, we'll create different modes for our design. For instance, if you're working on a project that requires light and dark modes, instead of changing all the design elements manually to accommodate the modes, you can simply use variables to implement that.</p>
<p>To start with, click on <em>Local variables</em> to create a new variable. A list of all variables in the file and their groups will come up:</p>
<p>color/blue:</p>
<ul>
<li>Primary Button</li>
<li>Main Blue</li>
</ul>
<p>color/greys:</p>
<ul>
<li>Main Black</li>
<li>Main Background</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-142.png" alt="Image" width="600" height="400" loading="lazy">
<em>Opening "Local variables"</em></p>
<p>Next, I'll create a new collection so I can just focus on the modes I am about to create. To create a new collection, simply click on the menu icon on the variables header.</p>
<p>Note that creating a new collection isn't mandatory. It's just to help take your focus away from other variables you have already created.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-143.png" alt="Image" width="600" height="400" loading="lazy">
<em>Creating a new collection</em></p>
<p>Next, I'll rename the collection to <em>Modes.</em> To rename a collection, simply double-click on the title, and input your preferred title.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-144.png" alt="Image" width="600" height="400" loading="lazy">
<em>Renaming a collection</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-145.png" alt="Image" width="600" height="400" loading="lazy">
<em>Renamed collection "Modes"</em></p>
<p>Next, click on <em>Create variable</em> to create a new variable. I'll choose <em>Color</em> because that's the variable we're working with.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-146.png" alt="Image" width="600" height="400" loading="lazy">
<em>Creating a variable called Color</em></p>
<p>The created colour variable will come up with a default colour code: FFFFFF.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-147.png" alt="Image" width="600" height="400" loading="lazy">
<em>Created color variable with default colour code: FFFFFF</em></p>
<p>Next, I'll rename the variable <em>Background</em> because I'm trying to set the background colours for each mode (light and dark).</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-148.png" alt="Image" width="600" height="400" loading="lazy">
<em>Renamed color variable: Background</em></p>
<p>Now, we've been working with only the name and value of the variables we've created, but we can add another column when we want to create modes. To do this, simply click on the plus icon on the header to add a new variable mode.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-149.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicking on the plus icon</em></p>
<p>The new mode will come with three columns: </p>
<ul>
<li>Column 1 (the title of the variable – Background)</li>
<li>Mode 1 (the first value of the variable – colour code FFFFFF)</li>
<li>Mode 2 (the first value of the variable – colour code FFFFFF)</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-150.png" alt="Image" width="600" height="400" loading="lazy">
<em>Created new mode</em></p>
<p>Next, I'll rename the modes to light and dark. To do this, simply double-click on the title and edit the name.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-151.png" alt="Image" width="600" height="400" loading="lazy">
<em>Renamed modes: Light &amp; Dark</em></p>
<p>Now, we'll assign a value to the background for dark mode. To do this, simply input the colour code/value you prefer for the background. I'll use #0C3272 as my background colour for dark mode.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-152.png" alt="Image" width="600" height="400" loading="lazy">
<em>Changed value for dark mode background</em></p>
<p>Next, we'll create other colour variables for other elements like, text, button colour, button text colour, and so on for the two modes. I''ll list out the specifications to make it easier:</p>
<p><strong>Light/Dark:</strong></p>
<ul>
<li>Body text: 1A1A1A/FFFFFF</li>
<li>Button: 0C3272/FFFFFF</li>
<li>Button text: FFFFFF/0C3272</li>
<li>iPhone header: 1A1A1A/FFFFFF</li>
</ul>
<p>Next, we'll go ahead to create the variables. Just follow the steps we followed earlier to create the variables and assign values for each of the modes.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-154.png" alt="Image" width="600" height="400" loading="lazy">
<em>Created variables for other elements</em></p>
<p>Next, we make sure the design is connected to the variables we created. To do this, simply hold the element and use <em>Fill</em> to tie it to the colour variable. </p>
<p>For the Button text for instance, select the text, and click on the style icon in <em>Fill</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-155.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicking on style icon in the "FFill" section</em></p>
<p>Next, scroll down the list that comes up, to the specific variable you want to tie the variable to (in this case Body text).</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-156.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting Body text variable.</em></p>
<p>Do the same for the other elements in the design, including the background.</p>
<p>Note that I'll be leaving the illustrations the way they are.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-157.png" alt="Image" width="600" height="400" loading="lazy">
<em>Screens connected to the variable modes.</em></p>
<p>To check if the modes actually work, click on the <em>change variable mode</em> icon on the <em>Layer</em> section on the right-hand panel of your screen. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-158.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicking on the "change variable mode" icon</em></p>
<p>A list of all modes (Light &amp; Dark) will come up and you can switch the screen to whatever mode you choose.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-159.png" alt="Image" width="600" height="400" loading="lazy">
<em>Switching modes</em></p>
<p>A section named <em>Modes</em> will appear on the <em>Layer</em> section, indicating that one of the screens is in dark mode.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-160.png" alt="Image" width="600" height="400" loading="lazy">
<em>One dark mode &amp; one light mode screen.</em></p>
<h2 id="heading-how-to-create-number-variables-in-figma">How to Create Number Variables in Figma</h2>
<p>Next, I'll show you how to create number variables in Figma. </p>
<p>Number variables are defined by number values, and they can be applied to corner radius, width or height padding, and so on. Here are the steps to follow to create your own:</p>
<h3 id="heading-step-1-choose-a-variable">Step 1: Choose a variable</h3>
<p>Just like we did when creating color variables, click on the local variables panel to select the kind of variable you're trying to create. Here, you'll select <em>number.</em> </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/variable-40.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choosing variable to create</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Variable-41.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting "number"</em></p>
<p>When you select <em>number</em>, it appears on the list of variables with a value, in this case 0. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-43.png" alt="Image" width="600" height="400" loading="lazy">
<em>Number variable showing Number with a default value of 0</em></p>
<p>Now, you can rename the number variable to whatever you decide. To rename the variable, double click on <em>number</em>, and change it to whatever name you want.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-44.png" alt="Image" width="600" height="400" loading="lazy">
<em>Renaming number variable</em></p>
<p>I'll rename mine to <em>OrderCount,</em> because I'm trying to implement a function that allows a user to increase the number of portions of food they're trying to order.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-45.png" alt="Image" width="600" height="400" loading="lazy">
<em>Renamed number variable</em></p>
<p>Next, we'll set the default number value to <em>1</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-46.png" alt="Image" width="600" height="400" loading="lazy">
<em>Setting default number value</em></p>
<p>Now we'll tie the number on the design to the number variable (<em>OrderCount).</em> To do this, click on the number in the design.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-47.png" alt="Image" width="600" height="400" loading="lazy">
<em>Implementing the number variable</em></p>
<p>Then go to <em>Text</em> on the left hand side of your screen. Click on the <em>Apply variable</em> icon to apply the variable.</p>
<p>Note: The <em>apply variable</em> icon will only appear on the <em>Text</em> section when a variable has been created.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-49.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicking on the "appy variable" icon</em></p>
<p>Clicking on the icon will bring up a list of all number variables available in the file. Next, you'll select the variable you're trying to implement. I'll choose <em>OrderCount</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-50.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting a number variable</em></p>
<p>When the variable has been implemented (tied to the number), it'll appear on the text section, indicating that a number variable has been implemented.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-51.png" alt="Image" width="600" height="400" loading="lazy">
<em>Implemented number variable</em></p>
<p>Now, we'll also need two more number variables for the other number values in the design (cost of food and total cost). This is so that these values will also change when a user increases the number of portions they're ordering. </p>
<p>We won't include delivery fee, because it remains the same way irrespective of the number of portions a user orders.</p>
<p>Next, we'll follow the same process as we did above to create number variables for these.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-52.png" alt="Image" width="600" height="400" loading="lazy">
<em>Creating other number variables</em></p>
<p>Next, we'll tie the numbers in the design to their respective number variables, just as we also did earlier. </p>
<p>Note: In the main design, I gave the actual number (25) a different frame from the dollar sign (which is in text). This is because when creating the number variable, the dollar sign will not be attached, because it's a word, not a number. </p>
<p>Consequently, when I tie the number variable to the design, I'll be applying it to the frame containing the number alone.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-53.png" alt="Image" width="600" height="400" loading="lazy">
<em>Give the number a different frame from the dollar sign</em></p>
<p>So, when I tied the first number to the number variable I created (Cost-Portion), something interesting happened. The number in the design took on the value of the variable. Instead of 25.00 which was in the screen earlier, it changed to just 25 because that's what the number variable was set to. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-55.png" alt="Image" width="600" height="400" loading="lazy">
<em>Number variable changing the number in the design</em></p>
<p>Now, to avoid any unpleasantness, I'll change the values of the other numbers, and realign them.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-56.png" alt="Image" width="600" height="400" loading="lazy">
<em>Changed and realigned number values in the design</em></p>
<p>We've just created number variables for our design. In the section for advanced prototyping, we'll check to see if these number variables actually work.</p>
<h2 id="heading-how-to-create-string-variables-in-figma">How to Create String Variables in Figma</h2>
<p>Next, you'll learn how to create string variables in Figma.  </p>
<p>As I wrote earlier, string variables are used for text layers and variant properties. With string variables, you can change the headings in your design, flip text on different screens, change language modes, and so on.</p>
<p>For this article, we'll use string variables to change the headings on the screens for each mode we created earlier (light and dark). </p>
<p>As usual, our first step is to click on <em>Local variables</em> and select the type of variable we want to create.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-161.png" alt="Image" width="600" height="400" loading="lazy">
<em>Going to local variables to create a new variable</em></p>
<p>I'll choose <em>String</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-163.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choosing "String" out of a list of all variables</em></p>
<p>When I do that, the string variable I just created will appear on the list of variables.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-164.png" alt="Image" width="600" height="400" loading="lazy">
<em>Created String variable</em></p>
<p>If you noticed, the string variable has two columns for "string value", because I created the variable in the <em>Modes</em> collection. Following that, let's see if we can change the headings for each mode. </p>
<p>Note: The string value is the actual text you're trying to change. </p>
<p>So, for the first screen whose heading is "Transactions Made Easy", I want it to change to "Easy Transactions, Less Stress" for dark mode. For the second screen whose heading is "Pay Bills with Ease", I want it to change to  "Paid Bills, Easier Life" for dark mode.</p>
<p>Since we're changing the headings for two different screens, we'll create another string variable.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-165-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Creating another string variable</em></p>
<p>Next, we'll input the different values for the different modes. To do this, just input the different texts for the two screens in both modes.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-166-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Inputing string value</em></p>
<p>Next, we'll tie the headings to the string variables we just created. To do this, click on the particular heading, and go to the <em>Apply variable</em> icon on the <em>Text</em> section.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-167-3.png" alt="Image" width="600" height="400" loading="lazy">
<em>Applying string variable</em></p>
<p>Next, scroll down and choose the string you're applying it to.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-168-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choosing string variable</em></p>
<p>Once you're done, a string icon will come up, indicating that a string variable was applied to the text.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-169-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Applied string variable</em></p>
<p>Do the same for the second string:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-170-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Applying string variable to the second screen</em></p>
<p>Next, let's test to see if the string variable works. Select the screens which have the applied variable, go to <em>Layers,</em> and change the mode from light to dark.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-171-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting screens which have the applied variables</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-172-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting dark mode</em></p>
<p>Mine works:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-173-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Screens changed to dark mode</em></p>
<h2 id="heading-how-to-create-boolean-variables-in-figma">How to Create Boolean Variables in Figma</h2>
<p>Next up, we'll learn how to create Boolean variables. </p>
<p>Generally, boolean variables are variables that can only have two possible values – true or false. In Figma, boolean variables have the same function: they are used for variant properties or components with two values: true or false. </p>
<p>Remember the toggle in the design above? </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-110.png" alt="Image" width="600" height="400" loading="lazy">
<em>Toggle in the design used for implementing number variables</em></p>
<p>I'll change that to a checkbox and use boolean variables to make it work. </p>
<p>To do this, I'll copy out the component and paste it on another frame. I'll then add the checkbox (and replace it in the main design screen later).</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-111.png" alt="Image" width="600" height="400" loading="lazy">
<em>Checkbox on a blank frame.</em></p>
<p>Next, we'll make the selection a variant. To do this, double-click on the <em>Create component</em> icon on your Figma file header.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-113.png" alt="Image" width="600" height="400" loading="lazy">
<em>Double-clicking on "create component" icon</em></p>
<p>A variant will automatically appear:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-114.png" alt="Image" width="600" height="400" loading="lazy">
<em>Variant of the component</em></p>
<p>Next, I'll create different states for the checkboxes: default, hover, and filled.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-116.png" alt="Image" width="600" height="400" loading="lazy">
<em>Different states for the chechboxes: Default, hover and filled.</em></p>
<p>Now, we'll create the boolean variable. </p>
<p>To do this, go to <em>Local variables</em> as usual and select <em>Boolean</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-118.png" alt="Image" width="600" height="400" loading="lazy">
<em>Opening local variables</em></p>
<p>Click on <em>Create variable</em>. </p>
<p>Next, we'll choose <em>Boolean</em> from the list.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-117.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choosing "boolean" from the list</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-119.png" alt="Image" width="600" height="400" loading="lazy">
<em>Created boolean variable</em></p>
<p>Next, we'll rename the boolean variable <em>SaveFood</em> since we're trying to create a function for saving a food choice for subsequent orders.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-120.png" alt="Image" width="600" height="400" loading="lazy">
<em>Renamied boolean variable</em></p>
<p>Next, we'll make the variable <em>True</em> by default. To do this, just click on the toggle icon by the side of the variable.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-121.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You've created a boolean variable!</p>
<p>We'll create an interaction for this boolean variable in the advanced prototyping section and check if it works. </p>
<h2 id="heading-how-to-use-variables-for-advanced-prototyping">How to Use Variables for Advanced Prototyping</h2>
<p>In this section, we'll learn how to use variables for advanced prototyping in Figma, using the colour, number, string, and boolean variables we implemented earlier in the design.</p>
<p>N.B: You can only use advanced prototyping features on Figma if your file is on a paid team file. If you don't have a paid team version, you can apply for the <em><a target="_blank" href="https://www.figma.com/education/">Figma for Education</a></em> plan. It's a way Figma helps learners and educators by giving them access to resources, and all benefits of a paid version, for free.</p>
<p>You can use advanced prototyping when you have a lot of screens to work on, and to simply make prototyping easier.</p>
<h3 id="heading-advanced-prototyping-with-number-variables">Advanced Prototyping with Number Variables</h3>
<p>Starting with the number variables we created above, let's try to check if it actually works. But before we do that, we'll have to actually prototype the design. </p>
<p>Note that you can prototype number variables for designs where your user can increase or decrease the number of an item on the screen. Prototyping helps to show the functionality and how that particular feature would work. </p>
<p>To start with, I'll make the frame where the order count is a component. To do this, select the frame, and click on the component icon on your Figma file header.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-57.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting the order count frame</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-58.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicking on the component icon</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-59.png" alt="Image" width="600" height="400" loading="lazy">
<em>The order count component</em></p>
<p>Click on the component icon again to make it a variant.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-60.png" alt="Image" width="600" height="400" loading="lazy">
<em>Making the order count component a variant</em></p>
<p>I'll make a frame outside the screen and drag the variant there, so I'll be able to work on the interactions well.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-61.png" alt="Image" width="600" height="400" loading="lazy">
<em>Making a frame outside the screen</em></p>
<p>Remember that we want to implement a function where the number of portions increases when the user clicks on the plus icon. </p>
<p>We'll start prototyping from here. </p>
<p>Now, click on the plus icon in the default variant and move to the prototype tab.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-62.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicking on the plus icon in the default variant</em></p>
<p>Next, click on the plus icon in the interactions area to add an interaction.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-63.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding an interaction</em></p>
<p>A tab will come up showing interactions. In this case, it's set to default <em>On click</em>, and no interaction has been added yet (None).</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-64.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding an interaction</em></p>
<p>Now, click on the dropdown icon that says <em>None.</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-65.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicking on the dropdown icon</em></p>
<p>It'll bring up a list:</p>
<ul>
<li>Navigate to</li>
<li>Change to</li>
<li>Back</li>
<li>Set variable</li>
<li>Conditional</li>
<li>Scroll to</li>
<li>Open link</li>
<li>Open overlay</li>
<li>Swap overlay</li>
<li>Close overlay</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-66.png" alt="Image" width="600" height="400" loading="lazy">
<em>List following the dropdown</em></p>
<p>Choose <em>Set variable</em>. </p>
<p>A list of all variables in the file will come up, and you can then select the particular variable you want to implement. I'll click on <em>OrderCount</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-67.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choosing "set variable"</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-68.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicking on Order Count (the first time)</em></p>
<p>Next, I'll click on <em>OrderCount</em> again to write a mathematical expression, and all the available mathematical expressions will appear:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-69.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicking on Order Count (the second time) and showing all mathematical expressions</em></p>
<p>I'll select <em>Addition</em>, because that's what we're trying to do.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-70.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choosing the "addition" expression</em></p>
<p>You'll notice that an addition icon popped up to signify that the addition expression was given. </p>
<p>Next, I'll input <em>1</em> by the side of the addition icon to show that it's plus 1.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-71.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding number 1 to the expression</em></p>
<p>Done! </p>
<p>Now, we'll follow the same steps to do the same for the minus icon, making the expression subtraction instead of addition.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-72.png" alt="Image" width="600" height="400" loading="lazy">
<em>Added interactions for the minus icon</em></p>
<p>Done!</p>
<p>Note: We don't really need the variant we created earlier. You might only use the variant in cases where you want to create a hover state. I just wanted to show you how easy it would be to create a variant while doing this. </p>
<p>Next, we'll just copy the prototyped component and put it back in the main design.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-73.png" alt="Image" width="600" height="400" loading="lazy">
<em>Frame containing the prototyped variable</em></p>
<p>To put the prototyped component in the main design, click on <em>Assets</em> at the top of the left hand panel.</p>
<p>This section will show all the assets in the page you're currently on.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-74.png" alt="Image" width="600" height="400" loading="lazy">
<em>Showing all assets on the page</em></p>
<p>Next, I'll drag the frame to the design. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-75.png" alt="Image" width="600" height="400" loading="lazy">
<em>Dragged asset to main design</em></p>
<p>Note: If you don't want to follow the process above to place the prototyped component in the design, simply copy the component (CTRL + C), and <em>paste to replace</em> the frame on the main design.</p>
<p>Now, let's check our prototype out. To do this, you don't need to open the prototype on another tab. You can simply click on the asset and press SHIFT + space bar.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-76.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicked asset</em></p>
<p>Another frame will appear on your screen. It's interactive and you can test your prototype on it.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-77.png" alt="Image" width="600" height="400" loading="lazy">
<em>Interactive frame on your Figma screen.</em></p>
<p>Try clicking on the minus and plus icons on the frame to see if it carries out its function. </p>
<p>After checking the prototype, I'd like to implement some logic. </p>
<p>We don't want a scenario where the clicking on the minus icon continues till after 0 and now gives us a negative sign like -1 as you can see in the image below.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-78.png" alt="Image" width="600" height="400" loading="lazy">
<em>Minus icon giving us negative values</em></p>
<p>That wouldn't make sense, so we'll add a <em>conditional</em>. </p>
<p>A conditional is simply a condition that sets rules about how the interaction should work.</p>
<p>To do this, I'll move to the frame containing the component I made earlier. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-79.png" alt="Image" width="600" height="400" loading="lazy">
<em>Frame containing prototyped component</em></p>
<p>I'll be adding the conditional to the minus icon since that's the area that would give us negative values. So, I want the values to stop at 1 since that's the least a user can order (they can't order half or 0, for example). </p>
<p>So, we'll just zoom into the component to add our conditional. Make sure you're on the prototype tab as well.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/variable-80.png" alt="Image" width="600" height="400" loading="lazy">
<em>Moving to prototype tab and zooming in on the prototyped component</em></p>
<p>I'll click on the variable icon by the minus frame.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-81.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting the variable icon close to the minus icon frame</em></p>
<p>This will bring up the already set interactions:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-82.png" alt="Image" width="600" height="400" loading="lazy">
<em>Already made interactions on the minus frame</em></p>
<p>Next, I'll click on the plus icon by the 'x' on the interactions header.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-83.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicking on the plus icon in the interaction header</em></p>
<p>I'll choose <em>conditional</em> from the list of options which will appear:</p>
<ul>
<li>Navigate to</li>
<li>Change to</li>
<li>Back</li>
<li>Set variable</li>
<li>Conditional</li>
<li>Scroll to</li>
<li>Open link</li>
<li>Open overlay</li>
<li>Swap overlay</li>
<li>Close overlay</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-84.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choosing conditional from the list of options</em></p>
<p>We'll then write the condition. To do this, click on <em>Write condition</em> by the <em>if else</em> statement<em>.</em> </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-86.png" alt="Image" width="600" height="400" loading="lazy">
<em>Writing a condition for the interaction</em></p>
<p>When we click on <em>Write condition</em>, a list of all number variables will come up. I'll choose <em>OrderCount</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-87.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting ordercount</em></p>
<p>This will bring up a list of all available conditions:</p>
<ul>
<li>Equal to</li>
<li>Not equal to</li>
<li>Greater than</li>
<li>Greater than or equal to</li>
<li>Less than</li>
<li>Less than or equal to</li>
</ul>
<p>I'll choose <em>Not equal to</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-88.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choosing "Not equal to" condition</em></p>
<p>Next, the icon for the condition I chose will appear on the input field for writing the condition.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-89.png" alt="Image" width="600" height="400" loading="lazy">
<em>Condition appearing on the input field</em></p>
<p>Next, I'll input 0, which means the interaction is not equal to 0.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-90.png" alt="Image" width="600" height="400" loading="lazy">
<em>Inputing 0 (zero)</em></p>
<p>Next, I'll close the frame and try moving the <em>Set variable</em> section under the <em>conditional section</em> in the interaction. To close the Set variable section, click on the little dropdown icon.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-91.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicking on the dropdown icon to close set variable</em></p>
<p>When you click on the little dropdown icon, the <em>Set variable</em> section will be minimized, allowing you move the section under the <em>Conditional</em> section.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-92.png" alt="Image" width="600" height="400" loading="lazy">
<em>Closed set variable section</em></p>
<p>Next, I'll drag the <em>set variable</em> section under the <em>conditional</em> section. To do this, just hover on the <em>set variable</em> section and use your trackpad or mouse to drag it.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-93.png" alt="Image" width="600" height="400" loading="lazy">
<em>Dragging set variable under conditional</em></p>
<p>We just added a conditional to our interaction! The icon for the minus frame will change to a condition icon, showing that a conditional has been added.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-94.png" alt="Image" width="600" height="400" loading="lazy">
<em>Added a conditional to minus interaction</em></p>
<p>Now, you can test this new interaction to see how it works. </p>
<p>Mine certainly does! It doesn't go lower than 0 anymore.</p>
<h3 id="heading-how-to-implement-cost-per-portion-variable">How to implement cost per portion variable</h3>
<p>Now, we want the other number values (cost per portion and total cost) to increase in response to the number of portions a user orders.</p>
<p>We'll start with the Plus icon frame:</p>
<p>Going back to the component we've been working on...</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-95.png" alt="Image" width="600" height="400" loading="lazy">
<em>Frame with prototyped component</em></p>
<p>I'll click on the plus frame and go ahead to <em>set variable</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-96.png" alt="Image" width="600" height="400" loading="lazy">
<em>Opening the interactions for plus frame</em></p>
<p>I'll click on the plus icon on the interactions header.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-97.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicking on the plus icon on the interactions header</em></p>
<p>Next, I'll select <em>set variable</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-98.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting set variable</em></p>
<p>A list of all variables that have been created in the file will come up:</p>
<ul>
<li>The color variables for text, buttons, headings, and so on.</li>
<li>Number variables – <em>OrderCount</em>, <em>Cost-Portion</em>, and so on.</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-99.png" alt="Image" width="600" height="400" loading="lazy">
<em>A list of all variables in the file</em></p>
<p>I'll scroll down to choose <em>cost-portion,</em> which is the cost per food portion a user orders.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-100.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choosing "Cost-portion" (the first time)</em></p>
<p>An input field to write an expression for the variable will come up.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-101.png" alt="Image" width="600" height="400" loading="lazy">
<em>Write expression input filed</em></p>
<p>To write an expression, click on Cost-Portion again and select <em>Addition</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-102.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choosing cost-portion (the second time) and selecting addition</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-104.png" alt="Image" width="600" height="400" loading="lazy">
<em>Addition icon coming up on input field</em></p>
<p>Next, I'll input 25, meaning that +25 should be added for every portion of food a user orders.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-103.png" alt="Image" width="600" height="400" loading="lazy">
<em>Inputing 25</em></p>
<p>Having added the interaction for the plus frame, we'll follow the same process for the minus frame. When you're done, the <em>Set variable</em> section should be under the <em>Conditional</em> section.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-105.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding interaction for the minus frame</em></p>
<p>Remember there's a conditional for the minus frame, so I'll just drag the new interaction inside the conditional.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-106.png" alt="Image" width="600" height="400" loading="lazy">
<em>Dragging the new "set variable" interaction inside the conditiona;</em></p>
<p>Now, try testing the new interaction you just added. Mine certainly works!</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-107.png" alt="Image" width="600" height="400" loading="lazy">
<em>Testing the new interaction</em></p>
<p>Next, we still have one last variable to add (Total Cost). </p>
<p>Follow the steps above to recreate this interaction. Starting with the plus frame, implement the variable to make sure $25 adds when the order increases. It should show a placeholder – <em>Total Cost + 25</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-108.png" alt="Image" width="600" height="400" loading="lazy">
<em>Implementing Total Cost variable</em></p>
<p>Now, do the same for the minus frame and test the interaction. Don't forget to add the new interaction inside the conditional.</p>
<p>Mine works!</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-109.png" alt="Image" width="600" height="400" loading="lazy">
<em>Testing the interactions</em></p>
<p>You just learnt how to implement number variables with advanced prototyping in Figma. Congrats!</p>
<h3 id="heading-advanced-prototyping-with-boolean-variables">Advanced Prototyping with Boolean Variables</h3>
<p>Next, we'll create an interaction for the boolean variable we created earlier in the article. </p>
<p>Note that you can prototype your boolean variables in designs where you have features like checkboxes and toggles. The prototype would show how the checkbox is supposed to function.</p>
<p>To create the interaction, move to the prototype tab and focus on the frame containing the boolean components.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-122.png" alt="Image" width="600" height="400" loading="lazy">
<em>Frame containing boolean components</em></p>
<p>Now, our main interaction will start from the hover state because that's when a user tries to click on the checkbox. But we still need to add an action that will take the user from the default state to the hover state. </p>
<p>To do this, I'll just click on the first variant and drag it to the second variant.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-132.png" alt="Image" width="600" height="400" loading="lazy">
<em>Connecting first variant to the second variant</em></p>
<p>I'll change <em>On-click</em> to <em>While Hovering</em>. To do this, just click on the <em>On-click</em> dropdown and select from the list that pops up:</p>
<ul>
<li>On click</li>
<li>On drag</li>
<li>While hovering</li>
<li>While pressing</li>
<li>Key/Gamepad</li>
<li>Mouse enter</li>
<li>Mouse leave</li>
<li>Mouse down</li>
<li>Mouse up</li>
<li>After delay</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-133.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicking on the on-click dropdown</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-134.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting "while hovering" from the list</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-135.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selected "while hovering"</em></p>
<p>I also want to change <em>Instant</em> to <em>Smart Animate</em>, so I'll click on the dropdown icon by <em>Instant</em>, and select from the list that appears:</p>
<ul>
<li>Instant</li>
<li>Dissolve</li>
<li>Smart animate</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-136.png" alt="Image" width="600" height="400" loading="lazy">
<em>Changing "Instant" to "Smart Animate"</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-137.png" alt="Image" width="600" height="400" loading="lazy">
<em>How the interaction looks</em></p>
<p>So, we're done with the first interaction and we'll get started on connecting the second variant to the third variant (Hover - Filled).</p>
<p>Just as we did earlier, we'll just drag the second variant to the third variant.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-124.png" alt="Image" width="600" height="400" loading="lazy">
<em>Connecting the second to the third variant</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-125-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>How the interaction looks</em></p>
<p>Like I said earlier, the main interaction starts from the second variant so we'll not be following the same steps we took to add the first interaction.</p>
<p>To continue, I'll click on the plus icon on the interaction header to add an action, and select <em>Set variable</em> from the list that pops up:</p>
<ul>
<li>Navigate to</li>
<li>Change to</li>
<li>Back</li>
<li>Set variable</li>
<li>Conditional</li>
<li>Scroll to</li>
<li>Open link</li>
<li>Open overlay</li>
<li>Swap overlay</li>
<li>Close overlay</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-126.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicking on the plus icon on the interaction</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-127.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choosing "set variable" from the list</em></p>
<p>Next, I'll click on <em>Pick target variable</em> to select the boolean variable.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-128.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicking on "pick target variable"</em></p>
<p>I'll scroll down the list of variables to choose the variable I want: SaveFood.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-129.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting "SaveFood" variable</em></p>
<p>Now, to write the expression for this variable, we're going to say the value will be equal to true. So, I'll select <em>True</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-130.png" alt="Image" width="600" height="400" loading="lazy">
<em>Writing the expression and selecting "true"</em></p>
<p>Having selected <em>True</em>, the expression (<em>true</em>) will go under the <em>SaveFood</em> variable, indicating that an expression was applied.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-131.png" alt="Image" width="600" height="400" loading="lazy">
<em>How the interaction looks</em></p>
<p>Next, we'll just copy the original component and paste it in our design so it can sync when we're checking the prototype.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-138.png" alt="Image" width="600" height="400" loading="lazy">
<em>Pasting the default component in the main design</em></p>
<p>To check the prototype directly on your Figma page, click on Shift + space bar.</p>
<p>Mine works!</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-139.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>But I noticed something; I can't un-check the checkbox. No interaction was provided for that. Now, we'll quickly add that interaction so our component works perfectly. </p>
<p>To do this, we'll go back to our components, making sure we're in prototype mode, and drag the connection from filled all the way back to default.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/11/Variable-140.png" alt="Image" width="600" height="400" loading="lazy">
<em>Dragging the connection from filled state to default state</em></p>
<p>Now, it's works perfectly!</p>
<h2 id="heading-how-to-use-variables-for-developers-using-apis">How to Use Variables for Developers – Using APIs</h2>
<p>Variables are very helpful for teams consisting of developers and/or designers. </p>
<blockquote>
<p>Variables are now supported in Figma’s Plugin API—for building plugins and widgets—and in the REST API. Since variables is currently in open beta, features and functions may change as we respond to feedback. – Figma Docs</p>
</blockquote>
<p>There are three documentations which contain support for variables for developers on Figma: </p>
<ul>
<li>For the <a target="_blank" href="https://www.figma.com/developers/api#variables">REST API</a>: </li>
</ul>
<blockquote>
<p>This API includes endpoints for querying, creating, updating, and deleting variables. – Figma docs</p>
</blockquote>
<p>To be able to use this API, you must be a member of an enterprise.</p>
<ul>
<li>For the <a target="_blank" href="https://www.figma.com/plugin-docs/working-with-variables/">plugin API</a>: </li>
</ul>
<blockquote>
<p>This API provides support for creating and reading variables, and binding variables to components. – Figma docs</p>
</blockquote>
<ul>
<li>For the <a target="_blank" href="https://www.figma.com/widget-docs/working-with-variables/">widget API</a>: This API is connected to the plugin API. It is available to widgets by using the Plugin API the widget contains. </li>
</ul>
<p>Widgets are interactive elements that can be used to create interactive prototypes. Widgets extend the functionality of design files and FigJam boards and are often part of the larger design system, which is a collection of reusable components.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Variables exist in Figma to make your designs better. They are easy to use and create, and are helpful in every design project. In order to save yourself time, make sure to incorporate variables into your design process. </p>
<p>The key is to practice and explore, and you'll get better as you go. </p>
<p>Thank you for reading this article, I hope you enjoyed it! </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Use a Design System – a Case Study ]]>
                </title>
                <description>
                    <![CDATA[ You may have heard of, studied, or used a design system at some point in your coding career. But what role do design systems actually play in our projects? Why should we even bother to create or use them? In this guide, you'll be learning what design... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-use-a-design-system/</link>
                <guid isPermaLink="false">66d03a2edcbab93f8b58df8b</guid>
                
                    <category>
                        <![CDATA[ Design Systems ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Design ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Faith Olohijere ]]>
                </dc:creator>
                <pubDate>Tue, 17 Oct 2023 14:37:29 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/10/pexels-toa-heftiba-s-inca-1194420.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>You may have heard of, studied, or used a design system at some point in your coding career. But what role do design systems actually play in our projects? Why should we even bother to create or use them?</p>
<p>In this guide, you'll be learning what design systems are, why they're important, typical elements of a design system, and a practical example of how to implement a design system as a designer. Let's dive in!</p>
<h2 id="heading-what-is-a-design-system">What is a Design System?</h2>
<p>Design Systems are structured collections of reusable design components and elements. We use them to create a consistent and cohesive user experience across a range of products or services. </p>
<p>A design system is like a set of building blocks and rules for creating digital products like websites and apps. Design systems are made up of key elements like typography, color palette, icons, spacing and layout, and so on.</p>
<h3 id="heading-importance-and-purpose-of-a-design-system">Importance and purpose of a Design System</h3>
<p>Design systems are important for many reasons.</p>
<h4 id="heading-efficiency">Efficiency</h4>
<p>Design systems help you become more efficient. Because it's a collection of reusable components, it saves the time of producing new elements, and helps designers produce new features quickly in projects. It also serves as a productivity booster.</p>
<h4 id="heading-collaboration">Collaboration</h4>
<p>A team trying to build a product may consist of designers, developers, product managers, and others. The design system helps all members of the team make reference to the brand guidelines, no matter what they working on. It also helps to make sure everyone, including stakeholders, are involved in the design process, and facilitates collaboration.</p>
<h4 id="heading-consistency">Consistency</h4>
<p>Design systems ensure consistency in the user interface and user experience across various products and platforms. </p>
<p>We wouldn't want a scenario where a button design is inconsistent on different screens, would we? That's where the design system comes in. It helps our design assets and elements stay consistent, and it can always serve as a reference point.</p>
<h4 id="heading-scalability">Scalability</h4>
<p>Scalability here refers to the ability of the design system to grow and adapt to the changing needs of a project or an organization. </p>
<p>A crucial element of any design system is scalability. Design systems help in situations where the project might need to expand to accommodate different devices and platforms or when the team is expanding or when trying to accommodate new trends and practices.</p>
<h3 id="heading-how-design-systems-work">How Design Systems work</h3>
<p>To understand how a design system works, you just need to know the kinds of assets or components that make up the system and their roles. </p>
<p>A typical design system comprises of the following parts:</p>
<h4 id="heading-colours">Colours</h4>
<p>When you open a design system, one of the first things you'll see is a colour palette section. It's one of the most common elements in a design system. </p>
<p>Design systems define a set of of primary and secondary colours, as well as their various uses. This includes background colours, text colours, and so on.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-46.png" alt="Image" width="600" height="400" loading="lazy">
<em>Colour palette section of Rayna UI design system</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-47.png" alt="Image" width="600" height="400" loading="lazy">
<em>Colour palette section of Atlassian design system</em></p>
<h4 id="heading-typography">Typography</h4>
<p>Another typical element of a design system is typography. Every design system usually includes guidelines for typography, specifying fonts, font sizes, line height, and so on. </p>
<p>It may also define how typography is used for different content types like headings and body text, making sure they're accessible and legible for design use.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-48.png" alt="Image" width="600" height="400" loading="lazy">
<em>Typography section of Google's Material Design</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-49.png" alt="Image" width="600" height="400" loading="lazy">
<em>Typography section of Shopify's Polaris</em></p>
<h4 id="heading-icons">Icons</h4>
<p>Icons are very important when trying to give visual clues to your users. Design systems provide a set of standard icons and guidelines for their usage, ensuring they are recognizable and consistent.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-50.png" alt="Image" width="600" height="400" loading="lazy">
<em>Iconography section of Atlassian design system</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-57.png" alt="Image" width="600" height="400" loading="lazy">
<em>Iconography section of Google's Material Design</em></p>
<h4 id="heading-grid-and-spacing-styles">Grid and Spacing Styles</h4>
<p>A grid system helps establish a consistent structure for different components or pages. </p>
<p>Design systems provide spacing guidelines specifying margins, padding, and other layout-related rules to maintain alignment to create a visually pleasing and organized design. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-51.png" alt="Image" width="600" height="400" loading="lazy">
<em>Grids and spacing styles section of Rayna UI design system</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-53.png" alt="Image" width="600" height="400" loading="lazy">
<em>Spacing section of Atassian design system</em></p>
<h4 id="heading-documentation">Documentation</h4>
<p>Every well-structured design system has some form of documentation that usually explains how to use the elements and guidelines effectively. The documentation also helps designers and developers understand how to use and implement the design system.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-54.png" alt="Image" width="600" height="400" loading="lazy">
<em>Documentation for button styles in the Rayna UI design system</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-58.png" alt="Image" width="600" height="400" loading="lazy">
<em>Documentation for App icons on Apple's Human Interface Guidelines</em></p>
<h4 id="heading-ui-patterns-and-components">UI Patterns and Components</h4>
<p>UI patterns and components are the building blocks of a user interface. Design systems define UI patterns and components such as buttons, forms, modals, accordions, navigation bars, and so on, along with guidelines on how and when to use them.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-59.png" alt="Image" width="600" height="400" loading="lazy">
<em>UI Components section of Shopify's Polaris</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-60.png" alt="Image" width="600" height="400" loading="lazy">
<em>UI Patterns section of Aplles's Human Interface Guidelines</em></p>
<h4 id="heading-content-guidelines">Content Guidelines</h4>
<p>These cover how text and imagery is used in the user interface. They may specify tone, image use, and content hierarchy, ensuring that the content is consistent and aligns with the brand guidelines. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-61.png" alt="Image" width="600" height="400" loading="lazy">
<em>Content guidelines section of Shopify's Polaris</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-62.png" alt="Image" width="600" height="400" loading="lazy">
<em>Content guidelines section of Google's Material Design</em></p>
<h4 id="heading-accessibility-guidelines">Accessibility Guidelines</h4>
<p>Most design systems contain accessibility guidelines in order to increase the usability of products for people with all kinds of abilities. These guidelines ensure that the design is inclusive and complies with accessibility standards like WCAG (Web Content Accessibility Guidelines). This includes colour contrast, keyboard navigation and other accessibility features.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-55.png" alt="Image" width="600" height="400" loading="lazy">
<em>Accessibility guidelines of Google's Material Design</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-56.png" alt="Image" width="600" height="400" loading="lazy">
<em>Accessibility guidelines of the Atlassian design system</em></p>
<h4 id="heading-examples-and-use-cases">Examples and Use Cases</h4>
<p>Most design systems also contain examples and use cases of the design system in action to help designers and developers understand how to implement it effectively.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-52.png" alt="Image" width="600" height="400" loading="lazy">
<em>Fintech Dashboard use case from Rayna UI design system</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-63.png" alt="Image" width="600" height="400" loading="lazy">
<em>Applying type use case from Google's Material Design</em></p>
<h2 id="heading-differences-between-a-design-system-and-a-style-guide">Differences Between a Design System and a Style Guide</h2>
<p>Style guides and design systems are very similar and can often be confused for the same thing – but they're different. </p>
<p>Some differences between design systems and style guides are:</p>
<h3 id="heading-scope">Scope</h3>
<p>Style guides are relatively limited in scope and may not include detailed UI components or interactions. </p>
<p>Design systems on the other hand, are more comprehensive and encompass a broader range of elements including interactive components, user interface guidelines, amongst others.</p>
<h4 id="heading-consistency-1">Consistency</h4>
<p>Style guides typically focus on ensuring brand consistency, helping maintain a uniform look and feel across various materials and platforms. </p>
<p>Design systems aim to establish both brand and user interface consistency, by providing reusable components and interaction patterns.</p>
<h4 id="heading-evolution-and-scalability">Evolution and Scalability</h4>
<p>Style guides tend to evolve more slowly, and might not be as scalable as design systems. Design systems are more adaptable and evolve with the product or service.</p>
<h4 id="heading-collaboration-1">Collaboration</h4>
<p>Style guides are mainly used by designers to ensure visual consistency across a brand. They have a limited role in facilitating collaboration amongst designers and developers. </p>
<p>Design systems, on the other hand, promote collaboration by providing a common language and shared resources between designers and developers.</p>
<h3 id="heading-real-life-examples-of-design-systems">Real-Life Examples of Design Systems</h3>
<p>A lot of software corporations have created their own design systems to help ease the work of their designers and generally make it a smoother experience to build products. </p>
<p>Google, for instance, has a design system which they use for their products – you can see similar styles and elements in most of their products. </p>
<p>Most of these design systems are free and available to the public for use. Some examples of real life design systems are:</p>
<ul>
<li><a target="_blank" href="https://m3.material.io/">Google Material Design</a> by Google</li>
<li><a target="_blank" href="https://developer.apple.com/design/human-interface-guidelines">Apple Human Interface Guidelines</a> by Apple</li>
<li><a target="_blank" href="https://atlassian.design/">Atlassian Design System</a> by Atlassian</li>
<li><a target="_blank" href="https://polaris.shopify.com/">Polaris</a> by Shopify</li>
<li><a target="_blank" href="https://carbondesignsystem.com/">Carbon Design System</a> by IBM</li>
</ul>
<h2 id="heading-how-to-use-a-design-system-for-your-designs-rayna-ui-design-system-example">How to Use a Design System for Your Designs – Rayna UI Design System Example</h2>
<p>For this article, we'll be using the Rayna UI Design System to illustrate how to use a design system for your designs. </p>
<p>It's a newer design system that I recently learned about, so I thought I'd share my experience by using it for a challenge.</p>
<h3 id="heading-step-1-download-the-design-system">Step 1 – Download the Design System</h3>
<p>The first step will be to download the design system you're trying to use. In this case, we'll download the Rayna UI Design System. Go to their landing page @<a target="_blank" href="https://www.raynaui.com/">Rayna UI</a> and grab it from there.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Rayna UI Landing page</em></p>
<p>Next, click on "Get Rayna UI" to download the design system. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-2.png" alt="Image" width="600" height="400" loading="lazy">
<em>Rayna UI Landing page</em></p>
<p>Next, type your email in order to get the design system sent to your email address.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/rayna-3.png" alt="Image" width="600" height="400" loading="lazy">
<em>Provinding your email address</em></p>
<p>The link to the Figma file will be shared to your email, and you can open it.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-4.png" alt="Image" width="600" height="400" loading="lazy">
<em>Checking your email</em></p>
<p>Scroll down in the email to find the link to view the Rayna UI Figma file.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-5.png" alt="Image" width="600" height="400" loading="lazy">
<em>Checking your email</em></p>
<p>Click on the link sent to your email to open the design system. The link will open up the Rayna UI Design System on the Figma community. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-1.1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Opening the Rayna UI file in Figma Community</em></p>
<p>Next, click on the "Open in Figma" button by the right side of your screen.  This will open up a Figma file containing all assets and components of the Rayna UI Design System.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-6.png" alt="Image" width="600" height="400" loading="lazy">
<em>Opening the Rayna UI file in Figma</em></p>
<h3 id="heading-step-2-publish-the-rayna-ui-design-system-to-your-libraries">Step 2 – Publish the Rayna UI Design System to your libraries.</h3>
<p>The next step is to publish the Rayna UI Design System to your libraries, so you can use it for any design. </p>
<p>The third page on the Figma file (Get Started) contains a guide to getting started with the design system. Included in this guide are resources for beginners so you can gain a solid grasp of the basics, along with steps to take to publish and enable the library in other projects.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-7.png" alt="Image" width="600" height="400" loading="lazy">
<em>Getting Started with the Rayna UI design system</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-8.png" alt="Image" width="600" height="400" loading="lazy">
<em>Exploring the getting started section</em></p>
<p>Follow the steps given in the guide to publish the library. First, go to the assets panel in the top-left area of your screen, and press the book icon.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-9.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clicking on the "Assets" panel</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-10.png" alt="Image" width="600" height="400" loading="lazy">
<em>Clickiing on the "book" icon</em></p>
<p>When you click on the book icon, it'll bring up a modal for you to publish the library. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-1.2.png" alt="Image" width="600" height="400" loading="lazy">
<em>Publishing the library</em></p>
<p>Click on the publish button next to the file on the modal.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-12.png" alt="Image" width="600" height="400" loading="lazy">
<em>Moving the library to a professional team</em></p>
<p>I was asked to move the library to a professional team, so I could publish there. Click on the "Move to team" button to move the file. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-14.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting a team.</em></p>
<p>Next, select the team file you want to publish the library to.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-15.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting a team</em></p>
<p>After selecting a team, you'll have to publish the design system to the team files.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-16.png" alt="Image" width="600" height="400" loading="lazy">
<em>Publishing the design system</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-17.png" alt="Image" width="600" height="400" loading="lazy">
<em>Publishing the design system</em></p>
<p>You'll receive a notification that your library has been published.</p>
<h2 id="heading-how-to-use-the-design-system-in-your-projects">How to Use the Design System in Your Projects</h2>
<p>Next, we'll be learning how to implement the design system in a design. I'll be designing a sign up screen for a fintech website to illustrate this. </p>
<p>Before starting your design, you can copy some icons you may need from the design system to your design file. I tend to copy the buttons and input field styles I may need, if I want to adhere strictly to the design system.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-24-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Copied elements from the design system page.</em></p>
<p>For the sign up page I'm going to be designing, the details I need are the name of the website, input fields (full name, last name, email address, password, confirm password), and the buttons or CTAs (sign up and sign up with Google).</p>
<h2 id="heading-how-to-design-a-sign-up-web-screen">How to Design a Sign Up Web Screen</h2>
<h3 id="heading-step-1-select-a-frame">Step 1 – Select a Frame</h3>
<p>Firstly, I'll open the frame I'll be using. For this design, I'll be using the desktop frame (1440 x 1024). </p>
<p>To open a frame, go to the tools panel on the top left-hand corner of your screen. A panel with different kinds of frame types and sizes will come up. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-25-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Tools panel-Frame</em></p>
<p>Open the Desktop section and choose "Desktop" (1440 x 1024). The frame will appear on your screen, and you can start designing. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-26.1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choosing a frame</em></p>
<h3 id="heading-step-2-add-grid-styles">Step 2 – Add Grid Styles</h3>
<p>I like using grids for arrangement and consistency in my designs, so I'll add a grid layout to the frame. </p>
<p>In the Rayna UI Design System, there are already existing grid styles so I can just choose one. To add a grid style, go to the panel on your right, and click on the 4-block menu on the <em>layout grid</em> section.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-26-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Grid style panel</em></p>
<p>A list of different grid styles on the design system will come up, and you can choose any which corresponds with the kind of screen you're designing for. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-27-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choosing a grid style</em></p>
<p>Since I'm designing with a desktop frame, I'll choose <em>Large</em>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-28-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choosing a grid style for a frame</em></p>
<p>You can detach instance to see the specifications of the grid style you chose. To detach instance, click on the detach icon next to the eye icon on the layout grid section. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-29-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Detaching style</em></p>
<p>You can now see the specifications for the grid style you chose. Since I chose <em>Large</em>, the grid specifications are: </p>
<ul>
<li>Count – 12, using columns</li>
<li>Colour – F4BBAE, with opacity set to 20%</li>
<li>Type – Stretch</li>
<li>Width – Auto </li>
<li>Margin – 112</li>
<li>Gutter – 32</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-30.png" alt="Image" width="600" height="400" loading="lazy">
<em>Grid style specifications</em></p>
<h3 id="heading-step-3-add-content">Step 3 – Add Content</h3>
<p>I'll go ahead to start adding content to the screen. I'll use a text to represent my logo – Ketusha. </p>
<p>You can also control text styles and sizes on the design system. To do that, go to the Text panel on the left hand side of your screen. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-31.png" alt="Image" width="600" height="400" loading="lazy">
<em>Editing text size</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-32.png" alt="Image" width="600" height="400" loading="lazy">
<em>Confirming text size</em></p>
<p>Following the same format, I typed a heading for the form called "Sign Up".</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-33.png" alt="Image" width="600" height="400" loading="lazy">
<em>Sign Up form heading</em></p>
<p>Earlier, I suggested that you copy the icons, buttons, and input fields samples from the design system file, so you can use them easily while designing. Now, I'm going to paste the input field sample I copied in my frame.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-35.png" alt="Image" width="600" height="400" loading="lazy">
<em>Pasting input field sample in frame</em></p>
<p>Since I want the input field to be longer, I'll elongate it slightly to 400 width. It was previously 375 width.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-36.png" alt="Image" width="600" height="400" loading="lazy">
<em>Elongating input field width</em></p>
<p>Next, I'll structure the input field to how I want it to look like – without icons.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-37.png" alt="Image" width="600" height="400" loading="lazy">
<em>Input field without icons</em></p>
<p>Next, I'll edit the label to the label I want for my design.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-38.png" alt="Image" width="600" height="400" loading="lazy">
<em>Editing label</em></p>
<p>Next, I'll just duplicate the input field until I'm satisfied, and also edit all the labels.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-39.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding other input fields</em></p>
<p>Next, I'll add the buttons to the screen.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-40.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding CTAs</em></p>
<p>I'll add the "Sign up with Google" button, so the user can have different options for signing up on the platform. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-41.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding other sign up options</em></p>
<p>Next, I'll try to paste the google icon inside the "Sign up with Google" frame but that might not be possible.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-42.png" alt="Image" width="600" height="400" loading="lazy">
<em>Pasting Google icon</em></p>
<p>To be able to paste and replace an item inside the selection, I'll have to detach the instance. To do this, right click on the item you're trying to replace. A list of options will come up. Click on "detach instance".</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-43.png" alt="Image" width="600" height="400" loading="lazy">
<em>Detach instance</em></p>
<p>After that, right click on the icon again, and "paste to replace". </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-44.png" alt="Image" width="600" height="400" loading="lazy">
<em>Paste to replace</em></p>
<p>The icon will be replaced instantly.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/10/Rayna-45.png" alt="Image" width="600" height="400" loading="lazy">
<em>Web sign up form</em></p>
<p>We just created a sign up page using the Rayna UI Design System!</p>
<p>Keep in mind that using a design system doesn't mean you cannot be creative and add your own flair. You can add your own style and creativity as much as you'd like as you go. </p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Using design systems is a necessary skill every designer and developer should cultivate. </p>
<p>Design systems are a critical component of modern product design and development, fostering collaboration, efficiency, and innovation.</p>
<p>Thank you for reading!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ What is Information Architecture? How to Create Userflows and Sitemaps for UX Design ]]>
                </title>
                <description>
                    <![CDATA[ At some point in your design career, you may hear about Information Architecture (or IA). You might even have to create a userflow or sitemap. Now, this article aims to help you go back to the basics and remind you of the meaning and importance of IA... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/information-architecture-userflow-sitemap/</link>
                <guid isPermaLink="false">66d03a33dcbab93f8b58df8f</guid>
                
                    <category>
                        <![CDATA[ Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ user experience ]]>
                    </category>
                
                    <category>
                        <![CDATA[ ux design ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Faith Olohijere ]]>
                </dc:creator>
                <pubDate>Tue, 18 Jul 2023 20:40:51 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/07/pexels-sevenstorm-juhaszimrus-425160--1-.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>At some point in your design career, you may hear about Information Architecture (or IA). You might even have to create a userflow or sitemap.</p>
<p>Now, this article aims to help you go back to the basics and remind you of the meaning and importance of IA. So if you don't really understand the concept of Information Architecture, this is the best place to be. </p>
<p>We'll also explore how to do a userflow and a sitemap later in the article. Let's get started!</p>
<h2 id="heading-what-is-information-architecture">What is Information Architecture?</h2>
<p>Information Architecture (IA) is the process of planning and designing how information is organized in websites and applications. It focuses on meeting user needs and business goals by creating a logical and user-friendly information structure.</p>
<p>Information Architecture is mostly used by designers to structure the layout of their designs, especially during the sketching/low-fidelity stage.</p>
<h3 id="heading-importance-of-information-architecture">Importance of Information Architecture</h3>
<p>I can't overstate the importance of Information Architecture. Below, I'll share some reasons why every UX Designer should learn what IA means and how to implement it effectively:</p>
<ul>
<li>Organization and Structure: Information Architecture provides a framework for organizing and structuring information. It helps you make sure your designs are logically grouped and categorized.</li>
<li>Content Prioritization and Hierarchy: Hierarchy is one of the basic principles of design, and IA helps you achieve that. It enables designers to highlight key information and arrange content based on its relevance and importance to users.</li>
<li>User-Centric Design: Information Architecture helps designers think of their users during the design process, by considering how users typically think, behave, and search for information. Everyone has mental models, including users, and IA helps to make sure that information is presented in a way that matches the mental models of your already existing/target users.</li>
<li>Navigation: Information Architecture provides a clear way to navigate a design. It allows users to understand intuitively where they are in a site and how to move between different sections of a design.</li>
<li>Business Goals: Information Architecture helps to make sure the information presentation of your design aligns with the goals and objectives of the business/firm/company. </li>
</ul>
<h2 id="heading-types-and-forms-of-information-architecture">Types and Forms of Information Architecture</h2>
<p>There are so many types and forms of Information Architecture, especially since it's used in a lot of fields. But here we'll be looking at Userflows and Sitemaps, which are the most common ones in design.</p>
<h3 id="heading-what-is-a-userflow">What is a Userflow?</h3>
<p>A userflow refers to a diagram that shows the step-by-step journey of a user through a website, application, or system. </p>
<p>Imagine trying to order food online. Some steps you might take include: opening the food ordering application on your phone, signing up/logging in, choosing from the list of available food, choosing how many portions you'd like, and finally making payment online. </p>
<p>That's a typical example of how a user flow might be structured.</p>
<p>Userflows illustrate the paths, interactions, and decision points users encounter as they navigate and complete specific tasks or goals. They help designers and stakeholders understand and optimize the user journey.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/media_127cc680607ff7d6703be50271d9f563fd17e071c.png" alt="Image" width="600" height="400" loading="lazy">
<em>An example of a Userflow</em></p>
<h3 id="heading-what-is-a-sitemap">What is a Sitemap?</h3>
<p>Sitemaps are diagrams that display the layout and organization of content within a website or application. </p>
<p>Imagine a 2 bedroom apartment. The apartment could contain a sitting room, a kitchen, 2 bedrooms, a bathroom, and a dining room. The sitemap simply tells us how we can get to the kitchen from the sitting room/the bedroom/any place in the apartment.</p>
<p>In design, sitemaps provide an overview of the pages, menus, and sub-pages, helping us plan and visualize the information architecture and user experience of the system. They aid in content planning, navigation design, and website development.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/337-sitemap-template.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>An example of a Sitemap</em></p>
<h2 id="heading-differences-between-userflows-and-sitemaps">Differences Between Userflows and Sitemaps</h2>
<ol>
<li>Focus and Perspective: Userflows primarily focus on the step-by-step actions and interactions a user takes within an app or website, to accomplish a task or goal. Sitemaps focus on the overall structure and organisation of a website or an application, depicting the hierarchical relationship between different pages or sections.</li>
<li>Level of Detail: Userflows provide more detailed information about each step of the user's journey, including specific actions, decisions, and possible outcomes at each stage. Sitemaps provide a high-level overview of the app's or website's structure, showing the main pages or sections, without diving into the specific interactions within each page.</li>
<li>User-Centric vs Architectural: Userflows are user-centric and primarily represents the user's perspective and actions within the app or website. Sitemaps are more architectural in nature, representing the overall structure and organisation of an app or a website from a high-level viewpoint.</li>
<li>Interactivity and Decision-points: Userflows highlight interactive elements within the app or website, illustrating the choices and options available to the user at each step. Sitemaps do not explicitly showcase interactivity or decision points. </li>
</ol>
<h2 id="heading-when-to-use-information-architecture">When to Use Information Architecture</h2>
<p>You might be wondering when knowledge about Information Architecture will come in handy. </p>
<p>You can use Information Architecture in any or situation at all, really – like designing a mobile app, a website, a pitch deck, and more. Information Architecture is always helpful because it helps you decide what content/information comes first, what follows and how, and so on. </p>
<p>Typically, you'll think about Information Architecture after conducting user research. This is because research can help you understand the goals and needs of your users, and what they would likely do when they're trying to accomplish a goal on your site. </p>
<p>Also, userflows usually come before sitemaps, because you have to understand how a typical user would journey through your site, before deciding on how the layout or organization of that site would look like.</p>
<h2 id="heading-how-to-create-userflows-and-sitemaps">How to Create Userflows and Sitemaps</h2>
<p>You can use the same methods and tools to create userflows and sitemaps. You just need to understand the differences between them and bear in mind that the purpose of each one is different.</p>
<h3 id="heading-how-to-create-a-userflow">How to Create a Userflow</h3>
<h4 id="heading-step-1-define-your-goals-and-identify-tasks">Step 1: Define your Goals and Identify Tasks</h4>
<p>The first step is to define your goals and objectives for the project, stating what kind of Information Architecture you're trying to create (a userflow or a sitemap). You can just write this down on paper before digitalizing it.</p>
<p>For example: I'm working on a food ordering app, and I'd like to make a userflow showing how a typical user would order food using the app. </p>
<p>I would write down the typical/possible steps the user would have to go through to achieve the task of ordering food. These steps could be:</p>
<ul>
<li>The user opens the application on their phone.</li>
<li>The user signs up or logs into the application.</li>
<li>The user goes to the homepage.</li>
<li>The user chooses from restaurants close to them.</li>
<li>The user selects from the menu and adds food to cart.</li>
<li>The user pays for the food and waits for delivery.</li>
<li>The user exits the application.</li>
</ul>
<h4 id="heading-step-2-choose-a-tool">Step 2: Choose a Tool</h4>
<p>The next step is to choose a tool you want to use to create your userflow. There are lots of tools available for this, like Figjam, Miro, Whimsical, and others. I use Figjam since it's so easy to understand. </p>
<p>Here's what it looks like:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/Userflow1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Figjam interface</em></p>
<h4 id="heading-step-3-sketch-your-design">Step 3: Sketch your design</h4>
<p>The next thing is for you to sketch your actual flow on Figjam. Before this, you should note that every shape for a userflow has a specified meaning. You can see some shapes, flows and associations, and their meanings below.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/Userflow2.png" alt="Image" width="600" height="400" loading="lazy">
<em>Shapes, flows, and associations for a userflow.</em></p>
<p>The First Shape (Rounded edge rectangle): This shape represents the start/end of a userflow. It's typically used when you want to start or end a userflow. If you notice, there's also an end tag with a similar shape in the image above. Some people also use a circle to represent this.</p>
<p>The Second Shape (Rhombus): This shape represents a decision. It's used to show when a user has to make a decision like "login", "signup", and so on.</p>
<p>The Third Shape (Rectangle with dotted lines): This represents a group. A group in a userflow can contain process and data, showing that an action has been submitted to the database, and it's expecting feedback from the site.</p>
<p>The Fourth Shape (Parallelogram): This shape shows when the user has to make an input, like "choose how many portions of food they want to order, and so on.</p>
<p>The Fifth Shape (Rectangle with solid lines): This shape shows the process of the user going through the application or website. It might also include screens the user needs to pass through in order to achieve their goal.</p>
<p>The Sixth Shape (Cylinder): this shape represents the data running in the system, which feedback is required from.</p>
<p>Now that you know the different shapes and their uses, you'll need to first draw the shape for 'start':</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/Userflow4.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choosing a Shape</em></p>
<p>Next, you'll want to resize the shape if necessary, and input your text.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/Userflow-5.png" alt="Image" width="600" height="400" loading="lazy">
<em>Resizing shape and adding text</em></p>
<p>Up next, you'll need to add another shape and draw a connector. To add a connector, you can either click on the edge of the previous shape and drag, or draw the connector directly from the Figjam tools.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/Userflow6.png" alt="Image" width="600" height="400" loading="lazy">
<em>Drawing a connector to the next shape.</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/Userflow7.png" alt="Image" width="600" height="400" loading="lazy">
<em>Drawing a Connector from Figjam tools</em></p>
<p>When you do that, you then input your text. (Remember to take note of the meanings/roles of each particular shape).</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/Userflow8.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You continue this way until you're done adding all the steps in your userflow diagram.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/Userflow9.png" alt="Image" width="600" height="400" loading="lazy">
<em>Example userflow diagram with multiple steps</em></p>
<h4 id="heading-step-4-validate-and-finalize">Step 4: Validate and finalize</h4>
<p>Once you're done with your userflow, the next thing is to validate the diagram. This just means reviewing the userflow to make sure it's accurate, usable, and aligns with the users' needs. </p>
<p>Basically just go through the diagram and consider whether it represents the intended user journey, and whether all necessary steps and decision points are included.</p>
<h3 id="heading-how-to-create-a-sitemap">How to Create a Sitemap</h3>
<p>Earlier in the article, I mentioned that the processes for creating a sitemap and a userflow are similar. The difference lies in the purpose of the two diagrams. We'll be exploring how to create a sitemap using Miro, a diagramming tool.</p>
<h4 id="heading-step-1-open-the-tool">Step 1: Open the tool</h4>
<p>The first step obviously, is to open your tool. If you don't have an account already, sign up at <a target="_blank" href="https://www.freecodecamp.org/news/p/d9aa98df-32bc-4463-bf4e-557863ae187c/miro.com">Miro</a> and it should display your dashboard.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/miro1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Miro Dashboard</em></p>
<p>Next, click on "New Board" to open a blank canvas.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/miro2.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h4 id="heading-step-2-start-drawing-the-sitemap">Step 2: Start drawing the sitemap</h4>
<p>Next, you start drawing your sitemap. You should already know what screens you'll be designing, and how these screens connect to each other. Your userflow might help inform this.</p>
<p>Click on the Shapes tool from the toolbar on the lefthand side of your screen, to bring up all available shapes. </p>
<p>Note that, unlike Userflows where every shape has a meaning, you can use any shape for your sitemaps. Most designers make use of rectangles when doing sitemaps. It's very easy to build and stack, especially when you have lots of pages to represent.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/miro3.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choosing a shape</em></p>
<p>A plus icon will appear, and you just have to drag till the shape is to your satisfaction.</p>
<h4 id="heading-step-3-edit-the-shapes">Step 3: edit the shapes</h4>
<p>Next, you edit the shape to add colour, and your text. This could be "Homepage", "Log-in", "Signup", and so on – whatever is the first screen of your design. </p>
<p>When you click on the button, a sub-menu comes up. Here, you can switch your shape type, change text font and size, add text colour, align it, add a border or fill colour for the shape, and more.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/miro4.png" alt="Image" width="600" height="400" loading="lazy">
<em>Typing inside a shape</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/miro5.png" alt="Image" width="600" height="400" loading="lazy">
<em>Editing a shape</em></p>
<h4 id="heading-step-4-add-shapes-for-the-next-screens">Step 4: add shapes for the next screens</h4>
<p>Next, you need to draw shapes for the next screens which the homepage branches into. This could be major items on the navigation bar, where you have to click on CTAs (Call To Actions) to open them. </p>
<p>To draw the next shape, you can simply click on the edges of the first one, and the outline of the shape will be displayed.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/miro6.png" alt="Image" width="600" height="400" loading="lazy">
<em>Sketching the next shape</em></p>
<p>Click on the outline to indicate that you want the shape to stay, and basically edit just like you did the first one.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/miro7.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/miro7.5.png" alt="Image" width="600" height="400" loading="lazy">
<em>Editing the second shape</em></p>
<p>Next, you need to add other shapes that represent the subpages which the homepage branches out into. Just click on the first shape like you did when making the first sub-page shape.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/miro8.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding other sub-pages</em></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/miro9.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You can also change their colours to differentiate from the homepage and show hierarchy.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/miro10.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h4 id="heading-step-5-draw-more-pages">Step 5: draw more pages</h4>
<p>Next, you draw shapes for the pages under the first set of sub-pages.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/miro11.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You just continue that way until you're done with your sitemap, and all the screens you want to design have been represented in it.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/07/miro12.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>When you're done making your userflow and sitemaps, you can move on to your low-fidelity wireframes or your main design proper. The IA you've done informs your next step and decides what screens you should be designing in particular.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Information Architecture is very important for you to be able to organize the layouts of your designs and arrange them. This is helpful because it can really help improve the quality of your designs. </p>
<p>There are even templates on some softwares that could help you do your Information Architecture diagrams. Remember to practice as often as you can.</p>
<p>Thank you for reading!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Why Data Visualization is Important for UX Design ]]>
                </title>
                <description>
                    <![CDATA[ These days, we find ourselves consuming vast amounts of information, at an unprecedented rate. From online transactions, to social media interactions, to scientific research, the complexity of data grows exponentially. This reveals a challenge — how ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/why-data-visualization-is-important-for-ux-design/</link>
                <guid isPermaLink="false">66d03a45ab216b411575949d</guid>
                
                    <category>
                        <![CDATA[ data visualization ]]>
                    </category>
                
                    <category>
                        <![CDATA[ User Interface ]]>
                    </category>
                
                    <category>
                        <![CDATA[ ux design ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Faith Olohijere ]]>
                </dc:creator>
                <pubDate>Thu, 01 Jun 2023 15:39:07 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/05/luke-chesser-JKUTrJ4vK00-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>These days, we find ourselves consuming vast amounts of information, at an unprecedented rate. From online transactions, to social media interactions, to scientific research, the complexity of data grows exponentially. This reveals a challenge — how to transform this raw data to actionable insight. </p>
<p>This is where data visualization comes in. Data visualization is a very important concept we should all consider when designing for our users.</p>
<p>In this article, you'll learn what data visualization is, how it relates to UX Design, and challenges faced when designing for data visualization.</p>
<h2 id="heading-what-is-data-visualization">What is Data Visualization?</h2>
<p>Data Visualization can be defined as being able to view data in designs. This could be done using charts, maps, tables, and so on. Data visualization simply enables users to see and understand data, without stressing their head or eyes. </p>
<p>By leveraging the power of visual perception, data visualization empowers individuals and organizations to gain deeper insights, and make informed decisions.</p>
<h2 id="heading-how-does-data-visualization-relate-to-ux-design">How Does Data Visualization Relate to UX Design?</h2>
<p>You might be wondering if and how data visualization relates to UX design. After all, isn't data all about numbers?</p>
<p>They do relate! You see, data visualization isn't just about numbers. It's about representing these numbers in a way that makes sense to the user, and also helps them make decisions. </p>
<p>As UX designers, our primary goal is to solve a problem for our users. When we design for data visualization, we're reducing the strain of going through bulky amounts of data for our users, and generally making their lives easier.</p>
<h2 id="heading-why-is-data-visualization-important">Why is Data Visualization important?</h2>
<p>Data Visualization is important for so many reasons, some of which are:</p>
<ul>
<li>Enhancement of understanding: Just putting out data might confuse a particular user or customer. Using visuals to interpret the data makes it easier and more fun for the users.</li>
<li>Communication of insight: Data visualization helps communicate insights on a digital platform. Users will be able to understand the data, data sources and how it's being analyzed.</li>
<li>Better user experience: Overall, data visualization helps in making sure your user has a better experience while interacting with your platform. You're generally trying to make their lives easier and reduce information overload.</li>
<li>Informed decision-making: Helping the user understand the data better, will keep them informed, and help them make better decisions which can boost their businesses.</li>
</ul>
<h2 id="heading-challenges-of-designing-for-data-visualization">Challenges of Designing for Data Visualization</h2>
<p>Data visualization is so easy to get wrong. Because of the delicate nature of data and how broad it can appear, designers might face some challenges when trying to help users visualize data. Some of these challenges include:</p>
<ul>
<li>Bulky/complex data: The bulky nature of the data might make it difficult to represent the data using visuals. Also, simplifying the data without losing information can be very tricky.</li>
<li>Cluttered interface: Somewhat related to the previous point, the overwhelming nature of the data can make the design look cluttered. Because you're designing with a lot of data, you might end up having a messy interface, while trying to put it all on a screen. You have to find a way to make sure your user interfaces don't look cluttered with an overload of information.</li>
<li>Usage of color: Despite the fact that we want the interface to look visually appealing, we have to consider the fact that colors can distract users from the overall intention, which is to communicate data to the users. Therefore, we should figure out a way to strike the balance, especially when differentiating color categories and highlighting important information.</li>
<li>Background of the target audience: You should also consider the background and understanding of your target audience. Some users might not have technical knowledge so, it would be best not to use jargon while designing for them.</li>
</ul>
<h2 id="heading-how-to-design-efficiently-for-data-visualization">How to Design Efficiently for Data Visualization</h2>
<p>To effectively design for data visualization and correctly interpret data for your users, you should consider these tips:</p>
<h3 id="heading-define-the-purpose">Define the purpose</h3>
<p>First of all, you'll want to define your purpose for the design. This is a common step in most designs. You need to understand the purpose of the visualization – is it to convey trends, monitor business growth, and so on. </p>
<p>Also, consider the domain, requirements, and possible constraints. This will help you determine the best visualization type to use.  </p>
<p>For example, say you're designing a data visualization for a social media tracking platform. The purpose here is to track the growth of the social media account, note what posts are most engaged with, and basically providing actionable insights to help the user make decisions that would further boost the account.</p>
<h3 id="heading-know-your-audience">Know your audience</h3>
<p>Another tip for designing effectively is to know your audience. You have to understand what your audience needs before figuring out how to help them. </p>
<p>You can conduct some research on the kind of people that would use the data visualization tool for the domain you're working on.</p>
<p>Using the same example as the first tip, your audience would generally be social media managers, brand ambassadors, or others who work primarily in the social media space. Do note that the audience may vary in terms of age, expertise, and personal preferences. </p>
<h3 id="heading-choose-the-visualization-type">Choose the visualization type</h3>
<p>Here, you choose the best visualization type for conveying your information. You can decide to use bar charts, tables, graphs, and so on, to represent your data.</p>
<p>Continuing with our example, you'd want to select visualizations that effectively represent progress over time, such as bar charts, progress charts, and so on. You might also want to analyze key data such as active followers. Would you use a bar chart or a line chart to do so? This is what choosing the visualization type entails.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/06/15319232948826_guardianmasterclass-dataviz-1292.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Examples of some data visualization charts. Image from [OpenClassrooms](https://www.google.com/url?sa=i&amp;url=https%3A%2F%2Fopenclassrooms.com%2Fen%2Fcourses%2F4555961-apply-metrics-to-design-decisions%2F5403056-decide-on-an-approach-to-present-information&amp;psig=AOvVaw11EJaN3uJ8zzLGJ7VRciQd&amp;ust=1685717146266000&amp;source=images&amp;cd=vfe&amp;ved=0CBEQjRxqFwoTCKjA</em>--nov8CFQAAAAAdAAAAABAR)_</p>
<h3 id="heading-have-an-intuitive-and-simple-layout">Have an intuitive and simple layout</h3>
<p>Here, you'd have to think of the kind of layout you want to use for your design. You would want to go for a simple layout that would help your users easily understand the visuals.</p>
<p>For the social media data visualization, you might want to: </p>
<ul>
<li>Incorporate a clear hierarchy of elements using size, colors, and placement.</li>
<li>Use familiar patterns like icons or symbols, to represent different social media metrics.</li>
<li>Embrace a minimalist approach by displaying essential information only. </li>
<li>Design a clear navigation system so users would always understand their current location on the application. </li>
</ul>
<p>Having an intuitive layout can help reduce information overload on your users. When elements are arranged logically, and the visualization is simple and free of clutter, your users are sure to have a great experience.</p>
<h3 id="heading-use-accessible-colors">Use accessible colors</h3>
<p>Next, choose colors that are easy on the eyes. Aside from the background and primary colors, you might use color coding to differentiate between different metrics/elements. </p>
<p>For example, you may decide to get the gender demography of the audience for the social media account. To represent this data, you could use a circle graph (doughnut), and choose different colors to represent the genders.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/06/Circle-Chart.png" alt="Image" width="600" height="400" loading="lazy">
<em>An example of a circle graph with each element differentiated by colors.</em></p>
<p>Please note that accessibility isn't only for people with disabilities. Make sure to use colors that don't distract the user from important elements and information. You can use <a target="_blank" href="https://www.freecodecamp.org/news/the-60-30-10-rule-in-design/">the 60-30-10 rule</a> to choose a color palette that improves understanding and aids interpretation.</p>
<h3 id="heading-a-data-visualization-dashboard">A Data Visualization Dashboard</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/05/Desktop---6--3-.png" alt="Image" width="600" height="400" loading="lazy">
<em>Example of a dashboard for a Data Visualization Tool</em></p>
<p>The image above shows a dashboard for a social media data visualization tool. The dashboard contains performance metrics, analytics of likes, followers and comments on the account. The dashboard also contains the demographics of the audience, engagement rates and posts activity. </p>
<p>All these are important data analytics information which are useful to the owner of the account.</p>
<p>You can see how charts and bar graphs are used to interpret the data. Imagine having one big list which has the demographics of each user, each like and comment posted, everyone who engaged with each posts, and so on. It would be a bit overwhelming and hard to sift through to find insights.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>The average person consumes about 40-75 gigabytes of data per day. Now, that's quite a lot. Imagine having to take in this huge amount of data through cluttered and disorganized interfaces. This would make it difficult to understand and interpret the data.</p>
<p>As designers, it's our job to ease the experiences of users while interacting with our products. We have to focus and align our design choices with the purpose and audience, as well as continuously evaluate our visualizations to ensure they effectively convey insights and appropriately inform the viewers. Remember, this gets better with practice.</p>
<p>Thank you for reading!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Why Accessibility Matters in UI/UX Design ]]>
                </title>
                <description>
                    <![CDATA[ Accessibility is a word that is often thrown around in the design field. As a UI/UX/Web Designer, you might have heard this word a few times and you might wonder why it's important.  In this article, you will learn: What accessibility means Some myt... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/why-accessibility-matters-in-ui-ux-design/</link>
                <guid isPermaLink="false">66d03a42a30d09f91d49b78d</guid>
                
                    <category>
                        <![CDATA[ a11y ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Accessibility ]]>
                    </category>
                
                    <category>
                        <![CDATA[ responsive design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Design ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Faith Olohijere ]]>
                </dc:creator>
                <pubDate>Thu, 25 May 2023 14:18:24 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/05/pexels--------------3077882.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Accessibility is a word that is often thrown around in the design field. As a UI/UX/Web Designer, you might have heard this word a few times and you might wonder why it's important. </p>
<p>In this article, you will learn:</p>
<ul>
<li>What accessibility means</li>
<li>Some myths surrounding accessibility</li>
<li>How to make your work more accessible</li>
<li>Some practical accessibility examples</li>
</ul>
<p>Let's get started!</p>
<h2 id="heading-what-is-accessibility">What is Accessibility?</h2>
<p>There are so many definitions of accessibility on the web. But to me, accessibility in digital/web design simply means designing to make content usable for people with disabilities. </p>
<p>Working with accessibility in mind involves designing websites, applications, and digital interfaces that can be navigated by individuals with visual, hearing, motor, or cognitive impairments.</p>
<h2 id="heading-some-myths-surrounding-accessibility">Some Myths Surrounding Accessibility</h2>
<p>Like every topic under the sun, lots of people have different opinions about accessibility. Some might be true, some might be false. </p>
<p>Below, I'll share some popular misconceptions about accessibility. </p>
<h3 id="heading-myth-people-with-disabilities-dont-use-my-platform">Myth: people with disabilities don't use my platform</h3>
<p>You might be designing for a governmental or corporate platform and think that people with disabilities will not use your platform. </p>
<p>This is an incorrect notion to have. There are different forms of disability, including temporary and permanent disabilities. You have no control over who might use your platform at any time or what they might need.</p>
<h3 id="heading-myth-accessibility-is-only-for-people-with-disabilities">Myth: accessibility is only for people with disabilities</h3>
<p>While accessibility measures are crucial for individuals with disabilities, they also benefit a wide range of people, including the elderly, those with temporary disabilities, individuals with situational limitations, and even people without apparent disabilities.</p>
<p>Accessibility best practices make websites and apps easier for everyone to use in various ways.</p>
<h3 id="heading-myth-accessibility-is-all-about-adding-alt-text">Myth: accessibility is all about adding ALT text</h3>
<p>Alt (alternative) text is an assistive technology which is a valuable tool. But you shouldn't only use alt text as a substitute for general/wider accessibility best practiceds. </p>
<p>Assistive technologies work best when used in conjunction with accessible designs and content. </p>
<h3 id="heading-myth-you-should-build-accessible-sites-just-so-you-dont-get-in-trouble-with-the-law">Myth: you should build accessible sites just so you don't get in trouble with the law</h3>
<p>Although accessibility is a legal and ethical requirement, you shouldn't build it into your designs because of that reason alone.</p>
<p>You should build accessible websites and apps because accessibility helps anyone who comes to your platform interact with it well.</p>
<h2 id="heading-why-is-accessibility-important">Why is Accessibility Important?</h2>
<p>Accessibility is important for a number of reasons. They include:</p>
<ul>
<li>Improved Usability: Accessibility improves the usability of a website or application. Features like clear navigation, intuitive design, and so on benefit all users. They also contribute to user satisfaction, usability and overall engagement with products and services.</li>
<li>Broad User Base: When your platform is accessible, it increases your user base, as people from different backgrounds and situations can use your platform. This expands the reach and customer base of your product.</li>
<li>Enhanced User Experience: Incorporating accessibility in your designs will enhance the experience of your users (disabled or not), making it easier to interact with your platform.</li>
<li>Equal Rights &amp; Inclusion: Accessibility promotes inclusivity and prevents discrimination based on disabilities. Everyone deserves to have equal access to opportunities, information, and social services.</li>
<li>Legal &amp; Ethical Requirements: Legally and ethically, accessibility is a requirement for different domains and platforms. Adhering to these legal requirements ensures compliance and helps your client avoid potential legal issues. </li>
</ul>
<h2 id="heading-how-to-make-your-designs-more-accessible">How to Make Your Designs More Accessible</h2>
<h3 id="heading-understanding-accessibility-guidelines">Understanding Accessibility Guidelines</h3>
<p>Familiarize yourself with accessibility standards such as the Web Content Accessibility Guidelines<a target="_blank" href="https://www.w3.org/TR/WCAG21/">(WCAG)</a>. These guidelines provide comprehensive recommendations for designing accessible digital content.</p>
<h3 id="heading-use-sufficient-color-contrast">Use Sufficient Color Contrast</h3>
<p>Opt for color combinations that are accessible for individuals with color blindness or low vision. Use tools to check the color contrast ratio and ensure that text is easily distinguishable from the background.</p>
<p>Here's an example of creating sufficient color contrast:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/05/Frame-3--2-.png" alt="Image" width="600" height="400" loading="lazy">
<em>Color contrast example</em></p>
<p>In the example above, in the first sentence, the highlighted word (link) does not contrast well with the rest of the sentence. Compare with the second sentence where "link", is perfectly contrasting and has an underline, to create more emphasis. </p>
<p>It's more likely that the second sentence is accessible for individuals with color blindness or low vision.</p>
<h3 id="heading-create-inclusive-forms">Create Inclusive Forms</h3>
<p>Design forms that are user-friendly. Include clear labels, instructions and, error messages. Make sure to enable users navigate and complete the form without relying solely on a mouse.</p>
<p>Here's an example of creating an inclusive form:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/05/Frame-2--1-.png" alt="Image" width="600" height="400" loading="lazy">
<em>User-friendly form example</em></p>
<p>The first form has some issues: </p>
<ul>
<li>It does not have any header (to indicate what the form is for).</li>
<li>It shows an error field without explaining what it indicates.</li>
<li>The form does not specify the number of characters the password should have, all of which are very helpful to the user(s).</li>
</ul>
<p>All these were corrected in the second form, where:</p>
<ul>
<li>A header was added indicating that the form is for "<em>Course Registration</em>".</li>
<li>The error field specifically explains what's wrong – the user entered an invalid email address.</li>
<li>The number of password characters as required by the platform was stated.</li>
</ul>
<h3 id="heading-implement-responsive-design">Implement Responsive Design</h3>
<p>Some designers design for desktop versions only, not considering accessibility. But it's much more helpful to make your design responsive. </p>
<p>Ensuring that your designs are adaptable to different screen sizes and resolutions accommodates individuals who use various devices. This is a great way to make your designs more accessible.</p>
<p>Here's an example of implementing responsive design:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/05/Frame-8922.png" alt="Image" width="600" height="400" loading="lazy">
<em>Responsive Design example</em></p>
<p>Above is an example of a product description page of a website. The first image on the left shows the desktop version only. In the second image, the design has been made more accessible – you can see the mobile responsive version as well.</p>
<p>Designing for different screen sizes shows that your design accommodates individuals who use various devices, as stated earlier.</p>
<h3 id="heading-provide-feedback-and-error-handling">Provide Feedback and Error Handling</h3>
<p>Making sure your designs provide adequate feedback accompanied by the next step to take, gives a great user experience. Error notifications can completely discourage a user if not handled correctly. As such, adequate feedback is necessary to make your design accessible.</p>
<p>These are few ways of making your designs accessible, amongst others. You can make an accessibility checklist to help remind yourself of accessibility when designing. To help further, check out accessibilitychecklist.org to find out.</p>
<p>Here's an example of how to provide feedback and handle errors:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/05/Desktop---3--1-.png" alt="Image" width="600" height="400" loading="lazy">
<em>Error handling example</em></p>
<p>In the example above, the first 404 page tells the user what error occurred, and what might be the cause – but does not suggest a way of fixing the error. Meanwhile, the second 404 page explains the error that occurred and provides a way of fixing it – "<em>Go to homepage</em>".</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Accessibility is important to customer retention and the growth of a business. As a UI/UX/Web designer, it's your responsibility to incorporate accessibility into your product and give your users an awesome experience. Remember, your user is the priority. </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ What is the 60-30-10 Rule in Design? And How to Use it in Your Projects ]]>
                </title>
                <description>
                    <![CDATA[ As designers, colour is a huge component of our work. But many of us struggle with the usage of colours in our designs.  In this article, you will learn about the 60-30-10 colour rule, how it's used, and see a practical example of it. What is the 60-... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/the-60-30-10-rule-in-design/</link>
                <guid isPermaLink="false">66d03a38a30d09f91d49b789</guid>
                
                    <category>
                        <![CDATA[ colors ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Design ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Faith Olohijere ]]>
                </dc:creator>
                <pubDate>Mon, 15 May 2023 17:20:43 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/05/pexels-pixabay-39828.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>As designers, colour is a huge component of our work. But many of us struggle with the usage of colours in our designs. </p>
<p>In this article, you will learn about the 60-30-10 colour rule, how it's used, and see a practical example of it.</p>
<h2 id="heading-what-is-the-60-30-10-rule">What is the 60-30-10 rule?</h2>
<p>In the design world, the 60-30-10 rule is a rule that helps to guide designers on choosing and pairing colours for their designs. </p>
<p>To put it simply, this rule says that the dominant/primary colour should take up 60% of your design, the secondary colour should take up 30%, while an accent colour should take up 10% of your design.</p>
<h3 id="heading-why-is-this-rule-so-important">Why is This Rule so Important?</h3>
<ul>
<li>Emphasizing Key Elements: The 60-30-10 rule is great at emphasizing key elements in your design. The dominant colour draws attention to large surfaces and establishes the overall mood of the design. The secondary colour supports it, while the accent colour at 10% highlights specific features or parts of the design. </li>
<li>Visual Balance: To achieve visual balance in a design, one colour/element should not overpower the others. The 60-30-10 rule ensures that there is a sense of equilibrium and balance, by allocating percentages to each colour.</li>
<li>Simplicity and Consistency: Having 3 established colours simplifies the design process. It narrows down your choices and prevents overwhelming combinations of colours.</li>
</ul>
<h2 id="heading-how-to-choose-colours-for-your-designs">How to Choose Colours for Your Designs</h2>
<p>The 60-30-10 rule has three components:</p>
<ul>
<li>The Primary Colour: This is the dominant colour of the design. It forms the foundation of the colour scheme and covers the majority of the design (60%). The primary colour is typically a neutral colour and is often used as the background of the design. Colours like white, blue, beige, and so on can be used as primary colours. </li>
<li>The Secondary Colour: This colour supports the dominant colour and adds more visual interest to the design. It covers about 30% of the design. The secondary colour can be used for typography, icons, and subheadings/subtitles in a design. Colours like teal, black, dark blue, and others can be used as secondary colours.</li>
<li>The Accent Colour: This colour usually covers about 10% of the design. It helps highlights specific sections of the design like buttons, call-to-action elements, or any element that needs emphasis in a design. Accent colours are usually colours that have high contrast. Colours like yellow, orange, light green, and others make good accent colours.</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/05/60-final.png" alt="Image" width="600" height="400" loading="lazy">
<em>Illustration of the 60-30-10 rule</em></p>
<p>It's important to choose colours that complement each other for your designs. This will contribute to the overall aesthetics and create a dynamic and engaging visual experience. </p>
<p>If you are worried about what colours to use while designing, you can always check out free colour palette generators. Some colour palette generators you try out include:</p>
<ul>
<li><a target="_blank" href="https://www.freecodecamp.org/news/p/251c1c45-6222-4618-ae62-23843967d9bd/coolors.co">Coolors.co</a></li>
<li><a target="_blank" href="https://www.freecodecamp.org/news/p/251c1c45-6222-4618-ae62-23843967d9bd/mycolor.space">Color Space</a></li>
<li><a target="_blank" href="https://www.freecodecamp.org/news/p/251c1c45-6222-4618-ae62-23843967d9bd/color.adobe.com">Adobe Color</a></li>
</ul>
<h2 id="heading-example-hero-page-using-the-60-30-10-rule">Example Hero Page Using the 60-30-10 Rule</h2>
<p>I designed an hero page to give an illustration of how the rule works.</p>
<h3 id="heading-step-1-choosing-a-frame">Step 1- Choosing a Frame</h3>
<p>I had to choose what desktop frame I wanted to use for the hero page. I chose Macbook Air.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/05/Landing-Page1-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Macbook Air Desktop frame</em></p>
<h3 id="heading-step-2-adding-a-grid">Step 2- Adding a Grid</h3>
<p>Next, I added a grid to the frame. I used these specifications: Columns-12, Margin-100.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/05/Landing-Page2-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding the Grid</em></p>
<h3 id="heading-step-3-adding-content">Step 3- Adding Content</h3>
<p>Next up, I added the logo and the navigation bar.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/05/Landing-Page3-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding the logo and nav bar</em></p>
<p>I already knew how I wanted the structure of my hero page to look like, so I just added the rest of my design content.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/05/Group-2--5-.png" alt="Image" width="600" height="400" loading="lazy">
<em>My Completed Hero Page Illustrating the 60-30-10 Rule.</em></p>
<p>For the design above:</p>
<ul>
<li>My primary colour is white. It covers the background of the design. It enhances readability and legibility of other elements in the design. Also, I chose white because it's a neutral colour, as I mentioned earlier.</li>
<li>My secondary colour is a saturated black. It supports the primary colour, and is used for text and typography.</li>
<li>My accent colour is a shade of brown. It adds some pop, and provides some contrast in the design.</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>The 60-30-10 rule is used in different design sectors because of how useful it is to designers. Also, it is not a strict requirement and can be adjusted to suit individual preferences and design goals. </p>
<p>By following the 60-30-10 rule, you can achieve a well-balanced color scheme that ensures visual interest and coherence in your design. Basically, just choose: </p>
<ul>
<li>Your primary colour – a neutral colour, </li>
<li>Your secondary colour – a colour that supports the primary colour, and </li>
<li>Your accent colour – a colour that pops! </li>
</ul>
<p>Whatever colours you decide to use for your design depend on the design objectives and the overall aesthetic you want to achieve. Remember that mastery of colours come with adequate practice. So make sure to practice more and you will see a lot of improvement in your usage of colours.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ What is Wireframing? How to Go from Paper Sketches to High Fidelity Wireframes ]]>
                </title>
                <description>
                    <![CDATA[ What are Wireframes? Wireframes are visual representations of the structure, layout, and functionality of a website, application, or other digital product.  You typically create them during the early stages of the design process, and they provide a s... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/what-is-wireframing/</link>
                <guid isPermaLink="false">66d03a3f64be048ac359a361</guid>
                
                    <category>
                        <![CDATA[ Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ software design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #wireframe ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Faith Olohijere ]]>
                </dc:creator>
                <pubDate>Tue, 09 May 2023 22:06:49 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/05/unsplash_Pa0I38PfNPs.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <h2 id="heading-what-are-wireframes">What are Wireframes?</h2>
<p>Wireframes are visual representations of the structure, layout, and functionality of a website, application, or other digital product. </p>
<p>You typically create them during the early stages of the design process, and they provide a simplified and focused view of the user interface and user experience.</p>
<p>You can create a wireframe using a variety of tools, including paper and pencil, whiteboards, or specialized digital software. They usually consist of basic shapes, lines, and text, and aim to communicate the hierarchy of information, the placement of interactive elements, and the flow of user interactions.</p>
<p>Wireframes serve as a blueprint for the design process. They allow designers and stakeholders to quickly iterate and refine ideas before investing time and resources into creating a fully functional prototype or final product. They are an essential tool for creating effective and user-friendly digital experiences.</p>
<h2 id="heading-why-is-wireframing-important">Why is Wireframing Important?</h2>
<p>Wireframing is an important process in web and app design because it helps designers to plan and communicate the layout and functionality of a website or application before it is built. Here are some reasons why wireframing is important:</p>
<ol>
<li>Wireframing helps stake holders visualize the structure of the design: Wireframing allows designers to create a visual representation of the website or application's structure. This includes the layout of pages, navigation, and the placement of various elements.</li>
<li>It helps designers focus on functionality: With wireframing, designers can focus on the functionality of the website or application without getting distracted by colors, typography, and other design elements.</li>
<li>It saves time and money: Wireframing can save time and money in the long run by identifying potential problems and making necessary changes early on in the design process, rather than during the development phase.</li>
<li>It's an easy way to gather feedback: Wireframes are a great way to gather feedback from stakeholders and users, as they provide a clear and simple representation of the design without distracting visual elements.</li>
<li>Plan for responsive design: Wireframing is essential when designing for different screen sizes and devices. It allows designers to plan for responsive design and ensure that the website or application works well on all devices.</li>
</ol>
<h2 id="heading-types-of-wireframes">Types of Wireframes</h2>
<p>Everyone has a specific way of doing wireframes. Some designers go from paper sketches to high fidelity wireframes or from low-fidelity wireframes to high-fidelity wireframes. </p>
<p>It all depends on the particular project the designer is working on, what they intend to achieve, and the timeframe they have.</p>
<h3 id="heading-paper-sketches">Paper Sketches</h3>
<p>I begin my wireframing process by doing paper sketches first, because it allows me put out my ideas really fast without having to bother about neatness and quality. It also saves time when designing – you just think of quick solutions and put them on paper.</p>
<h4 id="heading-some-techniques-for-paper-sketching">Some Techniques for Paper Sketching</h4>
<ul>
<li><strong>Crazy Eights</strong></li>
</ul>
<p>In the design world, "Crazy Eights" is a quick sketching exercise that helps designers to quickly generate a variety of design ideas and explore different solutions to a problem, in a short amount of time. </p>
<p>Here's how to do Crazy Eights in design:</p>
<ol>
<li>Start with a blank sheet of paper and fold it in half, then in half again, and one more time so that you end up with 8 rectangles on the page.</li>
<li>Set a timer for 8 minutes.</li>
<li>Within the first rectangle, sketch out an idea for the design problem you're working on. It doesn't need to be perfect, just get the basic idea down on paper.</li>
<li>When the timer goes off, move on to the next rectangle and sketch a new idea. Keep going until you've filled all 8 rectangles.</li>
<li>Once you've completed all 8 sketches, take a few minutes to review your ideas and identify the strongest ones.</li>
<li>Use the strongest ideas as a starting point for your design, and continue refining and iterating until you have a final product.</li>
</ol>
<p>You'll see an example of this in a bit when I walk you through my wireframing process.</p>
<ul>
<li><strong>20 Second Sketches</strong></li>
</ul>
<p>Set a timer for 20 seconds and sketch a simple object or scene. Repeat this exercise multiple times, trying to capture as much detail as possible in each sketch.</p>
<ul>
<li><strong>Collaborative Sketching</strong></li>
</ul>
<p>Pair up with another person and take turns adding to a sketch. Each person has a set amount of time to add their own unique element to the drawing. This exercise encourages collaboration and improvisation.</p>
<h3 id="heading-low-fidelity-wireframing">Low-Fidelity Wireframing</h3>
<p>Low-fidelity wireframing is a technique of creating a rough visual representation of a design using simple shapes, lines, and text. Low-fidelity wireframes are the most basic of wireframes. This type of wireframing is typically done with pen and paper, or with a digital tool that allows for quick, low-detail sketches. </p>
<p>Mostly, they focus on the core content and structure of the interface, and are simple and straightforward. Low-fidelity wireframes are a useful tool for designers to quickly explore and iterate on different layout and content options, without getting bogged down in details that can distract from the overall design direction. </p>
<h4 id="heading-advantages-of-low-fidelity-wireframing">Advantages of Low Fidelity Wireframing</h4>
<ul>
<li>Speed: Low-fidelity wireframes can be created quickly and easily, allowing designers to explore multiple ideas in a short amount of time.</li>
<li>Flexibility: Low-fidelity wireframes are easy to modify and change as the design evolves, allowing designers to iterate quickly.</li>
<li>Focus: By focusing on the structure and layout of a design, low-fidelity wireframing helps designers avoid getting distracted by details that may not be relevant.</li>
<li>Collaboration: Low-fidelity wireframes can be easily shared and discussed with other team members, allowing for greater collaboration and feedback.</li>
</ul>
<h4 id="heading-disadvantages-of-low-fidelity-wireframing">Disadvantages of Low Fidelity Wireframing</h4>
<ul>
<li>Lack of Detail: Low-fidelity wireframes may not provide enough detail to fully convey the intended design, which can lead to misunderstandings and miscommunications.</li>
<li>Limited Interactivity: Low-fidelity wireframes are static and do not allow for interaction, which can make it difficult to test usability and user flow.</li>
<li>Limited Realism: Unlike high fidelity wireframes, low-fidelity wireframes may not accurately represent the final product, which can make it difficult to communicate the design to stakeholders who may not be familiar with wireframes.</li>
</ul>
<h4 id="heading-why-you-might-want-to-use-low-fidelity-wireframes">Why You Might Want to Use Low-Fidelity Wireframes</h4>
<ul>
<li>For early-stage conceptualization: Low-fidelity wireframes are great for early-stage conceptualization. Because they allow you to quickly iterate and experiment with different layout options without getting caught up in the visual details, low-fidelity wireframes are extremely useful during the initial stages of your design. </li>
<li>For Time and Resource Efficiency: In situations where time is of great essence, low-fidelity wireframes helps to make changes more rapidly, saving time when needed. Also, it requires fewer resources, which is ideal for situations where resources are scarce.</li>
<li>For User Testing and Feedback: Low-fidelity wireframes provide a clear representation of the overall structure of your design, allowing for easier feedback from stakeholders and team members. Low-fidelity wireframes are also important during user testing sessions, as it helps you collect valuable insights on the fundamental structure and functionality of a design, before investing significant effort in visual design. </li>
</ul>
<h3 id="heading-mid-fidelity-wireframing">Mid-Fidelity Wireframing</h3>
<p>Mid-fidelity wireframing refers to wireframes that are created with a moderate level of detail and design elements. These wireframes typically focus on the overall structure of a product and may include basic typography and design elements.</p>
<h4 id="heading-advantages-of-mid-fidelity-wireframing">Advantages of Mid-Fidelity Wireframing</h4>
<ul>
<li>Efficient Design Process: Mid-fidelity wireframing can be completed quickly and efficiently, allowing designers to iterate and test their designs faster.</li>
<li>Cost-effective: Mid-fidelity wireframes are less expensive to create than high fidelity wireframes, making them a more cost-effective option for design projects.</li>
<li>Usability Testing: Mid-fidelity wireframes can be used for usability testing, providing insights into user behaviour and interaction with the product.</li>
<li>Flexibility: Definitely one of the most importnat advantages of mid-fidelity wireframes. Mid-fidelity wireframes are less detailed than high fidelity wireframes, making it easier to make changes and pivot design direction during the design process.</li>
</ul>
<h4 id="heading-disadvantages-of-mid-fidelity-wireframing">Disadvantages of Mid-Fidelity Wireframing</h4>
<ul>
<li>Less Realistic: Mid-fidelity wireframes may not accurately represent the design's final look, which can impact stakeholder and client expectations.</li>
<li>Limited Visual Details: Mid-fidelity wireframes do not provide as much detail as high fidelity wireframes, making it difficult to communicate the final design vision to stakeholders.</li>
<li>User Experience Limitations: Because mid-fidelity designs do not have enough visual details to test the user experience effectively, leading to potential usability issues.</li>
</ul>
<p>You'll see an example of this below when we walk through my process.</p>
<h4 id="heading-why-you-might-want-to-use-mid-fidelity-wireframes">Why You Might Want to Use Mid-Fidelity Wireframes</h4>
<ul>
<li>For Refining Structure and Content: When you need to refine the structure, content and layout of your design, mid-fidelity wireframes are beneficial. They allow you add more detail to your wireframes while being relatively quick to create and modify.</li>
<li>Information Architecture: Mid-fidelity wireframes provide a clearer structure and visual representation of the design, showing off the userflow better than low-fidelity wireframes. </li>
<li>Stakeholder Presentation and Approvals: Mid-fidelity wireframes are more polished and appealing than low-fidelity wireframes. This makes them a more effective tool when presenting design ideas to stakeholders and clients.</li>
<li>Design Consistency: By adding more visual details to the wireframes, a consisent design language can be established across multiple screens or pages.  </li>
</ul>
<h3 id="heading-high-fidelity-wireframing">High-Fidelity Wireframing</h3>
<p>High fidelity wireframing refers to the creation of detailed, visually-rich wireframes that closely resemble the final product or website. </p>
<p>These wireframes are often created using tools like Adobe XD or Figma and include elements like typography, color schemes, and detailed user interface elements.</p>
<h4 id="heading-advantages-of-high-fidelity-wireframing">Advantages of High-Fidelity Wireframing</h4>
<p>Some advantages of high-fidelity wireframes include:</p>
<ul>
<li>Detailed Representation: High fidelity wireframes provide a more detailed representation of the final product, making it easier to communicate the design vision to stakeholders.</li>
<li>Efficient Testing: High fidelity wireframes can be used for testing purposes, helping designers identify any usability issues before the development phase begins.</li>
<li>Better Visuals and User Experience: High fidelity wireframes are aesthetically pleasing and provide a more realistic view of the final product which helps users visualize the design better. It gives the users better understanding of how to interact with the product.</li>
</ul>
<h4 id="heading-disadvantages-of-high-fidelity-wireframing">Disadvantages of High-Fidelity Wireframing</h4>
<ul>
<li>Time-consuming: High fidelity wireframes take longer to create than low-fidelity wireframes. It can be challenging to complete high fidelity wireframes withing tight project timelines. </li>
<li>Cost: High fidelity wireframes can be expensive to create, as it requires a significant amount of skill and effort from the design team.</li>
<li>Limited Flexibility: High fidelity wireframes are not as flexible as low-fidelity or mid-fidelity wireframes. They are detailed and specific, which makes it challenging to change the design direction once they are completed.</li>
</ul>
<p>You'll see an example of this in a moment during my process walkthrough.</p>
<h4 id="heading-why-you-might-want-to-use-high-fidelity-wireframes">Why You Might Want to Use High-Fidelity Wireframes</h4>
<ul>
<li>Hand-off to Development: High-fidelity wireframes provide accurate visuals, detailed specifications, and design assets that facilitate the handoff process to developers. </li>
<li>High Visual Realism: High-fidelity wireframes closely resemble the final visual design and provides a realistic representation of the user interface, to potential users and stakeholders.</li>
<li>User Experience Validation: High-fidelity wireframes allow you to test and validate the user experience more accurately. With realistic visuals, you can simulate user interactions, flows and transitions, enabling users to provide meaningful feedback and uncover potential usability issues before development.</li>
<li>Design Consistency: By including more visual elements than the mid-fidelity wireframes, high-fidelity wireframes helps establish a consistent visual hierarchy and design language that can be carried over to the final product.</li>
<li>Style Guide Creation: High-fidelity wireframes play a crucial role in developing a style guide for your design. They establish the visuals and design assets that will be used till the launch of the product. </li>
</ul>
<h2 id="heading-my-wireframing-process">My Wireframing Process</h2>
<p>I worked on a mobile app to help pregnant mothers through their pregnancy journey. I started with paper sketches, moved on to mid fidelity wireframes, and then did my high fidelity wireframes. </p>
<h3 id="heading-step-1-paper-sketches">Step 1 – Paper Sketches</h3>
<p>For my paper sketches, I used the Crazy Eights(8s) method, which is a very quick way to put out ideas and inspirations. </p>
<p>Basically, I took out my drawing book, drew 8 identical phone frames and sketched out how I wanted my design to look using a pen. The sketches were more elaborate than usual, because I wanted to move straight to doing mid-fidelity wireframes.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/05/IMG_20230507_092729_458.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Crazy Eights sketches</em></p>
<h3 id="heading-step-2-moving-to-mid-fidelity-wireframes">Step 2 – Moving to Mid Fidelity Wireframes</h3>
<p>Next up, I opened a new Figma file on my laptop and transferred my sketches on paper to phone mockups on Figma. </p>
<p>First, I chose the frame I wanted to use for the designs – Iphone 13 pro.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/05/Phone-frame1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Choose the phone you want to use</em></p>
<p>Then I used my sketches as a guide. It was mostly replicating what I already had on paper, digitally.</p>
<p>Next I used rectangles to denote images, and lorem ipsum (dummy text) for parts of the design which needed long texts.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/05/frame-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adding rectangles and dummy text</em></p>
<p>Prior to this, I had created a style guide. So I just got the icons from the style guide.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/05/Group-10.png" alt="Image" width="600" height="400" loading="lazy">
<em>My Mid-fidelity Wireframes</em></p>
<h3 id="heading-step-3-creating-high-fidelity-wireframes">Step 3 – Creating High Fidelity Wireframes</h3>
<p>This was the last phase of my wireframing. Here, I added colours, images, and real text to my designs.</p>
<ol>
<li>I started by adding colours to the mid-fidelity screens.</li>
<li>I also wrote out real text for the screens, making sure the copy matched the branding and purpose of the app.</li>
<li>Lastly, I added illustrations and images where needed, helping users relate to the design.</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/05/frame-1-high-fidelity.png" alt="Image" width="600" height="400" loading="lazy">
<em>Example of high fidelity wireframing</em></p>
<p>In high-fidelity wireframing, once the overall structure is in place, you can start adding more details and refining the design. This includes adding visual elements such as images, icons, and typography, as well as defining interactions and transitions.</p>
<p>Share the high-fidelity wireframe with stakeholders, users, or other team members, and gather feedback. Use this feedback to refine the design and make any necessary changes. </p>
<p>Once the wireframe has been approved and refined, finalize it by adding annotations, notes, and any other necessary documentation. The wireframe should be detailed enough to provide a clear understanding of the design to developers, but not so detailed that it hinders the design process.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2023/05/Group-9.png" alt="Image" width="600" height="400" loading="lazy">
<em>Completed High Fidelity Wireframes</em></p>
<p>Note that you can use any type of wireframe you would like to, depending on the specific project you're working on, the stage of the project and your objectives. You should also consider the complexity of the design, the available time and resources, and the needs of the stakeholders and users when determining the appropriate fidelity level for your wireframes. </p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Wireframing is an essential step in the design process that helps ensure a successful outcome. It enables designers to visualize the layout and functionality of a platform before investing significant time and resources into coding and development. </p>
<p>Incorporating wireframing into your design process can lead to more efficient, effective, and user-friendly designs.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Create a Style Guide in Figma ]]>
                </title>
                <description>
                    <![CDATA[ Style guides are important to help you deliver a consistent brand experience.  As a UI/UX designer, creating style guides is indispensable if you hope to create great user experiences and interfaces.  In this article, you will learn what a style guid... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-create-a-style-guide-in-figma/</link>
                <guid isPermaLink="false">66d03a220c53e89db44b6a09</guid>
                
                    <category>
                        <![CDATA[ Style Guide ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Design ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Faith Olohijere ]]>
                </dc:creator>
                <pubDate>Mon, 08 Aug 2022 14:35:53 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/07/style-guide.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Style guides are important to help you deliver a consistent brand experience. </p>
<p>As a UI/UX designer, creating style guides is indispensable if you hope to create great user experiences and interfaces. </p>
<p>In this article, you will learn what a style guide is, the importance of a style guide, and how to create one step by step.</p>
<h2 id="heading-what-is-a-style-guide">What is a Style Guide?</h2>
<p>A User Interface (UI) style guide is a standard that contains all the necessary details about the UI elements and interactions that occur within a product. It helps establish brand consistency. </p>
<p>A typical style guide contains information about typography, colours, layouts, components, and everything else that gives the UI its feel and look.</p>
<p>Creating a great and concise style guide for your product makes sure that the look and feel of the brand remains consistent.</p>
<h2 id="heading-why-create-a-style-guide">Why Create a Style Guide?</h2>
<p>Having a style guide is important for various reasons, which include:</p>
<ol>
<li>It helps all your user interface elements remain consistent</li>
<li>It's a learning resource for newcomers and helps them onboard more quickly.</li>
<li>It improves communication between designers and developers.</li>
<li>And it can help boost your productivity.</li>
</ol>
<h2 id="heading-what-should-a-style-guide-include">What Should a Style Guide Include?</h2>
<p>Some of the components of a typical style guide include:</p>
<p><strong>Typography</strong>: this plays a huge role in every design. Each font you choose for your designs conveys a message to your user. Typography in your designs should be legible, easy to read and understand, and visually appealing. </p>
<p>Your style guide should include typefaces, font sizes and font weights. Limit your design to 2-3 type faces in order for your design to look neat and professional. Remember to choose typefaces that complement each other.</p>
<p><strong>Colour palette:</strong> the right choice of colours for your designs can help determine the reaction of your audience, make them feel comfortable, and increase user satisfaction. You should have three categories of colours in your style guide: primary, secondary and neutral colours.</p>
<p>Primary colours are colours that are displayed frequently across all screens and elements in your design.</p>
<p>Secondary colours complement the primary colour(s). You can use them for micro interactions like arrows, progress bars, and even headings.</p>
<p><strong>Iconography:</strong> this is the use of mostly symbols, figures, and images to convey more meaning to a user. Icons make communication easy and they are typically universal. You can choose a collection of icons that you'll use in your designs to keep them consistent. </p>
<p><strong>Layout grids:</strong> a grid is a system that aligns a page based on rows and columns. Grids are indispensable in establishing consistency across all screens in a design. You cannot afford not to include a grid system in your style guide.</p>
<p><strong>UI Elements:</strong> UI elements in a style guide typically includes buttons, input fields, checkboxes and alerts and notifications. Elements are essential, as a user cannot function effectively without them in your design. You should include these elements with their specific states – default, active, disabled and hover.</p>
<h2 id="heading-how-to-create-a-style-guide-in-figma">How to Create a Style Guide in Figma</h2>
<p>Now we'll create a style guide from scratch in Figma, including the elements listed above.</p>
<p>Open your Figma file and select a frame.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/Annotation-2022-07-21-154316.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-choose-a-colour-palette">Choose a Colour Palette</h3>
<p>Getting the right colours is very important for creating great designs. You must be able to pick colours that complement each other for your style guide. </p>
<p>If you don't have a specific colour palette in mind, you can try sites like <a target="_blank" href="https://www.freecodecamp.org/news/p/c604ed5f-d6ae-41bf-8449-ae227211c216/colors.muz.li">colors.muz.li</a> or <a target="_blank" href="https://www.freecodecamp.org/news/p/c604ed5f-d6ae-41bf-8449-ae227211c216/coolors.co">coolors.co</a> to get colour inspiration. </p>
<p>If you're working with a client, they may already have a colour palette in mind.</p>
<h4 id="heading-step-1-choose-your-color-categories">Step 1: Choose your color categories</h4>
<p>Choose three categories of colours: a primary colour, a secondary colour, and greys (neutral).</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/Annotation-2022-07-21-165534.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h4 id="heading-step-2-generate-shades-for-the-colours">Step 2: Generate Shades for the Colours</h4>
<p>Now you'll need to generate shades for your colours. Generating shades for your colour palette helps cater to varied use cases. It makes it convenient for when you have to tweak the colour opacity or brightness. </p>
<p>The Figma plugin <a target="_blank" href="https://www.figma.com/community/plugin/943569346291474506">Tints and Shades</a> helps you generate colour shades.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/Annotation-2022-07-21-171152.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Select a colour and click on <a target="_blank" href="https://www.figma.com/community/plugin/943569346291474506">Tints and shades</a> to generate the shades.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/Annotation-2022-07-21-171330.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/Annotation-2022-07-21-171638.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Auto layout (Shift + A) the generated shades to give them one frame, and arrange them vertically/horizontally.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/Annotation-2022-07-21-172303.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h4 id="heading-step-3-make-the-colour-shades-into-colour-styles">Step 3: Make the colour shades into colour styles.</h4>
<p>To make the generated colours <em>styles</em>, first select the frame and hit the Enter key in order to select the boxes in the frame individually.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/ggjhdch.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Rename the individual boxes, using the name of the colour category differentiating with numbers – for example grey 01, and so on.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/Annotation-2022-07-21-173305.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you renamed your boxes successfully, the names will appear on the left hand side of your canvas. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/faiiiuytgt.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>After you do this, you will need to make your colours into styles. You might use the Figma plugin <a target="_blank" href="https://www.figma.com/community/plugin/820660579767995949">Styler</a> to style your colours. Click on the frame, selecting individual boxes using the Enter key.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/An.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/bbbbb.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you do this correctly, you will get a notification as you can see in the image above.</p>
<p>Repeat these steps for all colour categories – grey, primary, and secondary.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/116890.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-choose-your-typography">Choose Your Typography</h3>
<p>Choosing the right font family, font sizes, and font weights is very important for a good style guide. If you get confused on how to generate or choose a font family, weight, and size, you can use the Material Design type scale <a target="_blank" href="https://www.freecodecamp.org/news/p/c604ed5f-d6ae-41bf-8449-ae227211c216/material.io/design/typography">material.io</a> to generate type scales.</p>
<h4 id="heading-step-1-open-a-frame-after-choosing-a-font-of-your-choice">Step 1: Open a frame after choosing a font of your choice.</h4>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/Annotation-2022-07-21-154316-1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h4 id="heading-step-2-establish-the-page-hierarchy">Step 2: Establish the page hierarchy</h4>
<p>Decide on how many headlines, subtitles, body and captions your design might have. Remember that you can communicate hierarchy through differences in font weight (light, medium, regular), size, letter spacing, and case. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/Annotation-2022-08---2-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h4 id="heading-step-3-make-your-fonts-styles">Step 3: Make your fonts styles</h4>
<p>After choosing your font weights, size, and letter spacing, it's time to make them styles. Just like you did for your colour palette, select the fonts and use the plugin <a target="_blank" href="https://www.figma.com/community/plugin/820660579767995949">Styler</a> to create them as styles. </p>
<p>NB: Choose smaller font sizes when designing for mobile (16px, 18px, and so on) and larger font sizes for web.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/Annotation-2022-08--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>As you can see in the image above, your text styles will appear on the right hand side of your screen.</p>
<h3 id="heading-choose-your-iconography">Choose Your Iconography</h3>
<p>Next up, we have iconography. Icons are an essential part of our designs, as they visually express actions and objects in our interfaces. They help the designer further communicate the meaning of an action or screen, like the home icon, search icon, and more. </p>
<p>You can get icons from plugins like <a target="_blank" href="https://www.figma.com/community/plugin/735098390272716381">Iconify</a>, <a target="_blank" href="https://www.figma.com/community/plugin/774202616885508874">Font Awesome</a>, and libraries like <a target="_blank" href="https://www.freecodecamp.org/news/p/c604ed5f-d6ae-41bf-8449-ae227211c216/feathericons.com">feathericons</a> and <a target="_blank" href="https://www.freecodecamp.org/news/p/c604ed5f-d6ae-41bf-8449-ae227211c216/fonts.google.com/icons">Google icons</a>. </p>
<h4 id="heading-step-1-select-a-frame">Step 1: Select a frame.</h4>
<p>Go to the frame tool and select a frame for your iconography.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/Anno.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h4 id="heading-step-2-get-all-your-icons">Step 2: Get all your icons</h4>
<p>Now you'll need to get the icons you need for your design. Make sure you include different states of each icon, like filled, outline, and so on.</p>
<p>NB: make sure the sizes of your icons are consistent.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/Annotation-2022.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Violà! You now have your iconography. To know more about iconography, check out <a target="_blank" href="https://www.freecodecamp.org/news/p/c604ed5f-d6ae-41bf-8449-ae227211c216/designsystems.com/icons">design system icons</a>.</p>
<h3 id="heading-setup-your-layout-grids">Setup Your Layout Grids</h3>
<p>Grids are a fundamental part of any style guide as they help achieve better alignment, hierarchy, and consistency in your designs.</p>
<p>Setting a standard for your grid depends on whether you are designing for web or mobile – each has different standards. For example, you should use a 960 grid (12 or 16 columns) when designing for web.</p>
<p>First, go ahead and select a frame.</p>
<h4 id="heading-step-1-add-a-layout-grid">Step 1: Add a layout grid</h4>
<p>Then get your layout grid from the left hand panel of your canvas.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/layout.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Input your desired number of columns for the frame and values for the margin and gutter (that is the vertical part of the frame).</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/grid3.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Next up, you will need to include grids for the horizontal part of the frame, or the rows. Input your desired value for rows, margins, and gutter.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/gridddd.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-choose-your-components">Choose your components</h3>
<p>The components you choose play an important part in your user interface. Components typically include text fields, button states, checkboxes, alerts and notifications.</p>
<h3 id="heading-define-your-input-fields">Define Your Input fields</h3>
<p>Input fields, as the name implies, allow users to input text in a UI. And they need to be styled like everything else.</p>
<p>First, as always, select a frame.</p>
<h4 id="heading-step-1-design-input-fields-in-various-states">Step 1: Design input fields in various states</h4>
<p>You'll want to design each input field according to its state, like default, disabled, active, and error.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/Text-fields--2-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h4 id="heading-step-2-add-icons-to-your-input-fields">Step 2: Add icons to your input fields.</h4>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/Text-fields--1--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-design-your-buttons">Design Your Buttons</h3>
<p>Your buttons should include primary buttons and secondary buttons in their different states, like disabled, default, hover and pressed. </p>
<p>Primary buttons are usually strong visual indicators to help users complete their journeys – for example 'next', 'submit', and so on. Secondary buttons are usually the alternatives to the primary actions, like 'cancel', 'back', and so on.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/jjjjjjjjjjjjjjjjj.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>The image above shows two buttons. The button on the left is a primary button while the button on the right is a secondary button.</p>
<p>First, select a frame.</p>
<h4 id="heading-step-1-design-the-primary-button">Step 1: Design the primary button</h4>
<p>First you'll want to design a primary button in its various states: default, hover, pressed and disabled.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/Components--2--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h4 id="heading-step-2-design-the-secondary-button">Step 2: Design the secondary button</h4>
<p>Then you'll design a secondary button in its various states: default, hover, pressed and disabled.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/Components--1--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h4 id="heading-step-3-check-buttons-with-icons">Step 3: Check buttons with icons</h4>
<p>You might want to check how the various buttons would look like with icons. Add icons to your primary and secondary buttons in all their states.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/Components-1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-checkboxes">Checkboxes</h3>
<p>You'll use checkboxes mostly when users might need to select more than one option from a list – that is, each checkbox is independent of the others in the list/form.</p>
<p>First, select a frame.</p>
<h4 id="heading-step-2-design-your-checkboxes">Step 2: Design your checkboxes</h4>
<p>You'll want to include various states like enabled, disabled, hover, focused and pressed states. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/Component-1--1-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-alerts-and-notifications">Alerts and notifications</h3>
<p>With real time alerts, users can get notifications of reminders, errors, successes and so on. This reduces the risk of hacking, incorrect input, and loss of important information.</p>
<p>First, select a frame.</p>
<h4 id="heading-step-1-design-notification-and-alerts">Step 1: Design notification and alerts</h4>
<p>When you design your alerts, make sure to use the correct icons for warning, error, success and success states.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/Alerts-and-notifications--1-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-live-style-guide-examples">Live Style Guide Examples</h2>
<p>Here is Mozilla's style guide:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/Cursor_and_Feature_Card__Right_Half___Mozilla_Protocol.png" alt="Image" width="600" height="400" loading="lazy">
<em><a target="_blank" href="https://design.firefox.com/">Mozilla Style Guide</a></em></p>
<p>Here is freeCodeCamp's live style guide:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/freeCodeCamp_-_Style_Guide.png" alt="Image" width="600" height="400" loading="lazy">
<em><a target="_blank" href="https://design-style-guide.freecodecamp.org/">freeCodeCamp's Design Style Guide</a></em></p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Creating a style guide is a fundamental step in product development for any organisation. And as a UI/UX designer, this is something you cannot avoid.</p>
<p>Remember that your style guide isn't fixed and that you can make updates at any point in time. Practice till you get it just the way you want it.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Resize Elements in Figma ]]>
                </title>
                <description>
                    <![CDATA[ In this article, we'll learn a few different ways to resize elements and groups in Figma (in addition to the default method). We'll also learn how to resize frames without moving elements in the frames. In Figma, there are other ways to resize elemen... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-resize-elements-in-figma/</link>
                <guid isPermaLink="false">66d03a2b0c53e89db44b6a0d</guid>
                
                    <category>
                        <![CDATA[ Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ figma ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Design ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Faith Olohijere ]]>
                </dc:creator>
                <pubDate>Tue, 26 Apr 2022 23:05:31 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/04/pexels-pixabay-163822.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>In this article, we'll learn a few different ways to resize elements and groups in Figma (in addition to the default method). We'll also learn how to resize frames without moving elements in the frames.</p>
<p>In Figma, there are other ways to resize elements apart from the default method. So don't fret if using the default approach dose not give you the result you need.</p>
<p>First we'll look at the default method so you're familiar with it, and then we'll see some other ways to resize elements and groups as well.</p>
<h2 id="heading-how-to-resize-in-figma-default-method">How to Resize in Figma – Default Method</h2>
<p>The default method for resizing something in Figma is to just <em>click and drag</em>. To resize an element with the default method, all you need to do is select your object and use any of the transformation controls and resize it until you're content.</p>
<p>Holding down SHIFT on your keyboard while doing this will help constrain your proportions.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/-BE1B5C7A-6409-4FD0-A33B-FAF508AF4283-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Sometimes, the default approach might not work on some elements. Click and drag in those cases might lead to the object being distorted. So what can you do instead?</p>
<h2 id="heading-how-to-resize-an-object-with-properties-in-figma">How to Resize an Object with Properties in Figma</h2>
<p>To resize an object really precisely, go to the properties inspector located at the top right part of your file. Find the height and width fields and input the values of your choice. You could also drag the values with your mouse cursor. You can always use this method to get the exact proportions you need, like 140 x 140, 100 x 50, and so on.</p>
<p>Remember, whatever values you input in the properties fields will be reflected in your frame so, it's important to choose proportions that wouldn't distort your frame. For example, a 150 x 20 element will likely look distorted.</p>
<p>You can always experiment with values until you resize the element to your satisfaction. It's all up to you.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/-95A14028-657E-4B03-9C85-7D4847874ED8--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-how-to-resize-an-object-with-the-scale-tool-in-figma">How to Resize an Object with the Scale Tool in Figma</h2>
<p>The Figma scale tool is located at the top left corner of your screen. To use the scale tool, select your frame, click on the scale tool, and drag using the scale controls. </p>
<p>This tool is especially useful when you're dealing with resizing icons. Some icons get out of shape when you're trying to resize them. The scale tool helps make sure your element or the elements of your frame are not distorted. </p>
<p>Scaling works for text objects, frames, components, and so on. You can use the scale tool to resize elements anytime you want to.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/-1C7FE77E-7A92-4633-88BC-CC1EC9A36F35--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-how-to-resize-objects-with-keyboard-shortcuts-in-figma">How to Resize Objects with Keyboard Shortcuts in Figma</h2>
<p>To resize an object with the keyboard shortcut, select the object, hold down <strong>CTRL</strong>, and use the <strong>arrow keys</strong> to resize your object. You can increase or decrease the width or height by 1px at a time. You can use the keyboard shortcuts in any situation.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/278540_VideoBannerHotkeyHighlight-CtrlShiftArrows_Web_082818.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Tip: Holding down <strong>SHIFT</strong> on your keyboard at the same time will speed up your resizing to 10px at a time.</p>
<h2 id="heading-how-to-resize-without-moving-objects-inside-the-frame-in-figma">How to Resize without Moving Objects Inside the Frame in Figma</h2>
<p>Sometimes, while trying to resize frames containing input fields, you'd find that some objects move along with the frame because of <em>constraints.</em> </p>
<p>Of course, that isn't the desired result. To ignore an element's constraints while resizing, hold <strong>CTRL</strong> while you drag. Also, holding <strong>Ctrl + Alt</strong> while dragging will resize your element proportionally.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/-4F83A341-FA5A-4948-8E2D-E961C5361301-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Knowing how to resize elements can really help you create equal, beautiful frames for your designs.</p>
<p>Good luck with your Figma designs!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ What is Glassmorphism? How to Create a Glass Card in Figma ]]>
                </title>
                <description>
                    <![CDATA[ Glassmorphism is a growing trend in user interface design. It makes your designs look modern and elegant. ‌‌‌‌In this article, we'll be learning about what glassmorphism means, how accessible it is, and how to design a simple glass card.‌‌ What is Gl... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/glassmorphism-how-to-create-a-glass-card-in-figma/</link>
                <guid isPermaLink="false">66d03a1edcbab93f8b58df89</guid>
                
                    <category>
                        <![CDATA[ Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ figma ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Design ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Faith Olohijere ]]>
                </dc:creator>
                <pubDate>Wed, 13 Apr 2022 00:04:19 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/04/Glass-Card.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Glassmorphism is a growing trend in user interface design. It makes your designs look modern and elegant.</p>
<p>‌‌‌‌In this article, we'll be learning about what glassmorphism means, how accessible it is, and how to design a simple glass card.‌‌</p>
<h2 id="heading-what-is-glassmorphism">What is Glassmorphism?</h2>
<p>Glassmorphism is a style which, as the name implies, uses properties of glass to enhance your designs. It gives a translucent or transparent look and feel to its elements.</p>
<p>Glassmorphic elements and shapes work really well on vibrant, colorful backgrounds which accentuate the glass effect. Glassmorphism helps you add visual hierarchy to your designs and puts focus on the content you want to highlight.</p>
<h2 id="heading-accessibility-of-glassmorphism">‌‌Accessibility of Glassmorphism</h2>
<p>Glass designs aren't the best if you're designing for people who have vision problems. You'll have to be very careful when choosing colors and fonts to make sure screen readers and other devices can properly interpret the designs.</p>
<p>‌‌Also, using glassmorphism can cause your site to become slow and can also increase battery usage.</p>
<p>If you can work around these issues, however, glass designs do look really, really cool – so we'll learn how to make them here.</p>
<p>Here are some tips to help increase accessibility of your glass designs:</p>
<ol>
<li>Use the transparency or blur effect sparingly/moderately. Don't overuse it. The effect looks best when used on only two or three elements in your design.</li>
<li>Establish a clear sense of hierarchy. The right spacing between the cards in the design layout and making sure the right elements stand out will help with accessibility issues. Remember, a strong visual hierarchy helps give users the right visual clues.</li>
<li>Set the right background. Make sure the background isn't bland or dull. Using vibrant colors as backgrounds will help accentuate the effect. Of course, this will also achieve a very aesthetically pleasing look.</li>
<li>Using larger fonts can make your glass designs more accessible. Also, choose fonts that contrast with the glass background.</li>
</ol>
<h2 id="heading-glassmorphic-design-examples">Glassmorphic Design Examples</h2>
<p>To give you a better idea of what glassmorphic designs look like, here are a few examples of websites that apply this technique:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/2022-04-01--19--1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Glassmorphic Website by Sahid Aldi Susilo</em></p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://www.uplabs.com/posts/glassmorphism-web-ui-design#">https://www.uplabs.com/posts/glassmorphism-web-ui-design#</a></div>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/2022-04-01--20--1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Glassmorphic design by Stefan Brown‌</em></p>
<p>You can see this design <a target="_blank" href="https://dribbble.com/shots/15314731-UI-UX-Designer-Landing-Page">here</a>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/2022-04-01--22--1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Glass card by Pratheek Purohit</em></p>
<p>You can see this design <a target="_blank" href="https://www.freecodecamp.org/news/glassmorphism-how-to-create-a-glass-card-in-figma/%E2%80%8Chttps://dribbble.com/shots/15644676-Glass-card-effect-Glassmorphism">here</a>.</p>
<p>Let's see how we can recreate something similar to the last example.</p>
<h2 id="heading-how-to-create-a-glass-card-in-figma">How to Create a Glass Card in Figma</h2>
<p>Glass cards are simply cards created using glassmorphism. The cards could be images of credit cards, profile cards, invoice cards, and more.</p>
<p>Follow the steps below to create a glass credit card in Figma.</p>
<h3 id="heading-step-1-set-a-colorful-background">Step 1 – Set a Colorful Background</h3>
<p>A colorful background is essential as it helps accentuate your glass design and make it stand out. You could just use the <a target="_blank" href="https://www.figma.com/community/plugin/744909029427810418/uiGradients">uiGradients plugin</a> to select a gradient of your choice like I did below.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/2022-04-01-1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-step-2-draw-a-shape">Step 2 – Draw a Shape</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/2022-04-01--1--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Here, we'll imitate the shape of a physical credit card, which looks like a rectangle. </p>
<p>Draw a rectangular shape with the dimensions 640×400, and set the corner radii to 40pt.</p>
<h3 id="heading-step-3-apply-fill-using-gradient">Step 3 – Apply Fill Using Gradient</h3>
<p>Next, you need to fill the shape with translucent colors like white. Both colors of the gradient should be white but they should be set to different opacity levels.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/2022-04-01--2--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/2022-04-01--3--2.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-step-4-apply-background-blur">Step 4 – Apply Background Blur</h3>
<p>Set the blur value to 40, or any value of your choice depending on how blurred you want it to look.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/2022-04-01--4--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/2022-04-01--5--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-step-5-add-strokes-to-create-borders">‌‌Step 5 – Add Strokes to Create Borders</h3>
<p>Adding borders makes your card look more polished and elegant. It helps to have a sharper contrast through thicker and more distinguishable borders.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/2022-04-01--6--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-step-6-apply-a-drop-shadow">‌Step 6 – Apply a Drop Shadow</h3>
<p>Using a drop shadow effect helps strengthen the visual hierarchy.</p>
<p>Set the blur value to 24 and the spread to -1.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/2022-04-01--7--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-step-7-add-your-content">‌Step 7 – Add Your Content</h3>
<p>You can now add content to your card like text, a logo, and so on. <a target="_blank" href="https://www.figma.com/community/plugin/735098390272716381/Iconify">Using the Iconify plugin</a> like I did to get your Visa logo and EMV chip will save you a whole lot of time. </p>
<p>Fill your content with the color white, decrease the opacity, and set the blending mode of the layer to <strong>Overlay</strong>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/2022-04-01--12-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>The frost effect adds polish to your design. To apply this effect, <a target="_blank" href="https://www.figma.com/community/plugin/752558325552095625/Noise">simply use the noise plugin</a> to fill the image with noise. </p>
<p>If you already have the plugin installed, go straight to <strong>plugins</strong> and click on noise. If you don't, go to <a target="_blank" href="https://www.figma.com/community/plugins">https://www.figma.com/community/plugins</a> to install the plugin.</p>
<p>Once you installed and selected the plugin, set the blending mode of the layer to <strong>Overlay</strong> and decrease the opacity.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/2022-04-01--13--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>When you apply the noise plugin, the card will look like this:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/2022-04-01--14--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Next, you change blending mode to <strong>Overlay</strong>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/2022-04-01--15--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Decrease the opacity of your card. Play around with the opacity until it suits your taste.</p>
<p>You can reduce the opacity by clicking on any number on your keyboard – 2 for 20%, 3 for 30%, 4 for 40% and so on.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/04/2022-04-01--17--4.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>And there you have it – a beautiful and glassy-looking card.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Adding the glassmorphic affect to your designs is pretty simple. As the glassmorphism trend gets more popular, knowing how to create glass designs might really come in handy in the future.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Create Color and Text Styles in Figma ]]>
                </title>
                <description>
                    <![CDATA[ In this article, we'll be learning how to create, edit, and use color and text styles in Figma. We'll also learn how to combine color and text styles and use them to create beautiful designs. Styles help you simplify your workflow, keep text and laye... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-create-color-and-text-styles-in-figma/</link>
                <guid isPermaLink="false">66d03a270c53e89db44b6a0b</guid>
                
                    <category>
                        <![CDATA[ Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ figma ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Design ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Faith Olohijere ]]>
                </dc:creator>
                <pubDate>Fri, 25 Mar 2022 21:24:53 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/03/pexels-sharon-mccutcheon-1212407.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>In this article, we'll be learning how to create, edit, and use color and text styles in Figma. We'll also learn how to combine color and text styles and use them to create beautiful designs.</p>
<p>Styles help you simplify your workflow, keep text and layers consistent, and save valuable time.</p>
<h2 id="heading-how-to-use-color-styles-in-figma">‌‌How to Use Color Styles in Figma</h2>
<p>You can apply color styles to text, background, and strokes. You can also apply color styles to shapes created in your designs or to elements or sections of the particular website or mobile app you are designing. These could include buttons, rectangles, the top and bottom bars, and more.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-25--4-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You can also use color styles for images or gradients.</p>
<h3 id="heading-how-to-create-a-color-style">How to create a color style</h3>
<p>To create a color style, follow these steps:</p>
<ul>
<li>Create a new shape and go to <strong>Fill.</strong> Fill your layer with any color of your choice.</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-19--15--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ul>
<li>Click on the <strong>four dots</strong> icon to trigger the Color Styles modal.</li>
<li>Click on the <strong>+</strong> icon in the right-hand corner of the Color Styles modal.</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-19--16--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ul>
<li>Give your style a preferred name (let's say Color Style 1) and click the <strong>Create Style</strong> button. </li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-19--17--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Remember, you can create as many Color Styles as you would like.‌‌</p>
<h3 id="heading-how-to-apply-a-color-style-to-a-layer">How to apply a color style to a layer</h3>
<p>Select your layer and go to the <strong>Fill</strong> section in the right-hand sidebar.</p>
<ul>
<li>Click the <strong>four dots</strong> icon in the right corner of the Fill section to trigger the Color Styles modal.</li>
<li>Select your preferred color style.</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-19--19-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Done!</p>
<h3 id="heading-how-to-edit-a-color-style">‌‌How to edit a color style</h3>
<p>Click on the file's gray backdrop to display your styles.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-19--20-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ul>
<li>Right-click on the <strong>Color Style</strong> and select <strong>Edit style</strong> in the menu.</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-19--21--3.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-how-to-delete-a-color-style">How to delete a color style</h3>
<p>Deleting a color style is really easy to do.</p>
<ul>
<li>Click on the file's gray backdrop to display your styles.</li>
<li>Right-click on the <strong>Color Style</strong> and select <strong>Delete Style.</strong></li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-19--21--2.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-how-to-use-text-styles-in-figma">‌How to Use Text Styles in Figma</h2>
<p>You can also apply styles to text. It could be a whole block of text or part of the text in a block. This helps define the style of your headers.</p>
<p>To create a new text style, start by creating a new text layer and add some settings. For example:</p>
<ul>
<li>Font family: Roboto</li>
<li>Font size: 30</li>
<li>Font weight: Regular</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-19--22-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ul>
<li>Click on the four dots icon in the Text section to trigger the text modal.</li>
<li>Click on the + icon in the right corner of the Text Styles modal.</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-19--23--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ul>
<li>Give your style your preferred name (let's say Text Style 1) and click on the <strong>Create Style</strong> button.</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-19--24--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-how-to-apply-a-text-style-to-a-layer">‌‌How to apply a text style to a layer</h3>
<p>First off, select your layer and go to the <strong>Text</strong> section in the right-hand sidebar.</p>
<p>Then click the four dots icon in the right corner of the <strong>Text</strong> section to trigger the text styles modal.</p>
<p>Finally, just select your preferred <strong>Text Style.</strong>‌‌</p>
<h3 id="heading-how-to-delete-a-text-style">How to delete a text style</h3>
<p>To delete a text style, you'll need to click on the file's gray backdrop to display your styles. Then you can just right-click on the text style you want to delete and select <strong>Delete Style</strong>.</p>
<h3 id="heading-how-to-combine-color-and-text-styles">How to combine color and text styles</h3>
<p>You can also combine text and color styles while designing. You can add a color style to different text objects. This is an extra step which can make your system easier to maintain especially when you don't have to create different text styles for every color combination.</p>
<ul>
<li>To save color styles specifically for text: Create a text box and input your text. Follow the steps of '<strong>How to apply a color style to a layer</strong>'.</li>
<li>When you get to where you are supposed to give your style a description/name, input your text description, for example sub-heading, page heading, button text, and so on.</li>
</ul>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-25--1--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Note that using and creating styles when designing is entirely up to you. No one will know what color/text styles you use in your design unless you let them know. Like I said, it's entirely up to you! </p>
<p>However, styles help keep your designs consistent and creating great styles can help make your user experience seamless. </p>
<p>‌‌‌‌‌‌‌‌‌‌</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Use Plugins in Figma ]]>
                </title>
                <description>
                    <![CDATA[ In this article, you'll learn how to install plugins in Figma. You'll also get to know some really cool Figma plugins that every designer and developer should use.  Plugins help make your design process easier and smoother. From image assets to embed... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/plugins-in-figma/</link>
                <guid isPermaLink="false">66d03a35dcbab93f8b58df91</guid>
                
                    <category>
                        <![CDATA[ Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ figma ]]>
                    </category>
                
                    <category>
                        <![CDATA[ plugins ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Design ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Faith Olohijere ]]>
                </dc:creator>
                <pubDate>Mon, 14 Mar 2022 20:42:03 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/03/pexels-picjumbocom-196645.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>In this article, you'll learn how to install plugins in Figma. You'll also get to know some really cool Figma plugins that every designer and developer should use. </p>
<p>Plugins help make your design process easier and smoother. From image assets to embedding maps into your designs, plugins are easy to use and they help you create beautiful, complex designs in less time.</p>
<h2 id="heading-how-to-install-plugins-on-figma">How to Install Plugins on Figma</h2>
<p>Figma makes it easy for you to install plugins which are quite essential for your designs. You can install plugins from different places.</p>
<h3 id="heading-how-to-install-a-plugin-from-your-account">How to install a plugin from your account</h3>
<p>To install a plugin from your account, you just have to:</p>
<ol>
<li>Login to your Figma account</li>
<li>Click on <strong>Explore Community</strong> at the top-left corner of your screen:</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-11-1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ol start="3">
<li>Select <strong>Plugins</strong> from the options at the top:</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-11--1--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ol start="4">
<li>Search for your preferred plugin and install it:</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-11--2--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Click on the plugin name to open the plugin page and learn more about it.</p>
<p>You can also see plugins already installed on your Figma account.</p>
<h3 id="heading-how-to-install-a-plugin-in-the-file">‌‌How to install a plugin in the file</h3>
<ol>
<li>Right click on the canvas – your cursor could be positioned anywhere.</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-11--6-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ol start="2">
<li><p>Hover your cursor on <strong>Plugins,</strong> which will bring up all installed plugins.</p>
</li>
<li><p>Scroll down to <strong>Browse plugins in Community</strong> and click on it. This will open Figma Community in a separate tab.</p>
</li>
</ol>
<h2 id="heading-how-to-add-plugins-on-a-pc">‌‌‌‌How to Add Plugins on a PC</h2>
<p>‌‌There are quite a number of ways to add plugins to your designs.‌‌</p>
<h3 id="heading-add-plugins-from-the-file-menu">Add plugins from the File menu</h3>
<p>Access the File menu at the top left corner of your screen in Figma. The File menu contains functions like edit, view, and text. You can also run your plugins from the menu.</p>
<ol>
<li>Click on <strong>File Menu</strong></li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-11--3--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ol start="2">
<li>Hover your cursor on <strong>Plugins,</strong> which will bring up all your installed plugins.</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-11--4-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ol start="3">
<li>Click on your preferred plugin and apply it to your design.</li>
</ol>
<h3 id="heading-how-to-add-plugins-with-ctrl">How to add plugins with Ctrl+/</h3>
<p>This is a <strong>Quick Action</strong> that helps you locate items, including plugins on your Figma file.</p>
<ol>
<li>Press Ctrl +/ on your keyboard. This action will lead to a window pop-up.</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-11--8-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ol start="2">
<li>Input the name of the plugin on the pop-up window. There could be different plugins with similar names. In this case, Figma displays all related plugins so you can pick the exact one you want.</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-11--9-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<ol start="3">
<li>Press <strong>Enter</strong> or click on the plugin, once you find it, to start using it in the file.</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-11--5--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-8-figma-plugins-every-designer-should-know">8 Figma Plugins Every Designer Should Know</h2>
<p>There are lots of really helpful Figma plugins out there. Here's 8 really cool ones.</p>
<h3 id="heading-iconify">‌‌Iconify</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-13--4-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Designs can seem incomplete without icons. From Google Material Icons to Carbon icons, this Figma plugin has a wide collection of icons that many developers use to create beautiful, modern user interfaces.‌‌ </p>
<p>You can get icons in your preferred color, width, height, and size. You can also generate your SVG icon with this plugin.</p>
<h3 id="heading-pattern-hero">‌‌Pattern Hero</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-13--3-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>This plugin helps you with different beautiful patterns for your designs. You can shuffle the patterns, and work with different templates.‌‌ You can also create grids and textures.</p>
<h3 id="heading-unsplash">Unsplash</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-13--6-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You need beautiful pictures to create beautiful designs. This amazing plugin helps you import images for your designs at a single click. </p>
<p>Using Unsplash, you won't need to waste your time searching through various portals for images – you get to download free images directly to Figma. You don't need to worry about the quality of the photos, as Unsplash images are usually of a very high quality. </p>
<h3 id="heading-remove-backgrounds">Remove Backgrounds</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-13--11-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Sometimes we download nice pictures for our designs, only to notice that the background of the image does not fit with the design. </p>
<p>As the name implies, the Remove Backgrounds plugin allows you to remove the background from your images. Just keep in mind that you do have to create a <a target="_blank" href="https://www.freecodecamp.org/news/p/b26f9177-65fe-46df-87cf-c21b8eb903e1/remove.bg.">remove.bg</a> account before you can use this plugin.</p>
<h3 id="heading-mapsicle">Mapsicle</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-13--8-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You don't need to use screenshot images for maps ever again. The Mapsicle Plugin helps you place maps easily into your designs. </p>
<p>With this plugin, you can search for any location in the world, and embed a map into your design. You can also adjust the style of the map.</p>
<h3 id="heading-ui-gradients">UI Gradients</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-13--14-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Gradients make designs look unique. uiGradients is a great gradient palette with tons of ready-to-use gradients for your next amazing design. </p>
<p>With this plugin, you don't have to worry about which hue is perfect for your design. Just go through the gradients and find the combination that works for you.</p>
<h3 id="heading-table-generator">‌‌Table Generator</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-13--12-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Table Generator saves you the time when you're data tables. You just have to copy and paste your data in and voilà! Your table is generated. </p>
<p>This plugin enables you align text, add constraints to your cell frame, and lots more.</p>
<h3 id="heading-storyset">‌‌StorySet</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/2022-03-13--10-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>This is an illustration plugin that lets you add illustrations to your work. StorySet contains hundreds of beautiful illustrations that you can use for your design. What's more, you can edit the illustrations' colors, styles, and backgrounds. You can also animate.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Plugins are essential when you're creating sophisticated designs. Just find the ones useful to you and learn how to add them to your designs.</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
