<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Alex Ruiz</title>
    <description>The latest articles on Forem by Alex Ruiz (@alexruix).</description>
    <link>https://forem.com/alexruix</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F782665%2F367a15af-5ca3-4251-bc7b-4d2e42eb8e2b.png</url>
      <title>Forem: Alex Ruiz</title>
      <link>https://forem.com/alexruix</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/alexruix"/>
    <language>en</language>
    <item>
      <title>The Secret to a Great UI: The Importance of Microinteractions</title>
      <dc:creator>Alex Ruiz</dc:creator>
      <pubDate>Tue, 24 Jan 2023 23:07:28 +0000</pubDate>
      <link>https://forem.com/alexruix/the-secret-to-a-great-ui-the-importance-of-microinteractions-l3k</link>
      <guid>https://forem.com/alexruix/the-secret-to-a-great-ui-the-importance-of-microinteractions-l3k</guid>
      <description>&lt;p&gt;Today we'll talk about something that may seem small but has a big impact on user experience: microinteractions. Have you ever wondered why one app feels more satisfying than another? Chances are microinteractions have something to do with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are microinteractions?
&lt;/h2&gt;

&lt;p&gt;Microinteractions are small actions that the user performs in an interface, such as clicking a button, swiping a finger on a screen, or viewing a notification. These interactions often have visual or auditory feedback to indicate that the action has been successful.&lt;/p&gt;

&lt;p&gt;A microinteraction occurs when, for example, we press the "submit" button on a form, such as loading, and hear a confirmation sound indicating that the message sent successfully. &lt;/p&gt;

&lt;h2&gt;
  
  
  Why are microinteractions important?
&lt;/h2&gt;

&lt;p&gt;Microinteractions are significant because they help improve the user experience by providing feedback on the user's actions. Without these interactions, the user might not be sure if their action succeeded or failed.  &lt;/p&gt;

&lt;p&gt;Additionally, can also improve usability by providing visual cues on how to interact with the interface. For example, a button that changes color when the user hovers the mouse over it visually indicates that it is interactive.&lt;/p&gt;

&lt;p&gt;When a user acts on an interface, it's important to give them feedback to confirm that their action was successful. That may include confirmation animations, such as a message appearing on the screen or a loading animation, and sounds, such as a beep or chime. This type of feedback helps to improve the user's experience by providing a sense of completion.&lt;/p&gt;

&lt;h2&gt;
  
  
  5 ways to elevate your UI Design with Microinteractions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Show system status
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy21o9wujfd9s1h2o2weu.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy21o9wujfd9s1h2o2weu.gif" alt="Progress Bar for uploading and downloading" width="928" height="640"&gt;&lt;/a&gt; &lt;em&gt;Source: Dribbble.com&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;One of the &lt;a href="https://dev.to/alexruix/10-usability-principles-for-a-good-ui-design-16jn"&gt;usability principles for a good UI Design&lt;/a&gt; is to keep the user informed about what is happening. When users trigger an operation, they expect to get an immediate response. But there are situations when an app needs some time to complete an operation. So, the interface should keep the user enlightened about what is happening, this may include a load interaction.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Visual cues for interaction
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7kkpr0a9716s1xtm7zf8.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7kkpr0a9716s1xtm7zf8.gif" alt="Dark mode and light mode UI animation" width="" height=""&gt;&lt;/a&gt; &lt;em&gt;Source: Dribbble.com&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Providing visual cues for interaction can significantly improve the usability of an interface. For example, when a user clicks on the "night mode" button, the button changes color to indicate that it's activated. Visual feedback of this type helps the user understand that night mode is enabled.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Improving usability with tactile cues
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fysnsk8mypjzpvq0eg1hj.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fysnsk8mypjzpvq0eg1hj.gif" alt="Feedback on button press" width="1500" height="900"&gt;&lt;/a&gt; &lt;em&gt;Source: Snappymob.com&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Tactile cues can also improve the usability by providing feedback through touch or haptic vibrations. For example, a button growing in size or vibrating when a user touches it indicates that the action has been registered.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Use animated feedback
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqzrlxvz927jw7c9l9z08.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqzrlxvz927jw7c9l9z08.gif" alt="To do list UI micro interactions" width="600" height="450"&gt;&lt;/a&gt; &lt;em&gt;Source: Dribbble.com&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Animation can enhance the user experience by providing a fun and engagement feel. For example, when a user completes a task, a checkmark or a tick appears on the screen, making the experience more enjoyable. Using transitions can also help to guide the user through the interface and make it more engaging by providing feedback through movement.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. Avoid unwanted interactions.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpslvz128wdi1149xrw8h.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpslvz128wdi1149xrw8h.gif" alt="blob fly across the screen" width="720" height="540"&gt;&lt;/a&gt; &lt;em&gt;Source: Dribbble.com&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When designing microinteractions, we always make sure the visual cues and animations are appropriate. Many designers attempting to make UI more delightful overload UIs, often creates too complex interactions. The later can be seen in the example above— it’s a beautiful but not really valuable interaction.&lt;/p&gt;




&lt;h3&gt;
  
  
  Other tips to keep in mind
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Microinteractions make it easy for users to interact with a system.&lt;/li&gt;
&lt;li&gt;Microinteractions should be efficient and not distract or bore the user.&lt;/li&gt;
&lt;li&gt;Understanding the user and context improve the effectiveness of microinteractions.&lt;/li&gt;
&lt;li&gt;Microinteractions should be able to withstand prolonged use without becoming annoying.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In summary, microinteractions are small but powerful elements of UI design that can significantly improve the user experience. They provide feedback and cues, improving the overall usability of an interface. When designing a user interface, it's critical to include microinteractions and test them with real users to ensure a positive experience.&lt;/p&gt;

</description>
      <category>watercooler</category>
    </item>
    <item>
      <title>How to improve accessibility in UI Design: tips and best practices</title>
      <dc:creator>Alex Ruiz</dc:creator>
      <pubDate>Fri, 20 Jan 2023 18:28:31 +0000</pubDate>
      <link>https://forem.com/alexruix/how-to-improve-accessibility-in-ui-design-tips-and-best-practices-4agn</link>
      <guid>https://forem.com/alexruix/how-to-improve-accessibility-in-ui-design-tips-and-best-practices-4agn</guid>
      <description>&lt;p&gt;Imagine trying to navigate a website with a visual impairment. Without accessibility in the user interface design, the letters might be too small to read, the buttons might not have enough contrast, and the navigation might be confusing, which makes it impossible for you to use the website.&lt;/p&gt;

&lt;p&gt;Making a website accessible to everyone is important. That means that people with disabilities can also use it without problems. Sometimes,we forget to do this and hinder the user experience. Not only is it the ethical right thing to do, but it also improves the user experience for everyone. On this post I'll tell you how improve accessibility in user interface design with tips and best practices.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tips and best practices
&lt;/h2&gt;

&lt;p&gt;The following points have a good effect on accessibility for any designer and, at the same time, can improve user retention and satisfaction. Accessible websites are more user-friendly for everyone, which may increase the user's trust in the brand and improve the likelihood that they will revisit the site.&lt;/p&gt;

&lt;p&gt;So how can you improve accessibility in UI design? Here are some tips and best practices to help you improve accessibility on your website.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa6upuzspbx47is0wzl3q.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa6upuzspbx47is0wzl3q.jpg" alt="How Font-Weight Improves Text Readability" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Readable text
&lt;/h2&gt;

&lt;p&gt;Ensuring that text is legible is essential for all users to interact with the website. We must use an appropriate font size and a contrasting color palette to make the text easy to read. In addition, I also recommend the use of a clean typography to improve the UX (user experience). Also, we should consider testing the text on different devices and screens to ensure it is readable on all platforms.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2oeo5gzze1j7zb1gg4b0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2oeo5gzze1j7zb1gg4b0.png" alt="Buttons with sufficient contrast" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Buttons with sufficient contrast
&lt;/h2&gt;

&lt;p&gt;Buttons should have sufficient contrast to be easy to see and press, especially for the visually impaired. At this point I advise using a color scheme that provides high visual contrast, such as black on white or white on black. In addition, we must ensure that the size is appropriate and the text is clear and descriptive so the user can easily understand its function.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvqift5o9jfxm64g7x57h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvqift5o9jfxm64g7x57h.png" alt="UX Design for clear navigation" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Clear and user-friendly navigation
&lt;/h2&gt;

&lt;p&gt;Another thing to keep in mind when designing with accessibility is to ensure that the navigation is clean and user-friendly, which means providing an intuitive navigation structure and a logical hierarchy of information.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhroiivr4gfnsb84ylh1a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhroiivr4gfnsb84ylh1a.png" alt="Design accessibility inputs" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Use visible labels.
&lt;/h2&gt;

&lt;p&gt;Labels are a crucial part of forms. They tell users what information is needed for each field. Without labels, it can be hard for users to understand what information is required, leading to frustration and confusion.&lt;/p&gt;

&lt;p&gt;It is also important to provide visual feedback. This lets users know when a field is filled in correctly or if there is an error. This will help users find and correct errors quickly, making it easier to complete the form.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Forcnk3cu3av1joaecghb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Forcnk3cu3av1joaecghb.png" alt="UX and the Importance of Web Accessibility" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Web Content Accessibility Guidelines
&lt;/h2&gt;

&lt;p&gt;Finally, I recommend using web standards found in Web Content Accessibility Guidelines (WCAG) and Accessible Rich Internet Applications (ARIA) because they establish best practices for accessible web design. If we follow them, we can help ensure that all users, regardless of their abilities or disabilities, can interact with our website effectively.&lt;/p&gt;




&lt;p&gt;In conclusion, accessibility in user interface design is essential to ensure that all users, regardless of their abilities or disabilities, can interact with a website effectively. However, it is also important to remember that accessibility in user interface design can improve the user experience for everyone. By following the tips and best practices mentioned above, you can improve accessibility and provide a satisfying experience for all your users. In addition, it's relevant for compliance with ethical regulations and an opportunity to broaden your audience and improve user retention and satisfaction. &lt;/p&gt;

</description>
      <category>discuss</category>
      <category>productivity</category>
      <category>softwareengineering</category>
      <category>tooling</category>
    </item>
    <item>
      <title>10 usability principles for a good UI Design</title>
      <dc:creator>Alex Ruiz</dc:creator>
      <pubDate>Thu, 04 Aug 2022 04:13:00 +0000</pubDate>
      <link>https://forem.com/alexruix/10-usability-principles-for-a-good-ui-design-16jn</link>
      <guid>https://forem.com/alexruix/10-usability-principles-for-a-good-ui-design-16jn</guid>
      <description>&lt;p&gt;For us UI Designers, it's very important to develop interactions that allow the user to have a better experience, so the UI can't be confusing, demanding or cause stress to the visitors.&lt;/p&gt;

&lt;p&gt;Therefore, part of our task is to create user journeys that are fluid and intuitive, in such a way that the user doesn't need external help to interact with the product.&lt;/p&gt;

&lt;p&gt;In this case to improve as UI Designers, guarantee a good user experience and improve interaction design we will talk about &lt;strong&gt;Jakob Nielsen's 10 heuristics&lt;/strong&gt; that &lt;strong&gt;we should always keep in mind.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Jakob Nielsen's heuristics for interaction design
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1) Visibility of system status 💻
&lt;/h3&gt;

&lt;p&gt;The system has to &lt;strong&gt;inform&lt;/strong&gt; the users about the current system status and what is going on at &lt;strong&gt;all times&lt;/strong&gt;, by providing them with &lt;strong&gt;appropriate feedback&lt;/strong&gt; within a reasonable time.&lt;/p&gt;

&lt;p&gt;This principle is necessary to make the the user capable of deciding which their next steps will be, based on what's happening at that particular moment &lt;strong&gt;(anticipation).&lt;/strong&gt; An advantage of implementing this principle is that the user will end up &lt;strong&gt;trusting&lt;/strong&gt; the product and the brand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example:&lt;/strong&gt; Provide &lt;strong&gt;real-time feedback&lt;/strong&gt; during new account setup and communicate which password requirements the user has been fulfilled as they types, saving their time, energy, and uncertainty during the process.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qi6AmlUa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dhf9gltcnhry86vv9og0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qi6AmlUa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dhf9gltcnhry86vv9og0.png" alt="Real-time feedback" width="880" height="707"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2) Match between system and the real world 🌎
&lt;/h3&gt;

&lt;p&gt;This principle claims that a system should speak the users' language and follow real-world conventions, this is, they have to be capable of &lt;strong&gt;easily understand&lt;/strong&gt; everything they perceive while interacting with the system.&lt;/p&gt;

&lt;p&gt;This means avoiding use words, phrases, and concepts that aren't familiar to our target audience. We should base every concept of the system in real world conventions that are already part of mental models, that is, the system make sense to the users according to their life experiences.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example:&lt;/strong&gt; When it comes to using icons and illustrations these resonate with the real world, so users instantly recognize and understand what we're trying to say.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oiC8sNos--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/144ux8fbhg897ksd44vk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oiC8sNos--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/144ux8fbhg897ksd44vk.png" alt="Icons" width="880" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3) User control and freedom 🎮
&lt;/h3&gt;

&lt;p&gt;We should design knowing that the &lt;strong&gt;user can always make a mistake&lt;/strong&gt;, so they have to be provided with emergency exits in case they need to escape or recover from wrongly performed actions.&lt;/p&gt;

&lt;p&gt;The interactions we build must give users the freedom to decide and take the actions they see fit and always have to be allowed to correct mistakes and change their minds&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example:&lt;/strong&gt; Back links that allows the user to go back in a page, screen or view. An option to undo and redo their actions.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uVy86I5q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0h3vqa74lpsjkpo9b27j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uVy86I5q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0h3vqa74lpsjkpo9b27j.png" alt="Example of Google Docs showing undo and redo options" width="880" height="581"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4) Consistency and standards 📌
&lt;/h3&gt;

&lt;p&gt;The users when interact with a product have expectations based in their previous experiences with another products.&lt;br&gt;
So that's important that our system &lt;strong&gt;follows already established conventions&lt;/strong&gt; when it comes to user interaction and interface design.&lt;/p&gt;

&lt;p&gt;Jakob's Law states:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"People spend most of their time using products that are not yours, so they expect your product works in the way the others do. Failing to fulfill these expectation may result in user’s cognitive overload and force them to learn something new."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;For example:&lt;/strong&gt; When  asking users to input information such as dates, phone numbers, or locations, use the industry standards rather than reinventing the wheel.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_aHd5ONw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7eljutlr86vt490ob33k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_aHd5ONw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7eljutlr86vt490ob33k.png" alt="Phone number input" width="238" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5) Error prevention ❗
&lt;/h3&gt;

&lt;p&gt;This principle proposes that a good design should always &lt;strong&gt;prevent problems from occurring.&lt;/strong&gt; and in this way we prevent the user from getting frustrated by making mistakes.&lt;br&gt;
When designing, we must &lt;strong&gt;prevent the majority of mistakes&lt;/strong&gt; that users can make when interacting with our system, rather than waiting for them to perform an action that leads to an error to inform them, in this way, the users will feel comfortable with the system by letting them know that if they make a mistake, &lt;strong&gt;they can undo the taken action&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;For example:&lt;/strong&gt; To prevent the user from getting frustrated if they delete files by mistake, it is essential to create a warning message to confirm the decision before going through.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--H1AAn3ZM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/13a32u9810xuqth6veq3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--H1AAn3ZM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/13a32u9810xuqth6veq3.png" alt="Prevent delete files" width="880" height="247"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6) Recognition rather than recall 🧠
&lt;/h3&gt;

&lt;p&gt;The Nielsen’s heuristics aim to reduce users’ cognitive load, and this also includes their memory capacity.&lt;/p&gt;

&lt;p&gt;Therefore, the users &lt;strong&gt;shouldn't have to memorize lots of information&lt;/strong&gt; to be able to perform a task within the system, that's why it’s essential to think of ways to make options, elements and actions visible helps them carry out their goals in an intuitive and approachable way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example:&lt;/strong&gt; In a menu of a list of fonts, the user shouldn't remember the style of each one, these styles must always be visible.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--e8-Tplp9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/olw9if8qcralkqusrp4i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--e8-Tplp9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/olw9if8qcralkqusrp4i.png" alt="Menu of a list of fonts" width="880" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  7) Flexibility and efficiency of use 💪
&lt;/h3&gt;

&lt;p&gt;Our designs should be prepared for both experienced and novice users.&lt;/p&gt;

&lt;p&gt;We must keep in mind that inexperienced users need more detailed information, so our goal should be to create a &lt;strong&gt;flexible and efficient&lt;/strong&gt; system that provides multiple methods to perform the same tasks according to the variety of users who interact with it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example:&lt;/strong&gt; Shortcuts are a good example of this, they help expert users achieve their goals faster without being an obstacle for less-experienced users. While the tutorials are very useful for inexperienced users.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_vh7-kq0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qa5s7r4qsoxp6xixa78c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_vh7-kq0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qa5s7r4qsoxp6xixa78c.png" alt="Shortcuts for experienced users" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  8) Aesthetic and minimalist design ✨
&lt;/h3&gt;

&lt;p&gt;As designers, we never consider aesthetics above functionalities.&lt;/p&gt;

&lt;p&gt;The user interfaces that we create must &lt;strong&gt;contain only essential information&lt;/strong&gt; since non-relevant information may take away visibility, overwhelm and distract users. This doesn't mean we're obliged to use a flat design. It's more about keeping design &lt;strong&gt;focused&lt;/strong&gt; and &lt;strong&gt;targeted&lt;/strong&gt; to the point.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pw7lynU5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/couyekjfa1zxax8o6efx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pw7lynU5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/couyekjfa1zxax8o6efx.png" alt="Airbnb minimalistic design" width="880" height="303"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  9) Help users recognize, diagnose, and recover from errors ⛔
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Errors should be presented as clear messages&lt;/strong&gt;, always straight to the point and be written in an understandable language, so the user can easily be aware of what's going on. These messages should be focused on the real problem and provide or recommend a possible solution to the issue.&lt;/p&gt;

&lt;p&gt;In the next example, the error message is clear and understandable to users.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FCdjncN0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0qhfan0143c518no6pky.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FCdjncN0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0qhfan0143c518no6pky.png" alt="Error message" width="676" height="576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  10) Help and documentation 📁
&lt;/h3&gt;

&lt;p&gt;The last of Nielsen’s heuristics concerns documentation that will help users understand how to perform their tasks.&lt;/p&gt;

&lt;p&gt;Although all the heuristics listed above are supposed to help users avoid errors and facilitate navigation without assistance, it is still essential to provide further assistance at any time.&lt;/p&gt;

&lt;p&gt;In this way, we must deliver &lt;strong&gt;help documentation&lt;/strong&gt; that is easy to search and focused on the user's tasks. A good practice is to list the concrete steps that users can take to complete a task successfully.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jqCWfk4X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/imk4vckpmdta5ecey26h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jqCWfk4X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/imk4vckpmdta5ecey26h.png" alt="Microsoft help decumentation" width="880" height="703"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Thank you very much for reading and I hope you found this article useful and I see you in the next post👋&lt;/p&gt;

</description>
      <category>ui</category>
      <category>ux</category>
      <category>design</category>
      <category>webdev</category>
    </item>
    <item>
      <title>10 awesome and useful JAVASCRIPT TRICKS and TIPS. Part 1</title>
      <dc:creator>Alex Ruiz</dc:creator>
      <pubDate>Sun, 20 Feb 2022 21:14:48 +0000</pubDate>
      <link>https://forem.com/alexruix/10-awesome-and-useful-javascript-tricks-and-tips-part-1-1d0g</link>
      <guid>https://forem.com/alexruix/10-awesome-and-useful-javascript-tricks-and-tips-part-1-1d0g</guid>
      <description>&lt;p&gt;JavaScript is over 20 years old and over time it has grown and evolved, constantly implementing improvements. It's a multi-paradigm language as it supports functional, imperative, and event-driven programming. As if that wasn't enough, it has an API for working with text, data structures, the DOM, and more.&lt;br&gt;
In this post I collect 5 tips and tricks to get the most out of Javascript.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. JavaScript Type Conversion
&lt;/h2&gt;

&lt;p&gt;There are different ways to convert any data into the data type of your choice. In the following example I will explain how to convert to numeric, boolean and string.&lt;/p&gt;

&lt;h4&gt;
  
  
  Convert to number
&lt;/h4&gt;

&lt;p&gt;Numeric data can be of two types: integer(int) and float(float), also known as decimal. To convert any data into an integer you have several options, one of them is to use the parseInt() and parseFloat() methods, depending on whether you want to work with integers or floats.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZCoiBAZs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c51znyojgdkuk8xp2otm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZCoiBAZs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c51znyojgdkuk8xp2otm.png" alt="Javascript Convert to number code" width="880" height="959"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the traditional way and it works very well. However, there is a faster option to achieve the same result, which is to prepend the unary operator&lt;code&gt;+&lt;/code&gt;to the data you want to convert.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_0jRcBj_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/voektysy5iesh7879mik.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_0jRcBj_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/voektysy5iesh7879mik.png" alt="Javascript Convert to number code" width="706" height="930"&gt;&lt;/a&gt;&lt;br&gt;
There is a third way to convert numbers within JavaScript and that is by using the &lt;code&gt;Number()&lt;/code&gt; object's constructor.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1b3237ag--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9jcz42tbcgvmb3mkrowo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1b3237ag--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9jcz42tbcgvmb3mkrowo.png" alt="Javascript Convert to number code" width="790" height="968"&gt;&lt;/a&gt;&lt;br&gt;
Ready! With these three simple tricks you can convert a data of any type to a number.&lt;/p&gt;

&lt;h4&gt;
  
  
  Convert to boolean
&lt;/h4&gt;

&lt;p&gt;If you want to convert any data to boolean, JavaScript offers two options. The first is to use the object's &lt;code&gt;Boolean()&lt;/code&gt; constructor and the second is to make use of the &lt;code&gt;!!&lt;/code&gt; operator, also known as the &lt;code&gt;Double Bang Operator&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Hn119MYt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aam7ev3wgkniml2s7k6x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Hn119MYt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aam7ev3wgkniml2s7k6x.png" alt="Javascript Convert to boolean code" width="806" height="706"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Convert to string
&lt;/h4&gt;

&lt;p&gt;To finish the tricks of converting one data into another, there are two options with which you can transform a number into a string. The first is with the constructor of the &lt;code&gt;String()&lt;/code&gt; object, and the second is to concatenate the data to an empty string.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0VayFlT5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0fhbvmzc6negrktb76ji.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0VayFlT5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0fhbvmzc6negrktb76ji.png" alt="Javascript Convert to string code" width="880" height="650"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. String interpolation
&lt;/h2&gt;

&lt;p&gt;String interpolation is concatenating text with other text or variables. Previously, multiple unary + operators were used to concatenate each desired value, resulting in code like the following:&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LR6Wdaej--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7jsvsj1ed5b45por0q2q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LR6Wdaej--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7jsvsj1ed5b45por0q2q.png" alt="Javascript String interpolation" width="880" height="379"&gt;&lt;/a&gt;&lt;br&gt;
It is quite a difficult code to write and read. Therefore, it is recommended that you avoid concatenating in this way. Currently, there is a clearer option to achieve the same result and it is through &lt;code&gt;string template literals&lt;/code&gt;.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aR8xOCLE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ahkvenprbranvesbhim8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aR8xOCLE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ahkvenprbranvesbhim8.png" alt="Javascript String interpolation" width="880" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Ternary operator
&lt;/h2&gt;

&lt;p&gt;Did you know that a simple &lt;code&gt;if-else&lt;/code&gt; can be summed up in a single line of code? This is made possible by the ternary operator, which can be viewed as a concise if.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UkGpFmCf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7mo33k1s5w7c8nkqjfce.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UkGpFmCf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7mo33k1s5w7c8nkqjfce.png" alt="Javascript ternary operator code" width="880" height="491"&gt;&lt;/a&gt;&lt;br&gt;
The code is simpler and easier to read, although you should take into account the following considerations:&lt;/p&gt;

&lt;p&gt;A variable with the condition to evaluate is needed.&lt;/p&gt;

&lt;p&gt;What is after the operator &lt;code&gt;?&lt;/code&gt; evaluates if the condition is true.&lt;/p&gt;

&lt;p&gt;What is after the operator &lt;code&gt;:&lt;/code&gt; evaluates if the condition is false, just like the else statement.&lt;/p&gt;

&lt;p&gt;The operator : it is necessary to write it even if it is not needed, if it is not needed it is used to return a &lt;code&gt;null&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Short circuit operators
&lt;/h2&gt;

&lt;p&gt;Continuing with the topic of &lt;code&gt;if&lt;/code&gt; and ternaries we have the short-circuit operators, which are &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; and &lt;code&gt;||&lt;/code&gt;. These operators evaluate conditions more efficiently.&lt;/p&gt;

&lt;h4&gt;
  
  
  Operator &amp;amp;&amp;amp;
&lt;/h4&gt;

&lt;p&gt;The &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; operator acts like a simple &lt;code&gt;if&lt;/code&gt;, that is, without an &lt;code&gt;else&lt;/code&gt;. Which means that it is executed if and only if the condition evaluates to &lt;code&gt;true&lt;/code&gt;, otherwise it ignores the code.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EGyrzzOq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/czoyvdcqefe03y75na6y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EGyrzzOq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/czoyvdcqefe03y75na6y.png" alt="Javascript &amp;amp;&amp;amp; operator code" width="880" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Operator ||
&lt;/h4&gt;

&lt;p&gt;The operator &lt;code&gt;||&lt;/code&gt;, unlike the previous one, is executed only if the condition to be evaluated returns &lt;code&gt;false&lt;/code&gt;, &lt;code&gt;null&lt;/code&gt;or &lt;code&gt;undefined&lt;/code&gt;.&lt;br&gt;
 &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LpQqeITS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jccjb64sf0fxtzv7hpnh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LpQqeITS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jccjb64sf0fxtzv7hpnh.png" alt="Javascript operator || code" width="706" height="670"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Operator nullish
&lt;/h2&gt;

&lt;p&gt;I know that you have just read the title of this section and you are probably thinking, what is the &lt;code&gt;nullish&lt;/code&gt;operator? Well, this operator is &lt;code&gt;??&lt;/code&gt; and it helps to exclusively validate if the value is &lt;code&gt;null&lt;/code&gt;or &lt;code&gt;undefined&lt;/code&gt;.&lt;br&gt;
 &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ibxr-UYk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6kaabhmzdg7gya1brz8w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ibxr-UYk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6kaabhmzdg7gya1brz8w.png" alt="Javascript operator nullish code" width="880" height="501"&gt;&lt;/a&gt;&lt;br&gt;
This operator is not as widely used, but it is quite useful to know about its existence.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Soon the second part will be ready with another 5 tips on javascript so you can get the most out of Javascript &lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>10 best plugins to create websites in ATOM</title>
      <dc:creator>Alex Ruiz</dc:creator>
      <pubDate>Wed, 29 Dec 2021 18:14:29 +0000</pubDate>
      <link>https://forem.com/alexruix/10-best-plugins-to-create-websites-in-atom-2lfk</link>
      <guid>https://forem.com/alexruix/10-best-plugins-to-create-websites-in-atom-2lfk</guid>
      <description>&lt;p&gt;For us developers, it´s very important to find the perfect code editor or IDE because it´s our main work tool. Although there are many editors, whether open source or paid, the best known are Sublime Text, Eclipse, Netbeans or Atom.&lt;br&gt;
In this case we are going to talk about Atom, the one that I currently use and despite not being the most complete, it has a multitude of plugins to customize it and make our work easier. &lt;/p&gt;

&lt;p&gt;These are the 10 best plugins that every developer should have installed in Atom&lt;br&gt;
1) &lt;a href="https://atom.io/packages/atom-live-server"&gt;Atom Live Server&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NQOMRX4g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pqg1cpg8zig4jt3whoda.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NQOMRX4g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pqg1cpg8zig4jt3whoda.gif" alt="Atom Live Server Atom Plugin" width="880" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Atom Live server is one of my favorite packages because it allows us to view the changes to our website, just by saving the document in atom, without having to reload the page, all this makes live server save you a lot of time. You can dowload &lt;a href="https://atom.io/packages/atom-live-server"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2) &lt;a href="https://atom.io/packages/minimap"&gt;Minimap&lt;/a&gt;&lt;br&gt;
&lt;a href="https://atom.io/packages/minimap"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--N-dkDilg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nvkh8mwaiwbb2w7996u1.png" alt="Minimap Atom Plugin" width="270" height="170"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Surely many times you have quite long files.&lt;br&gt;
With minimap you can see a map of the file content on the right side of the code. In this way, it will be easier for you to navigate in the code, see if at some point you are higher or lower in the file and thus never miss anything. You can download &lt;a href="https://atom.io/packages/minimap"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3) &lt;a href="https://atom.io/packages/emmet-simplified"&gt;Enmet&lt;/a&gt;&lt;br&gt;
Although some may know it by its old name (Zen Code), Emmett has become an essential plugin. If we had to choose the first plugin to install, it would possibly be this. With Emmet you save a lot of time writing code, as you can use abbreviations for labels or create classes simply by typing for a paragraph and pressing Tab. In this case we would obtain a paragraph with the class "paragraph". We can also save ourselves writing everything necessary to make a new HTML page by typing in the html: 5 editor and pressing tab. You can download &lt;a href="https://atom.io/packages/emmet-simplified"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4) &lt;a href="https://atom.io/packages/double-tag"&gt;Double Tag&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZjULwQ4i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x7hy8i61t6ft4l9x62xv.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZjULwQ4i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x7hy8i61t6ft4l9x62xv.gif" alt="Double Tag Atom Plugin" width="876" height="358"&gt;&lt;/a&gt;&lt;br&gt;
This package allows you to modify the HTML tags in a simple way because it automatically closes the tags of our code. You can download &lt;a href="https://atom.io/packages/double-tag"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5) &lt;a href="https://atom.io/packages/atom-bootstrap4"&gt;Atom Bootstrap&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4q-QKnk2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tuak94u4xkxglf4rxtre.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4q-QKnk2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tuak94u4xkxglf4rxtre.gif" alt="Atom Bootstrap Atom Plugin" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a great package for atom, which can save you a lot of time when you start designing with Boostrap because it provides us with quite a few snippets that will save us hours when developing it with Bootstrap. You can download &lt;a href="https://atom.io/packages/atom-bootstrap4"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6) &lt;a href="https://atom.io/packages/highlight-selected"&gt;Higlight Selected&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tJmDB1e1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gt9kqkc2x4k5i96xxchq.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tJmDB1e1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gt9kqkc2x4k5i96xxchq.gif" alt="Higlight Selected Atom Plugin" width="416" height="154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This package adds a functionality that (surprisingly) is not included by default in the core of Atom. Just double-click a word in the editor and then Atom will highlight that word and any other occurrences in the rest of the file.&lt;br&gt;
If you’re a developer, it’s great to install it and see where variables or functions appear in the code. You can download &lt;a href="https://atom.io/packages/highlight-selected"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7) &lt;a href="https://atom.io/packages/atom-beautify"&gt;Atom Beautify&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aoSNH_HZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i9e9z037wp9yi3x8l5y0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aoSNH_HZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i9e9z037wp9yi3x8l5y0.png" alt="Atom Beautify Atom Plugin" width="738" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This package will make your files look more beautiful and more readable as it is responsible for controlling that the indentation is correct. That is, it checks that the lines of code are well ordered and start at the proper place. It is especially useful for following style guides in files that have multiple nested loops or functions that call other functions inside. It also supports most of the languages you can use today to code. You can download &lt;a href="https://atom.io/packages/atom-beautify"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;8) &lt;a href="https://atom.io/packages/linter"&gt;Linter&lt;/a&gt; &lt;br&gt;
As a frontend developer, I love when the code editor is smarter than me and highlights the mistakes I'm making while programming the code. In Atom this is possible with linter. It is a package that adds error control and display in the editor itself. And although it does not detect everything, it helps me a lot. You can download &lt;a href="https://atom.io/packages/linter"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In addition to this basic linter package, my installation also includes the following linter extensions for Atom:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://atom.io/packages/linter-alex"&gt;linter-alex&lt;/a&gt;: controls that you write better. That’s useful in your comments.&lt;br&gt;
&lt;a href="https://atom.io/packages/linter-csslint"&gt;linter-csslint&lt;/a&gt;: error detection in CSS files.&lt;br&gt;
&lt;a href="https://atom.io/packages/linter-jscs"&gt;linter-jscs&lt;/a&gt;: error detection in JavaScript files.&lt;br&gt;
&lt;a href="https://atom.io/packages/linter-write-good"&gt;linter-write-good&lt;/a&gt;: error detection when you’re writing English texts.&lt;br&gt;
&lt;a href="https://atom.io/packages/minimap-linter"&gt;minimap-linter&lt;/a&gt;: highlights linter-detected errors in the minimap.&lt;/p&gt;

&lt;p&gt;9) &lt;a href="https://atom.io/packages/file-icons"&gt;File Icons&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9U_JO586--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7smdv9emzzkx29z4tz1g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9U_JO586--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7smdv9emzzkx29z4tz1g.png" alt="File Icons Atom Plugin" width="880" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This simple package adds icons and colors to the files that we have in Atom according to their specific file type so that it is easier to identify them.&lt;br&gt;
At a glance you will know the type of file in front of you. It seems silly, but once you try it you can not stop using it. You can download &lt;a href="https://atom.io/packages/file-icons"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;10) &lt;a href="https://atom.io/packages/pigments"&gt;Pigments&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--87pw1Pve--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nt88xxdr0h9b9gk1p0pw.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--87pw1Pve--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nt88xxdr0h9b9gk1p0pw.gif" alt="Pigments Atom Plugin" width="845" height="554"&gt;&lt;/a&gt;&lt;br&gt;
Pigments is a specific plugin to work with CSS. With this tool you can see the color that you are entering in CSS, and by being able to modify it on the fly, you can see how it changes and choose the one you want, without having to constantly see how it looks on the web. You can download &lt;a href="https://atom.io/packages/pigments"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bonus&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://atom.io/packages/color-picker"&gt;Color Picker&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3zsSwcfY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0jb945cnj75il8ayvciv.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3zsSwcfY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0jb945cnj75il8ayvciv.gif" alt="Color Picker Atom Plugin" width="500" height="550"&gt;&lt;/a&gt;&lt;br&gt;
With this last package on the list, you can easily select the color you want to include in your CSS style. Just press CMD-SHIFT-C / CTRL-ALT-C to open a color picker where you can visually choose the color that best suits your needs. It is the best companion of the previous package. You can download &lt;a href="https://atom.io/packages/color-picker"&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>plugins</category>
      <category>webdev</category>
      <category>ninja</category>
    </item>
  </channel>
</rss>
