Smart Interface Design Patterns https://smart-interface-design-patterns.com/ UX design tips and resources brought to you by Vitaly Friedman. en How To Measure The Impact Of Features https://smart-interface-design-patterns.com/articles/impact-features-tars/ <p>So we design and ship a <strong>shiny new feature</strong>. How do we know if it's working? How do we measure and track its impact? There is <a href="https://measuringu.com/an-overview-of-70-ux-metrics/">no shortage in UX metrics</a>, but what if we wanted to establish a <strong>simple, repeatable</strong>, meaningful UX metric — specifically for our features? Well, let's see how to do just that.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/tars-a-product-metric-game-changer-c523f260306a?sk=v2%2F2a9d7d1e-bae9-4875-9063-4b6a10ae110c"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/impact-features-tars/1.jpg" alt="Adrian Raudaschl's framework for measuring feature impact." width="1500" height="1828" loading="lazy"> </a> <figcaption><p>With <a href="https://uxdesign.cc/tars-a-product-metric-game-changer-c523f260306a?sk=v2%2F2a9d7d1e-bae9-4875-9063-4b6a10ae110c">TARS</a>, we can assess how effective features are and how well they are performing.</p> </figcaption> </figure> <p>I first heard about the <strong>TARS framework</strong> from Adrian H. Raudaschl's wonderful article on <a href="https://uxdesign.cc/tars-a-product-metric-game-changer-c523f260306a?sk=v2%2F2a9d7d1e-bae9-4875-9063-4b6a10ae110c">How To Measure Impact of Features</a>. Here, Adrian highlighted how his team tracks and decides which features to focus on — and then map them against each other in a <strong>2×2 quadrants matrix</strong>.</p> <p>It turned out to be a very useful framework to <strong>visualize</strong> the impact of UX work through the lens of business metrics. Let's see how it works.</p> <h2 id="1-target-audience-percent" tabindex="-1">👩🏻‍🦱 1. Target Audience (%) <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/impact-features-tars/#1-target-audience-percent">#</a></h2> <p>We start by quantifying the <strong>target audience</strong> by exploring what percentage of a product's users have the specific problem that a feature aims to solve. We can study existing or similar features that try to solve similar problems, and how many users engage with them.</p> <p>Target audience <strong>isn't the same</strong> as feature usage though. As Adrian noted, if we know that an existing Export Button feature is used by 5% of all users, it doesn't mean that the target audience is 5%. <strong>More users</strong> might have the problem that the export feature is trying to solve, but they can't find it.</p> <p><em>Question we ask: &quot;What percentage of all our product's users have that specific problem that a new feature aims to solve?&quot;</em></p> <h2 id="2-a-adoption-percent" tabindex="-1">🗂 2. A = Adoption (%) <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/impact-features-tars/#2-a-adoption-percent">#</a></h2> <p>Next, we measure how well we are <strong>&quot;acquiring&quot;</strong> our target audience. For that, we track how many users actually engage <em>successfully</em> with that feature over a specific period of time. We <strong>don't focus on CTRs or session duration</strong> there, but rather if users <em>meaningfully</em> engage with it. E.g. if anything signals that they found it valuable — sharing the export URL, number of exported files, usage of filters and settings.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/tars-a-product-metric-game-changer-c523f260306a?sk=v2%2F2a9d7d1e-bae9-4875-9063-4b6a10ae110c"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/impact-features-tars/2.jpg" alt="The TARS Framework Steps" width="1500" height="739" loading="lazy"> </a> <figcaption><p>Adoption rates — from low adoption (&lt;20%) to high adoption (&gt;60%). Illustration by <a href="https://uxdesign.cc/tars-a-product-metric-game-changer-c523f260306a?sk=v2%2F2a9d7d1e-bae9-4875-9063-4b6a10ae110c">Adrian Raudaschl</a>.</p> </figcaption> </figure> <p>High <strong>feature adoption</strong> (&gt;60%) suggests that the problem was impactful. Low adoption (&lt;20%) might imply that the problem has simple workarounds which people have relied upon. Changing habits takes time, too, and so low adoption in the beginning is expected.</p> <p>Sometimes low feature adoption has nothing to do with the feature itself, but rather <strong>where it sits in the UI</strong>. Users might never discover it if it's hidden, or if it has a confusing label. It must be obvious enough for people to stumble upon it.</p> <p>Low adoption doesn't always equal failure. If a problem only affects 10% of users, hitting 50–75% adoption within that specific niche means the feature is a <strong>success</strong>.</p> <p><em>Question we ask: &quot;What percentage of active target users actually use the feature to solve that problem?&quot;</em></p> <h2 id="3-retention-percent" tabindex="-1">🗃️ 3. Retention (%) <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/impact-features-tars/#3-retention-percent">#</a></h2> <p>Next, we study if a feature is actually used repeatedly. We measure the frequency of use, or specifically, how many users who engaged with the feature actually keep using it over time. Typically it's a strong signal for <strong>meaningful impact</strong>.</p> <p>If a feature has &gt;50% retention rate (avg.), we can be quite confident that it has a <strong>high strategic importance</strong>. A 25–35% retention rate signals medium strategic significance, and retention of 10–20% is then low strategic importance.</p> <p><em>Question we ask: &quot;Of all the users who meaningfully adopted a feature, how many came back to use it again?&quot;</em></p> <h2 id="4-satisfaction-score-ces" tabindex="-1">❤️ 4. Satisfaction Score (CES) <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/impact-features-tars/#4-satisfaction-score-ces">#</a></h2> <p>Finally, we measure the <strong>level of satisfaction</strong> that users have with that feature that we've shipped. We don't ask everyone — we ask only &quot;retained&quot; users. It helps us spot hidden troubles that might not be reflected in the retention score.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/tars-a-product-metric-game-changer-c523f260306a?sk=v2%2F2a9d7d1e-bae9-4875-9063-4b6a10ae110c"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/impact-features-tars/3.jpg" alt="Customer Satisfaction Score, measured with a survey" width="1500" height="739" loading="lazy"> </a> <figcaption><p>We ask users how easy it was to solve a problem after they used a feature. Illustration by <a href="https://uxdesign.cc/tars-a-product-metric-game-changer-c523f260306a?sk=v2%2F2a9d7d1e-bae9-4875-9063-4b6a10ae110c">Adrian Raudaschl</a>.</p> </figcaption> </figure> <p>Once users actually used a feature multiple times, we ask them <strong>how easy it was to solve</strong> a problem after they used that feature — between &quot;much more difficult&quot; and &quot;much easier than expected&quot;. We know how we want to score.</p> <h2 id="using-tars-for-feature-strategy" tabindex="-1">Using TARS For Feature Strategy <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/impact-features-tars/#using-tars-for-feature-strategy">#</a></h2> <p>Once we start measuring with TARS, we can calculate an <strong>S÷T score</strong> — a percentage of Satisfied Users ÷ Target Users. It gives us a sense of how well a feature is performing for our intended target audience. Once we do that for every feature, we can map all features across 4 quadrants in a <strong>2×2 matrix</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/tars-a-product-metric-game-changer-c523f260306a?sk=v2%2F2a9d7d1e-bae9-4875-9063-4b6a10ae110c"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/impact-features-tars/4.jpg" alt="Feature retention curves" width="1500" height="750" loading="lazy"> </a> <figcaption><p>Evaluating features on a 2×2 matrix based on S/T score. Illustration by <a href="https://uxdesign.cc/tars-a-product-metric-game-changer-c523f260306a?sk=v2%2F2a9d7d1e-bae9-4875-9063-4b6a10ae110c">Adrian Raudaschl</a>.</p> </figcaption> </figure> <p><strong>Overperforming features</strong> are worth paying attention to: they have low retention but high satisfaction. It might simply be features that users don't have to use frequently, but when they do, it's extremely effective.</p> <p><strong>Liability features</strong> have high retention but low satisfaction, so perhaps we need to work on them to improve them. And then we can also identify <strong>core features</strong> and project features — and have a conversation with designers, PMs and engineers on what we should work on next.</p> <h2 id="conversion-rate-is-not-a-ux-metric" tabindex="-1">Conversion Rate Is Not a UX Metric <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/impact-features-tars/#conversion-rate-is-not-a-ux-metric">#</a></h2> <p>TARS doesn't cover conversion rate, and for a good reason. As <a href="https://www.linkedin.com/posts/fabian-lenz-digital-experience-leadership_conversion-rate-is-not-a-ux-metric-yes-activity-7394261839506739200-78G9">Fabian Lenz noted</a>, conversion is often considered to be the <strong>ultimate indicator of success</strong> — yet in practice it's always very difficult to present a clear connection between smaller design initiatives and big conversion goals.</p> <figure class="c-article__image u-flow--xs"> <a href="https://measuringu.com/leading-vs-lagging/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/impact-features-tars/5.png" alt="Chart comparing Leading vs Lagging Measures for UX metrics" width="1500" height="439" loading="lazy"> </a> <figcaption><p>Leading vs. Lagging Measures by <a href="https://measuringu.com/leading-vs-lagging/">Jeff Sauro and James R. Lewis</a>. (But please do avoid NPS at all costs).</p> </figcaption> </figure> <p>The truth is that almost everybody on the team is working towards better conversion. An uptick might be connected to <strong>many different initiatives</strong> – from sales and marketing to web performance boost to seasonal effects to UX initiatives. UX can of course improve conversion, but it's not really a UX metric. Often people simply <strong>can't choose the product</strong> they are using. And often a desired business outcome comes out of necessity and struggle, rather than trust and appreciation.</p> <h3 id="high-conversion-despite-bad-ux" tabindex="-1">High Conversion Despite Bad UX <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/impact-features-tars/#high-conversion-despite-bad-ux">#</a></h3> <p>As Fabian <a href="https://www.linkedin.com/posts/fabian-lenz-digital-experience-leadership_conversion-rate-is-not-a-ux-metric-yes-activity-7394261839506739200-78G9/">writes</a>, <strong>high conversion rate</strong> can happen despite poor UX, because:</p> <ul> <li><strong>Strong brand power</strong> pulls people in,</li> <li>Aggressive but effective <strong>urgency tactics</strong>,</li> <li>Prices are extremely attractive,</li> <li>Marketing performs brilliantly,</li> <li>Historical customer loyalty,</li> <li>Users simply have no alternative.</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://uxplanet.org/measuring-ux-your-first-step-towards-objective-evaluation-a408b312777b"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/impact-features-tars/6.jpeg" alt="UX Scorecard and design metrics overview" width="1500" height="955" loading="lazy"> </a> <figcaption><p>A practical overview of design metrics and UX scorecards: <a href="https://uxplanet.org/measuring-ux-your-first-step-towards-objective-evaluation-a408b312777b">Measuring UX: Your First Step Towards Objective Evaluation</a> by Roman Videnov.</p> </figcaption> </figure> <h3 id="low-conversion-despite-great-ux" tabindex="-1">Low Conversion Despite Great UX <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/impact-features-tars/#low-conversion-despite-great-ux">#</a></h3> <p>At the same time, a low conversion rate can occur despite great UX, because:</p> <ul> <li><strong>Offers aren't relevant</strong> to the audience,</li> <li><strong>Users don't trust the brand</strong>,</li> <li>Poor business model or high risk of failure,</li> <li>Marketing doesn't reach the right audience,</li> <li>External factors (price, timing, competition).</li> </ul> <p>An improved conversion is the <strong>positive outcome of UX initiatives</strong>. But good UX work typically improves task completion, reduces time on task, minimizes errors and avoids decision paralysis. And there are plenty of <a href="https://www.linkedin.com/posts/vitalyfriedman_how-to-measure-ux-httpslnkdine5uedtzy-activity-7332664809382952960-HERA">actionable design metrics we could use</a> to track UX and drive sustainable success.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/impact-features-tars/#wrapping-up">#</a></h2> <p><strong>Product metrics</strong> alone don't always provide an accurate view of how well a product performs. Sales might perform well, but users might be extremely inefficient and frustrated — yet the churn is low because users can't choose the tool they are using.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-activity-7140641630507687936-YTI7"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/impact-features-tars/7.jpeg" alt="Chart comparing Leading vs Lagging Measures for UX metrics" width="1500" height="842" loading="lazy"> </a> <figcaption><p><a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-activity-7140641630507687936-YTI7">Design KPIs and UX Metrics</a>, a quick overview by yours truly. Numbers are of course placeholders. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/c77381be-ae54-a023-7327-ba423426658f.jpeg">Large view</a>.</p> </figcaption> </figure> <p>We need UX metrics to understand and improve user experience. What I love most about TARS is that it's a neat way to connect customer's usage and <strong>customer's experience with relevant product metrics</strong>. Personally, I would extend TARS with <a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-activity-7140641630507687936-YTI7">UX-focused metrics and KPIs</a> as well — depending on the needs of the project.</p> <p>Huge thanks to <a href="https://www.linkedin.com/in/adrian-raudaschl/">Adrian H. Raudaschl</a> for putting it together — and if you are interested in metrics, I highly recommend you to follow him for practical and useful guides all around just that! 👏🏼👏🏽👏🏾</p> <hr> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/impact-features-tars/#useful-resources">#</a></h2> <ul> <li><a href="https://measure-ux.com/">How To Measure UX and Design Impact</a>, by yours truly</li> <li><a href="https://thecdo.school/books">Business Thinking For Designers</a>, by Ryan Rumsey</li> <li><a href="https://www.linkedin.com/feed/update/urn:li:activity:7338462034763661312/">ROI of Design Project</a></li> <li><a href="https://articles.centercentre.com/how-the-right-ux-metrics-show-game-changing-value/">How the Right UX Metrics Show Game-Changing Value</a>, by Jared Spool</li> <li><a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-research-activity-7164173642887606274-rEqq">Research Sample Size Calculators</a></li> </ul> Mon, 09 Mar 2026 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/impact-features-tars/ Designing Better Loading and Progress UX https://smart-interface-design-patterns.com/articles/designing-better-loading-progress-ux/ <p>As designers, often we can't speed up interactions for technical reasons. But we can reduce the <strong>perceived waiting time</strong>, which is often way more important than the actual duration.</p> <p>But how do we <strong>reduce the frustration of waiting</strong>? Let's explore a couple of options and UX guidelines to consider — to reduce the impact of waiting and choose the right loading indicator based on anticipated wait time.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/943248d6-0bb4-8d34-6f2c-e24b28b531a2.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/designing-better-loading-progress-ux/1.jpg" alt="An infographic titled 'Designing Better Loading Indicators UX' illustrating determinate and indeterminate loading indicators, dynamic vs. static, alongside user perception of waiting times with corresponding indicator types." width="1500" height="2067" loading="lazy"> </a> <figcaption><p>Improve user experience with smarter loading indicators tailored to task duration and type.</p> </figcaption> </figure> <h2 id="the-psychology-of-waiting" tabindex="-1">The Psychology of Waiting <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/designing-better-loading-progress-ux/#the-psychology-of-waiting">#</a></h2> <p>Nobody likes to wait. Especially when it's not clear how much is left to wait, and if there is any progress at all. However, not every waiting is the same. The <strong>perception of waiting time</strong> is typically way more important than its actual duration.</p> <p>There are 2 types of waiting that we experience:</p> <ul> <li><strong>Passive waiting</strong> (standing still)</li> <li><strong>Active waiting</strong> (walking, interacting, being busy)</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/loading-progress-indicators-ui-components-series-f4b1fc35339a"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/designing-better-loading-progress-ux/2.jpg" alt="A visual data analysis showing how progress bars decrease abandonment and perceived waiting time for users." width="1500" height="823" loading="lazy"> </a> <figcaption><p>Progress bars <a href="https://www.researchgate.net/publication/240624333_A_study_on_tolerable_waiting_time_how_long_are_Web_users_willing_to_wait_Citation_Nah_F_2004_A_study_on_tolerable_waiting_time_how_long_are_Web_users_willing_to_wait_Behaviour_Information_Technology_f">significantly reduce</a> perceived wait time and abandonment. A study on Tolerable waiting time and the impact of feedback on user tolerance by Fiona Fui-Hoon Nahassessed.</p> </figcaption> </figure> <p>Research shows that we tend to <strong>overestimate passive waiting</strong> by a significant margin (36%) (Katz et al., 1991), so mundane waiting usually feels much longer than it actually is. Active waiting, on the other hand, usually <em>feels</em> much shorter — even although it isn't necessarily true.</p> <p>Changes in speed are perceived differently, too. <strong>Small optimizations</strong> in speed, like shaving 0.2 seconds off a 5-second wait, typically go <strong>unnoticed</strong> by users. We usually speak about the 20% rule: users only notice speed changes of <strong>at least 20%</strong>.</p> <h2 id="choosing-the-right-loading-indicator" tabindex="-1">Choosing The Right Loading Indicator <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/designing-better-loading-progress-ux/#choosing-the-right-loading-indicator">#</a></h2> <p>When we design loading experiences, we must always answer 2 key questions: &quot;How much longer will this take?&quot; and &quot;Is it actually working?&quot; Typically this means adding signals about progress — a <em>loading bar</em> and a <em>status update</em>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/loading-progress-indicators-ui-components-series-f4b1fc35339a"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/designing-better-loading-progress-ux/3.jpg" alt="A grid displays eight different types of blue and white loading indicators, including spinners, progress bars, and text messages." width="1500" height="823" loading="lazy"> </a> <figcaption><p>There is no shortage in loading indicators, but some might work better than others.</p> </figcaption> </figure> <p>When we are choosing a loading indicator, we actually design not that indicator — we are designing the <strong>waiting UX</strong>. The less that waiting feels like passive waiting, the better. And typically it means keeping people busy while something is happening in the background.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/loading-progress-indicators-ui-components-series-f4b1fc35339a"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/designing-better-loading-progress-ux/4.jpg" alt="A diagram illustrating user perception of waiting times with emojis and corresponding loading indicators." width="1500" height="723" loading="lazy"> </a> <figcaption><p>Different loading indicators serve different purposes, and are used for different thresholds. By <a href="https://uxdesign.cc/loading-progress-indicators-ui-components-series-f4b1fc35339a">Taras Bakusevych</a>.</p> </figcaption> </figure> <p>We choose the right loading indicator based on the <strong>anticipated waiting time</strong>:</p> <ul> <li><strong>No wait (&lt; 1 sec):</strong><br> Don't use any loading indicators. They won't be perceived in time, and only cause visual noise.</li> <li><strong>Short wait (1–3 secs):</strong><br> Use skeleton screens or looping spinners.</li> <li><strong>Medium wait (3–10 secs):</strong><br> Determinate progress bars that show how much is left.</li> <li><strong>Long wait (10+ secs):</strong><br> Show progress bar, percentage, status update.</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://www.nngroup.com/articles/skeleton-screens/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/designing-better-loading-progress-ux/5.png" alt="A mobile app screen transitioning from a wireframe layout to a filled-in user interface, displaying personalized wellness activities." width="1500" height="1197" loading="lazy"> </a> <figcaption><p>Headspace <a href="https://www.nngroup.com/articles/skeleton-screens/">uses a skeleton screen</a> to build users' expectations for the structure of the page. These days it's a common way to indicate progress as the application is loading.</p> </figcaption> </figure> <p>For <strong>long wait times</strong>, it's a good idea to not only show detailed progress, but also allow users to interact with other parts of the application or offer options for what to do next. Keeping people busy works best.</p> <h2 id="reducing-perceived-waiting-time" tabindex="-1">Reducing Perceived Waiting Time <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/designing-better-loading-progress-ux/#reducing-perceived-waiting-time">#</a></h2> <p><strong>Uncertainty amplifies waiting discomfort</strong>. But when a product signals and <em>visualizes progress</em>, users tend to accept longer waiting time because they have right expectations and can track that progress as it's happening (Buell &amp; Norton, 2011).</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.smashingmagazine.com/2015/12/performance-matters-part-3-tolerance-management/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/designing-better-loading-progress-ux/6.jpg" alt="A visual data analysis showing how progress bars decrease abandonment and perceived waiting time for users." width="1500" height="823" loading="lazy"> </a> <figcaption><p>The different flavors of waiting UX — dynamic, determinate indicators typically work well for longer waiting times. By Denys Mishunov.</p> </figcaption> </figure> <p>One interesting technique to reduce perceive waiting time is <strong><a href="https://www.smashingmagazine.com/2016/11/true-lies-of-optimistic-user-interfaces/">optimistic UI</a></strong>. There, we allow users to <strong>proceed with next steps</strong> or interactions while a background process continues. Basically we shift from passive waiting to active waiting, again, by keeping users busy.</p> <p>We know it intuitively, but it's worth mentioning nevertheless: the more <strong>valuable the reward</strong> for completing a task, the higher the user's tolerance for waiting. So if we communicate that the waiting will be worth it, it might be helping to nudge user to wait a little bit longer.</p> <h2 id="always-start-early" tabindex="-1">Always Start Early <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/designing-better-loading-progress-ux/#always-start-early">#</a></h2> <p>Research also shows that waiting to <em>start</em> a task feels longer than waiting for it to <em>finish</em>, so initiating tasks early can minimize frustration. For example, we perceive loading slightly faster if the <strong>progress bar moves faster</strong> at the beginning and slows down at the end, rather than moving at a constant speed.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.scotthurff.com/posts/why-your-user-interface-is-awkward-youre-ignoring-the-ui-stack/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/designing-better-loading-progress-ux/7.jpg" alt="A diagram titled The UI Stack shows five distinct layers representing UI states: Blank, Loading, Partial, Error, and Ideal." width="1500" height="1947" loading="lazy"> </a> <figcaption><p><a href="https://www.scotthurff.com/posts/why-your-user-interface-is-awkward-youre-ignoring-the-ui-stack/">The UI Stack</a>: we need to design not only ideal and error states, but also loading state and partial state. By Scott Hurff.</p> </figcaption> </figure> <p>We also need to be mindful of <strong>&quot;queue jumping&quot;</strong>: when a task that started later finishes before one that started earlier. That's when users lose trust and confidence in the system as they no longer know if everything actually worked as expected.</p> <h2 id="tldr-useful-ux-guidelines" tabindex="-1">TL;DR Useful UX Guidelines <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/designing-better-loading-progress-ux/#tldr-useful-ux-guidelines">#</a></h2> <ul> <li><strong>Match the indicator</strong> to the wait time. The choice depends on how long you expect users to wait.</li> <li><strong>Spinners</strong> work for short, repetitive tasks. Avoid multiple spinners on one page.</li> <li><strong>Skeleton screens</strong> work better than spinners. They make the load feel faster and more structured.</li> <li><strong>Show indicator where they will appear</strong>. For &quot;scroll up to refresh&quot; the indicator should be at the top; for pagination or infinite scroll, it should be at the bottom.</li> <li><strong>Design background operations</strong>: For long processes (e.g. video export), collapse the task into a background state, so the user isn't &quot;blocked&quot; from using the rest of the application.</li> </ul> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/designing-better-loading-progress-ux/#wrapping-up">#</a></h2> <p>While these strategies might not make your application faster, they will make it <em>feel</em> faster — and it could be enough to keep users on the page for just a little bit longer, and drive them to success from there.</p> <p>Just keep in mind: you are not designing a regular UI component. You are designing the <strong>waiting UX</strong>. And the best experience is when users never experience it. But if they must, make sure it's worth the waiting.</p> <hr> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/designing-better-loading-progress-ux/#useful-resources">#</a></h2> <ul> <li><a href="https://www.smashingmagazine.com/2015/09/why-performance-matters-the-perception-of-time/">Part 1: The Perception Of Time</a>, by Denys Mishunov</li> <li><a href="https://www.smashingmagazine.com/2015/11/why-performance-matters-part-2-perception-management/">Part 2: Perception Management</a>, by Denys Mishunov</li> <li><a href="https://www.smashingmagazine.com/2015/12/performance-matters-part-3-tolerance-management/">Part 3: Tolerance Management</a>, by Denys Mishunov</li> <li><a href="https://www.smashingmagazine.com/2016/11/true-lies-of-optimistic-user-interfaces/">Part 4: True Lies of Optimistic Interfaces</a>, by Denys Mishunov</li> <li><a href="https://uxdesign.cc/loading-progress-indicators-ui-components-series-f4b1fc35339a">Loading and Progress Indicators UX</a>, by Taras Bakusevych</li> <li><a href="https://uxdesign.cc/what-you-should-know-about-skeleton-screens-a820c45a571a">Everything You Need to Know About Skeleton Screens</a>, by Bill C.</li> <li><a href="https://www.nngroup.com/articles/progress-indicators/">Progress Indicators Make a Slow System Less Insufferable</a>, by Katie Sherwin, NN/g</li> <li><a href="https://www.pencilandpaper.io/articles/ux-pattern-analysis-loading-feedback">Loading Feedback in Enterprise UX</a>, by Fanny Vassilatos, Ceara Crawshaw</li> <li><a href="https://www.scotthurff.com/posts/why-your-user-interface-is-awkward-youre-ignoring-the-ui-stack/">How To Fix a Bad User Interface</a>, by Scott Hurff</li> </ul> Wed, 04 Feb 2026 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/designing-better-loading-progress-ux/ Combobox vs. Multiselect vs. Listbox https://smart-interface-design-patterns.com/articles/combobox-multiselect-listbox/ <p>So what's the difference between combobox, multiselect, listbox and dropdown? While all these UI components might appear similar, they serve different purposes. The choice often comes down to the <strong>number of available options</strong> and their visibility.</p> <p>Let's see how they differ, <strong>what purpose they serve</strong> and how to choose the right one — avoiding misunderstandings and wrong expectations along the way.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/combobox-multiselect-listbox/1.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/combobox-multiselect-listbox/1.jpg" alt="A comparison of UI elements: Listbox, Combobox, Multiselect, and Dual Listbox, showcasing different selection functionalities." width="1433" height="1536" loading="lazy"> </a> <figcaption><p>And the confusion begins: Listbox, Combobox, Multiselect, Dual Listbox.</p> </figcaption> </figure> <h2 id="not-all-list-patterns-are-the-same" tabindex="-1">Not All List Patterns Are The Same <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/combobox-multiselect-listbox/#not-all-list-patterns-are-the-same">#</a></h2> <p>All the UI components highlighted above have exactly one thing in common — they support user's interactions with lists. However, they do so slightly differently.</p> <p>Let's take a look at each, one by one:</p> <ul> <li><strong>Dropdown</strong> → list is hidden until it's triggered.</li> <li><strong>Combobox</strong> → type to filter + select 1 option.</li> <li><strong>Multiselect</strong> → type to filter + select many options.</li> <li><strong>Listbox</strong> → all list options visible by default (+ scroll).</li> <li><strong>Dual listbox</strong> → move items between 2 listboxes.</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://watson.docplanner.design/latest/watson-web/components/combobox/usage-guidelines-L68K6G51"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/combobox-multiselect-listbox/2.jpg" alt="Watson design system with grouping inside of its combobox pattern." width="1117" height="1152" loading="lazy"> </a> <figcaption><p>Watson design system with grouping inside of its <a href="https://watson.docplanner.design/latest/watson-web/components/combobox/usage-guidelines-L68K6G51">combobox pattern</a>.</p> </figcaption> </figure> <p>In other words, <em>Combobox</em> combines a text input field with a dropdown list, so users can <strong>type to filter</strong> and select a single option. With <em>Multiselect</em>, users can select many options (often displayed as pills or chips).</p> <p><em>Listboxes</em> display <strong>all list options visible</strong> by default, often with scrolling. It's helpful when users need to see all available choices immediately. <em>Dual listbox</em> (also called <em>transfer list</em>) is a variation of a listbox that allows users to <strong>move items between two listboxes</strong> (left ↔ right), typically for bulk selection.</p> <h2 id="never-hide-frequently-used-options" tabindex="-1">Never Hide Frequently Used Options <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/combobox-multiselect-listbox/#never-hide-frequently-used-options">#</a></h2> <p>As mentioned above, the choice of the right UI component depends on <strong>2 factors</strong>: how many list options are available, and if all these options need to be visible by default. All lists could have tree structures, nesting and group selection, too.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.mongodb.design/component/combobox/live-example"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/combobox-multiselect-listbox/3.jpg" alt="A dropdown menu showing product selection. Compass is selected, and Atlas is selected with two sub-options: Vector Search and Atlas CLI." width="1280" height="1242" loading="lazy"> </a> <figcaption><p><a href="https://www.mongodb.design/component/combobox/live-example">MongoDB design system</a> with nested filters and chips.</p> </figcaption> </figure> <p>There is one principle that I've been following for years for any UI component: <strong>never hide frequently used options</strong>. If users rely on a particular selection frequently, there is very little value in hiding it from them.</p> <p>We could either make it <strong>pre-selected</strong>, or (if there are only 2–3 frequently used options) show them as <a href="https://smart-interface-design-patterns.com/articles/badges-chips-tags-pills/"><strong>chips or buttons</strong></a>, and then show the rest of the list on interaction. In general, it's a good idea to always display popular options — even if it might clutter the UI.</p> <h2 id="how-to-choose-which" tabindex="-1">How To Choose Which? <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/combobox-multiselect-listbox/#how-to-choose-which">#</a></h2> <p>Not every list needs a complex selection method. For lists with <strong>fewer than 5 items</strong>, simple radio buttons or checkboxes usually work best. But if users need to select from a <strong>large list</strong> of options (e.g. 200+ items), combobox + multiselect are helpful because of the faster filtering (e.g. country selection).</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.nngroup.com/articles/listbox-dropdown/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/combobox-multiselect-listbox/4.jpg" alt="Matrix of options for multiselect and listboxes." width="2105" height="1899" loading="lazy"> </a> <figcaption><p>A <a href="https://www.nngroup.com/articles/listbox-dropdown/">matrix of options</a>, broken down by single- or multi-selection and static or scrollable view. By Anna Kaley, from NN/g.</p> </figcaption> </figure> <p><strong>Listboxes</strong> are helpful when people need to access <strong>many options at once</strong>, especially if they need to choose many options from that list as well. They could be helpful for frequently used filters.</p> <figure class="c-article__image u-flow--xs"> <a href="https://v5.mantine.dev/core/transfer-list/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/combobox-multiselect-listbox/5.png" alt="Dual list box used to transfer items from one place to another." width="1624" height="950" loading="lazy"> </a> <figcaption><p>Dual listbox in action: it can be very helpful when assigning tasks or permissions. That's why it's &quot;Transfer List&quot;. Example from <a href="https://v5.mantine.dev/core/transfer-list/">Mantine</a>.</p> </figcaption> </figure> <p><strong>Dual listbox</strong> is often overlooked and ignored. But it can be very helpful for complex tasks, e..g bulk selection, or assigning roles, tasks, responsibilities. It's the only UI component that allows users to review their full selection list side-by-side with the source list before committing (also called <em>&quot;Transfer list&quot;</em>).</p> <p>In fact, dual listbox is often faster, more accurate and more accessible than <a href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/">drag-and-drop</a>.</p> <h2 id="usability-considerations" tabindex="-1">Usability Considerations <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/combobox-multiselect-listbox/#usability-considerations">#</a></h2> <p>One important note to keep in mind is that all list types need to support <strong>keyboard navigation</strong> (e.g., ↑/↓ arrow keys) for accessibility. Some people will almost always rely upon keyboard to select options once they start typing.</p> <figure class="c-article__image u-flow--xs"> <a href="https://watson.docplanner.design/latest/watson-web/components/combobox/usage-guidelines-L68K6G51"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/combobox-multiselect-listbox/6.jpg" alt="Keyboard navigation often in use with any type of lists." width="682" height="557" loading="lazy"> </a> <figcaption><p>Keyboard navigation is often in use with any kind of lists. Example: <a href="https://watson.docplanner.design/latest/watson-web/components/combobox/usage-guidelines-L68K6G51">Watson</a>.</p> </figcaption> </figure> <p>Beyond that:</p> <ul> <li>For lists with <strong>7+ options</strong>, consider adding &quot;<em>Select All</em>&quot; and &quot;<em>Clear All</em>&quot; functionalities to streamline user interaction.</li> <li>For lengthy lists with a combobox, <strong>expose all options</strong> to users on click / tap as otherwise they might never be seen,</li> <li>Most important, <strong>don't display non-interactive elements as buttons</strong> to avoid confusion — and don't display interactive elements as static labels.</li> </ul> <h2 id="wrapping-up-not-everything-is-a-dropdown" tabindex="-1">Wrapping Up: Not Everything Is A Dropdown <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/combobox-multiselect-listbox/#wrapping-up-not-everything-is-a-dropdown">#</a></h2> <p>Names matter. A <strong>vertical list of options</strong> is typically described as a &quot;dropdown&quot; — but often it's a bit too generic to be meaningful. <em>&quot;Dropdown&quot;</em> hints that the list is hidden by default. <em>&quot;Multiselect&quot;</em> implies multi-selection (checkbox) within a list. <em>&quot;Combobox&quot;</em> implies text input. And &quot;Listbox&quot; is simply a list of selectable items, visible at all times.</p> <p>The goal isn't to be consistent with the definitions above for the sake of it. But rather to <strong>align intentions</strong> — speak the same language when deciding on, designing, building and then using these UI components.</p> <p>It <strong>should work for everyone</strong> — designers, engineers and end users — as long as static labels don't look like interactive buttons, and radio buttons don't act like checkboxes.</p> <hr> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/combobox-multiselect-listbox/#useful-resources">#</a></h2> <ul> <li><a href="https://smart-interface-design-patterns.com/articles/autocomplete-ux/">Autocomplete: UX Guidelines</a>, by Vitaly Friedman</li> <li><a href="https://playbook.ebay.com/design-system/components/combobox">Combobox</a>, by eBay 👍</li> <li><a href="https://eui.elastic.co/docs/components/forms/selection/combo-box/">Combobox</a>, by Elastic</li> <li><a href="https://designsystem.elisa.fi/9b207b2c3/p/082dd3-combobox">Combobox</a>, by Elisa</li> <li><a href="https://www.mongodb.design/component/combobox/live-example">Combobox</a>, by MongoDB 👍</li> <li><a href="https://design.visa.com/components/combobox/">Combobox</a>, by Visa 👍</li> <li><a href="https://watson.docplanner.design/latest/watson-web/components/combobox/usage-guidelines-L68K6G51">Combobox</a>, by Watson (Docplanner)</li> <li><a href="https://doc.wikimedia.org/codex/latest/components/demos/combobox.html">Combobox</a>, by Wikimedia</li> <li><a href="https://garden.zendesk.com/components/combobox">Combobox</a>, by Zendesk</li> <li><a href="https://www.mongodb.design/component/combobox/design-docs">Multiselect (MongoDB Combobox Design Docs)</a>, by MongoDB 👍</li> <li><a href="https://doc.wikimedia.org/codex/latest/components/demos/multiselect-lookup.html">Multiselect Lookup</a>, by Wikimedia</li> <li><a href="https://vaadin.com/docs/latest/components/multi-select-combo-box">Multi-select Combo Box</a>, by Vaadin</li> <li><a href="https://design.visa.com/components/multiselect/">Multiselect</a>, by Visa</li> <li><a href="https://ant.design/components/transfer">Transfer (Listbox example)</a>, by Ant Design</li> <li><a href="https://hopper.workleap.design/components/Listbox">Listbox</a>, by Hopper</li> <li><a href="https://vaadin.com/docs/latest/components/list-box">List Box</a>, by Vaadin</li> <li><a href="https://design.visa.com/components/listbox/">Listbox</a>, by Visa</li> <li><a href="https://www.patternfly.org/components/dual-list-selector">Dual List Selector</a>, by Red Hat (PatternFly)</li> <li><a href="https://www.lightningdesignsystem.com/2e1ef8501/p/763763-dual-listbox">Dual Listbox</a>, by Salesforce (Lightning Design System)</li> <li><a href="https://v5.mantine.dev/core/transfer-list/">Transfer List</a>, by Mantine</li> <li><a href="https://dashlite.net/demo1/components/misc/dual-listbox.html">Dual Listbox</a>, by Dashlite</li> <li><a href="https://smart-interface-design-patterns.com/articles/badges-chips-tags-pills/">Badges vs. Pills vs. Chips vs. Tags</a>, by Vitaly Friedman</li> <li><a href="https://www.nngroup.com/articles/listbox-dropdown/">Listboxes vs. Dropdown Lists</a>, by Anna Kaley (NN/g)</li> </ul> Mon, 02 Feb 2026 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/combobox-multiselect-listbox/ Designing For People With Dementia https://smart-interface-design-patterns.com/articles/designing-for-dementia/ <p>Design is often an exercise in <strong>resilience</strong>. Our products must work for people in any life situations they find themselves. A path there always lies through accessible, inclusive design — that makes it more difficult to make mistakes.</p> <p>One frequently overlooked condition is <strong>dementia</strong>. How we can design better experiences for people with severe challenges around memory and thinking? Well, let's find out.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.alzheimers.org.uk/research/our-research/dementia-innovation/guide-designing-dementia-products-services"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/designing-for-dementia/1.jpg" alt="An infographic on designing for people with dementia, showing a circle diagram of supporting entities, surrounded by four principles and their definitions: Respect, Support, Transparency, and Commitment." width="1500" height="2187" loading="lazy"> </a> <figcaption><p>Design with empathy: a powerful approach for developing dementia-friendly products and services. <a href="https://www.alzheimers.org.uk/research/our-research/dementia-innovation/guide-designing-dementia-products-services">Practical guide PDF</a>.</p> </figcaption> </figure> <h2 id="what-exactly-is-dementia" tabindex="-1">What Exactly Is Dementia? <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/designing-for-dementia/#what-exactly-is-dementia">#</a></h2> <p>Dementia is a syndrome that significantly affects memory, thinking and social interactions. It affects <strong>55 million people globally</strong> and that number will reach 139 million by 2050. Alzheimer's disease is the most common cause for dementia (around 60–80% of all cases).</p> <p>The syndrome comes slowly and unexpectedly, typically around the <strong>age of 65</strong>, but early-onset dementia can also occur between 45–65 years (9%). Usually it starts showing in confusion, disorientation, language and difficulty with <strong>sequenced actions</strong> (like cooking).</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.alzheimers.org.uk/research/our-research/dementia-innovation/guide-designing-dementia-products-services"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/designing-for-dementia/2.jpg" alt="A practical overview of UX guidelines on how to design with and for people affected by dementia." width="1500" height="1864" loading="lazy"> </a> <figcaption><p>A practical overview of UX guidelines on how to design with and for people affected by dementia. <a href="https://www.alzheimers.org.uk/research/our-research/dementia-innovation/guide-designing-dementia-products-services">Practical guide PDF</a>.</p> </figcaption> </figure> <p>That's when shiny surfaces look wet and dark mats look like holes. And sometimes it's simply forgetting what a microwave beep means. In such situations many people feel incredibly embararassed, so they <strong>mask symptoms for months</strong> and years — writing extensive notes to &quot;make up&quot; for memory loss or avoiding phone calls.</p> <p>As dementia progresses, it's becoming <strong>impossible to remember recent events</strong> or recall information. Following multi-step instructions is hard (e.g. cooking a meal) — but even counting coins or cutting and pasting text can be difficult.</p> <h2 id="design-patterns-for-people-with-dementia" tabindex="-1">Design Patterns For People With Dementia <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/designing-for-dementia/#design-patterns-for-people-with-dementia">#</a></h2> <p>Here are considerations that we need to keep in mind for more inclusive experiences — they are quite broad accessibility needs:</p> <ol> <li><strong>Avoid auto-moving carousels</strong> or moving, flashing content. They are very distracting and are likely to cause task abandonment.</li> <li><strong>Don't rely on working memory</strong>. Instructions often get lost between the screens. If something is important to know, show it. Keep details needed to act available for look-up.</li> <li><strong>Leave traces of what happened</strong>. E.g. it's not a good idea to clear search query after it's executed, or use an overlay that covers information that a user needs to reference.</li> <li><strong>Avoid patronizing language</strong>: &quot;sweetie&quot;, &quot;well done&quot;, &quot;really good job!&quot;.</li> <li><strong>Always add text labels to icons</strong>, especially the abstract ones. People learn icons, but just as well they forget them and get lost between them.</li> <li><strong>Buttons and inputs need borders</strong>, min 44×44px touch targets. White buttons with subtle shadow on white background are difficult to spot.</li> <li><strong>Test legibility of web fonts</strong>. Use the text snippet <code>1Il0O</code> to test legibility — individual characters must be distinguishable. Line height of 1.5+ prevents lines from &quot;swimming&quot; together.</li> <li><strong>Favor left-aligned text</strong>: justified text creates &quot;rivers of white&quot; that are highly distracting.</li> <li><strong>Avoid generic labels</strong> (&quot;Submit&quot;, &quot;Confirm&quot;, &quot;Proceed&quot;). Better use descriptive, verb-based labels, e.g. &quot;Finish and Send&quot;.</li> <li><strong>No puzzles/CAPTCHAs</strong>: these are cognitive blockers (WCAG 2.2).</li> <li><strong>Forgiving inputs</strong>: Allowing variations in data entry and toggle passwords for easier access.</li> </ol> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/transferwise-design/accessible-but-never-boring-part-1-ec8222f1f364"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/designing-for-dementia/3.jpg" alt="An illustration showing how accessible design doesn't mean boring - featuring bold, colorful design elements." width="1500" height="1616" loading="lazy"> </a> <figcaption><p>Accessible doesn't mean boring. The ambition was to create an accessible, inclusive UX that is also exciting and bold. <a href="https://medium.com/transferwise-design/accessible-but-never-boring-part-1-ec8222f1f364">Wise case study</a>.</p> </figcaption> </figure> <p>A point I'd like to raise is that memory tests, image recognition tests and puzzles <strong>proactively exclude people</strong> with cognitive disabilities. And, as stated in WCAG 2.2, we need to avoid password-only authentication with alternative ways — password managers, social login and biometric auth. Password-only systems are often cognitive traps for dementia users.</p> <p>Also, around ~15% of dementia users also have <strong>motor impairments</strong> or low vision. They navigate entirely with keyboard or adaptive devices. Steph Walter highlighs use cases for cognitive accessibility in post on <a href="https://stephaniewalter.design/blog/neurodiversity-and-ux-essential-resources-for-cognitive-accessibility/">neurodiversity and UX</a>.</p> <h2 id="dignified-experience-and-sense-of-independence" tabindex="-1">Dignified Experience and Sense of Independence <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/designing-for-dementia/#dignified-experience-and-sense-of-independence">#</a></h2> <p>When we think about users with dementia, we might instinctively consider a &quot;simple&quot; version of the product that strips all details and all complexities away. However, an <strong>oversimplified version</strong> is likely to lead to more, not fewer, mistakes.</p> <p>Users with dementia don't need a barebones version of your product. They need resilient, error-proof paths to follow — with a <strong>respectful</strong>, helpful, dignified UX and a sense of independence, even if the mind changes frequently.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/designing-for-dementia/#wrapping-up">#</a></h2> <p>It's important to understand that dementia fluctuates (<strong>good days vs. bad days</strong>) but the long-term trajectory is downward. Still, it's a condition where capability can be highly fluid and highly dependent on user's environment. Creating order around tasks helps.</p> <p>Just like any other group, older users need a reliable, clear product that helps them feel independent and competent. Bring people living with dementia in your design process to find out what their specific needs are.</p> <p>&quot;<strong>Nothing about us without us</strong>&quot;: you can't design <em>for</em> people without designing <em>with</em> them.</p> <p>And huge kudos to wonderful people contributing to a topic that is often forgotten and overlooked. 👏🏼👏🏽👏🏾</p> <hr> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/designing-for-dementia/#useful-resources">#</a></h2> <ul> <li><a href="https://dementiadiaries.org/">Dementia Diaries</a> (audio diaries recorded by people living with dementia)</li> <li><a href="https://abilitynet.org.uk/webinars/dementia-friendly-design-expert-tips-inclusive-websites">Free Webinar: Dementia-Friendly Design</a>, by AbilityNet</li> <li><a href="https://uxdesign.cc/making-memory-loss-easier-for-families-ux-case-study-52b65b952deb">Making memory loss easier for families, UX case study</a>, by Sean Rockwood</li> <li><a href="https://rikwilliams.net/resources/dementia-digital-design-guidelines/">Dementia Digital Design Guidelines</a>, by Rik Williams</li> <li><a href="https://abilitynet.org.uk/factsheets/designing-dementia">Designing for Dementia</a>, by AbilityNet</li> <li><a href="https://www.alzheimers.org.uk/research/our-research/dementia-innovation/guide-designing-dementia-products-services">Practical guide to designing products for people with dementia</a>, by Alzheimer's Society</li> <li><a href="https://designingfordementia.eu/">MinD: Designing for People with Dementia</a></li> <li><a href="https://www.shive-hattery.com/designing-for-dementia-9-tips-to-improve-environments/">Designing For Dementia: 9 Tips To Improve Environments</a></li> <li><a href="https://www.alzheimers.org.uk/research/our-research/dementia-innovation/guide-designing-dementia-products-services">Dementia-friendly Service Design</a>, by Alzheimer's Society</li> <li><a href="https://dementiavoices.org.uk/wp-content/uploads/2021/05/DEEP-Guide-Language.pdf">DEEP Guide: Language and Dementia</a></li> <li><a href="https://www.w3.org/WAI/cognitive/">W3C Cognitive Accessibility Guidance (COGA)</a></li> </ul> Tue, 20 Jan 2026 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/designing-for-dementia/ How We Brainstorm And Choose UX Ideas https://smart-interface-design-patterns.com/articles/brainstorm-choose-ux-ideas/ <p>Many brainstorming sessions are an <strong>avalanche of unstructured ideas</strong>. They are mostly based on hunches, assumptions and grandiose but impossible ideas.</p> <p>Just like we <strong>need constraints to be intentional</strong> in our design decisions, we need structure to mold realistic and viable ideas. But how do we do that? Well, let's figure it out.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/booking-writes/tackling-ux-challenges-as-a-team-cdfbf6759537"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/brainstorm-choose-ux-ideas/1.jpg" alt="A five-step process diagram illustrating pre-session data collection, ideation session activities like clustering and grouping, and post-session concept visualization." width="1500" height="2642" loading="lazy"> </a> <figcaption><p>From collecting data to HMW to prioritizing concepts: a detailed visualization of the brainstorming process by Booking.com. <a href="https://medium.com/booking-writes/tackling-ux-challenges-as-a-team-cdfbf6759537">Large view</a>.</p> </figcaption> </figure> <h2 id="giving-people-time-to-think" tabindex="-1">Giving People Time To Think <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/brainstorm-choose-ux-ideas/#giving-people-time-to-think">#</a></h2> <p>In the messiness of idea generation, we often forget that <strong>people need time to think</strong> to come up with good ideas. Different people think differently, and they need different amount of time.</p> <p>Some people think better at home in early mornings, others think best at their workspace, and others just before falling asleep or walking outside. Their ideas can be <strong>vastly different and vastly divergent</strong> — and that's exactly what we aim for with brainstorming.</p> <p>Yet in many companies ideation sessions limit these explorations by running collaborative exercises too early.</p> <h2 id="silent-brainstorming" tabindex="-1">Silent Brainstorming <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/brainstorm-choose-ux-ideas/#silent-brainstorming">#</a></h2> <p>One of the impactful changes I've noticed is just how helpful it is to give people time to think about a problem <strong>in silence</strong>, on their own, alone with their own thoughts — before jumping into groupthink and collaborative work.</p> <p>A helpful thing to do is to <strong>give people time and space</strong> to come up with ideas without enforcing physical or spacial boundaries on them. We could send them an overview of what to brainstorm on ahead of time, along with the context and established goals.</p> <p>Once everybody has thought about a problem independently, <strong>bring all the ideas together</strong>. We can then run collaborative exercises to find the direction, and perhaps synthesize ideas or resolve opposite directions. But: we need to see how it might fit in the overall brainstorming format.</p> <h2 id="bookingcoms-brainstorming-model" tabindex="-1">Booking.com's Brainstorming Model <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/brainstorm-choose-ux-ideas/#bookingcoms-brainstorming-model">#</a></h2> <p>A few years ago I've stumbled upon <a href="https://medium.com/booking-writes/tackling-ux-challenges-as-a-team-cdfbf6759537">Booking.com's model</a> to generate ideas more effectively. It's a quite simple process which actually makes ideation slightly <strong>more intentional and less chaotic</strong>.</p> <ul> <li><a href="https://miro.medium.com/v2/1*00IthFfN-YEPs9cjj9A7PQ.png">Full Brainstorming Process</a> (PNG)</li> <li><a href="https://medium.com/booking-writes/tackling-ux-challenges-as-a-team-cdfbf6759537">Practical guide by Booking.com</a></li> <li><a href="https://miro.com/app/board/uXjVPx9Shfs=/?share_link_id=184118378352">Miro Template</a>, password: <code>bookingcom</code></li> </ul> <p>Brainstorming starts with a <strong>good preparation</strong>. We study past research and gather all relevant data for the following 3 pillars:</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/booking-writes/tackling-ux-challenges-as-a-team-cdfbf6759537"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/brainstorm-choose-ux-ideas/2.png" alt="3 pillars of brainstorming: users, business and competition." width="1500" height="1462" loading="lazy"> </a> <figcaption><p>3 pillars of brainstorming: users, business and competition. <a href="https://medium.com/booking-writes/tackling-ux-challenges-as-a-team-cdfbf6759537">Large view</a>.</p> </figcaption> </figure> <ul> <li><strong>User pain points and needs</strong><br> Past research, user needs relevant to the topic.</li> <li><strong>Business goals and needs</strong><br> Perspective from PMs, business leaders on main product and business goals.</li> <li><strong>Competitive landscape</strong><br> Competitors' features and their product reviews, social media.</li> </ul> <p>All these insights land on a Miro board, with <strong>one note per data point</strong> and one unique color fo each pillar. It makes sorting and grouping them later much easier.</p> <p>Once all data points are collected, we <strong>send invitations</strong> to people who need to be involved in brainstorming — not just designers, but also product, marketing, engineering folks who can contribute relevant insights and perspectives.</p> <h2 id="individual-thinking-first" tabindex="-1">Individual Thinking First <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/brainstorm-choose-ux-ideas/#individual-thinking-first">#</a></h2> <p>The brainstorming session starts by <strong>reiterating context</strong> about the problem and the goals. We read all notes, one by one, discuss collected data points and then invite participants to form themes around them <strong>silently, independently</strong> first.</p> <p>Personally, I'd love participants to <strong>already have them ready</strong>, and already have it on the Miro board before the start of the session. But it's useful to give people time to think about it a bit more before moving to ideation.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/booking-writes/tackling-ux-challenges-as-a-team-cdfbf6759537"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/brainstorm-choose-ux-ideas/3.png" alt="Clustering data points into themes, by relevance." width="1500" height="1289" loading="lazy"> </a> <figcaption><p>Clustering data points into themes, by relevance. <a href="https://medium.com/booking-writes/tackling-ux-challenges-as-a-team-cdfbf6759537">Large view</a>.</p> </figcaption> </figure> <p>Once it's done, we build small groups of 3–4 people max to discuss proposed theme names and where data belongs to. The goal is to have the <strong>smallest meaningful number of themes</strong>.</p> <h2 id="how-might-we-hmw-statements" tabindex="-1">How Might We&quot; (HMW) statements <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/brainstorm-choose-ux-ideas/#how-might-we-hmw-statements">#</a></h2> <p>Next, we could reframe each theme as a <strong>&quot;How Might We&quot; (HMW) statement</strong>. We start with the problems or insights we've uncovered during your research, and then focus on ideas with desired outcomes, rather than just symptoms.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/booking-writes/tackling-ux-challenges-as-a-team-cdfbf6759537"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/brainstorm-choose-ux-ideas/4.png" alt="Reframing every theme as a HMW statement and ideating on ways to work at the intersection of the three pillars." width="1500" height="1332" loading="lazy"> </a> <figcaption><p>Reframing every theme as a HMW statement and ideating on ways to work at the intersection of the three pillars. <a href="https://medium.com/booking-writes/tackling-ux-challenges-as-a-team-cdfbf6759537">Large view</a>.</p> </figcaption> </figure> <p>That's also what participants might already have before the session. But because not everybody will have had the time to complete it, giving time to put it all together, or perhaps explore other themes and other ideas is useful.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/booking-writes/tackling-ux-challenges-as-a-team-cdfbf6759537"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/brainstorm-choose-ux-ideas/5.png" alt="For every theme, grouping by relevance ideas from different participants of the ideation session." width="1500" height="2895" loading="lazy"> </a> <figcaption><p>For every theme, grouping by relevance ideas from different participants of the ideation session. <a href="https://medium.com/booking-writes/tackling-ux-challenges-as-a-team-cdfbf6759537">Large view</a>.</p> </figcaption> </figure> <p>Then, for every theme, we then <strong>collect and group ideas by relevance</strong>, prioritize and visualize them. There, using visuals and storyboards helps make complex ideas more accessible and engaging for the whole team.</p> <h2 id="sharing-and-revising-ideas" tabindex="-1">Sharing and Revising Ideas <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/brainstorm-choose-ux-ideas/#sharing-and-revising-ideas">#</a></h2> <p>In the end, all participants take turns in <strong>sharing their ideas</strong> to the group. It also gives time for other participants to build upon what they have been thinking of, and double check if their direction is meaningful to a broader audience.</p> <p>Some teams build small groups for collaborative revision of ideas, others build groups based on themes they've chosen. However, often ideas <strong>get dismissed too quickly</strong>, without having a chance to be publicly discussed. Personally, I would go with giving everyone the time to do the work independently, and then present their ideas for discussion.</p> <p>It's a simple but very helpful approach — without too much rigidity but just enough structure to generate, prioritize and eventually visualize effective ideas with the entire team.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/brainstorm-choose-ux-ideas/#wrapping-up">#</a></h2> <p>The goal of effective brainstorming is to come up with <strong>feasible next steps</strong> to pursue. To do that, we need to move beyond assumptions, trying to build ideas upon what we know, rather than what we believe to be true.</p> <p>Brainstorming often appears chaotic, but it doesn't have to be. Best results come from a workshop that gives people the freedom to think <strong>in their own time at their own pace</strong> — and in their comfortable space, without biases or self-imposed limitations.</p> <p>Hopefully, the technique above will help with just that!</p> <hr> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/brainstorm-choose-ux-ideas/#useful-resources">#</a></h2> <ul> <li><a href="https://medium.com/booking-writes/tackling-ux-challenges-as-a-team-cdfbf6759537">&quot;How We Brainstorm And Choose UX Ideas&quot;</a>, by Evan Karageorgos, Tori Holmes, Alexandre Benitah (Booking.com)</li> <li><a href="https://miro.com/app/board/uXjVPx9Shfs=/?share_link_id=184118378352">Booking.com UX Ideation Template (Miro)</a> (password <code>bookingcom</code>), by Booking.com</li> <li><a href="https://medium.com/design-bridges/brainstorm-79e51f20f313">The Rules of Productive Brainstorming</a>, by Slava Shestopalov</li> <li><a href="https://www.nngroup.com/articles/how-might-we-questions/">On &quot;How Might We&quot; Questions</a>, by Maria Rosala, NN/g</li> <li><a href="https://www.nngroup.com/articles/ux-ideation/">Ideation for Everyday Design Challenges</a>, by Aurora Harley, NN/g</li> <li><a href="https://www.ideo.com/journal/5-brainstorming-exercises-for-introverts">Brainstorming Exercises for Introverts</a>, by Allison Press</li> <li><a href="https://www.intercom.com/blog/running-design-workshops/">How To Run Successful Product Design Workshops</a>, by Gustavs Cirulis, Cindy Chang</li> <li><a href="https://lo.unisa.edu.au/pluginfile.php/916819/mod_book/chapter/100453/The%20Six%20Thinking%20Hats.pdf">Edward de Bono's 6 Thinking Hats (PDF Cheatsheet)</a>, by Edward de Bono</li> </ul> Thu, 15 Jan 2026 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/brainstorm-choose-ux-ideas/ Inclusive Design Patterns For 2025 (Free Video + Slides) https://smart-interface-design-patterns.com/articles/inclusive-design/ <p>Meet <a href="https://docs.google.com/document/d/1ZKV1P9pSbnCA6XE6MHoOPqN6VBjCZDFY30L2Nt9Mkb0/edit">Inclusive Design Patterns For 2025</a>, a <strong>free 3h 30mins-workshop</strong> with yours truly on <strong>accessibility</strong> — with all videos, slides and examples, recorded yesterday. Feel free to share with your friends and colleagues — no strings attached!</p> <ul> <li><a href="https://docs.google.com/document/d/1ZKV1P9pSbnCA6XE6MHoOPqN6VBjCZDFY30L2Nt9Mkb0/edit">Google Doc</a> (feel free to share as well!)</li> <li><a href="https://drive.google.com/drive/folders/1X02WaapJSiAPpTJsbflusKYdFv8S4ogU?usp=drive_link">All workshop slides</a> (1150 slides, PDF, 378MB)</li> <li><a href="https://smashingmagazine.zoom.us/rec/share/GeEZ_B5gb7ub9A1YIHzPmjM42KTpvIA7lEWqjzLRre9nz9YJjTO3vu4_jDMgM-N0.GR8LgMsc8co7tSIm">Full video recording</a> (incl. captions) (backup: <a href="https://youtube.com/live/xEtKkLdAnvI">YouTube</a>)</li> <li><a href="https://smart-interface-design-patterns.com/">Smart Interface Design Patterns</a>, a practical video library, <strong>15% off</strong> with the code <code>INCLUSIVE</code>.</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://docs.google.com/document/d/1ZKV1P9pSbnCA6XE6MHoOPqN6VBjCZDFY30L2Nt9Mkb0/edit"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/inclusive-design/1.jpg" alt="An example of search UX from the workshop" width="1500" height="832" loading="lazy"> </a> </figure> Mon, 12 Jan 2026 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/inclusive-design/ Product Designer's Career Paths https://smart-interface-design-patterns.com/articles/ux-career-level-paths/ <p>As the new year begins, I often find myself in a strange place — reflecting back at the previous year, or looking forward at the year ahead. And as I speak with colleagues and friends at the time, typically it doesn't take long until a conversation about <strong>career trajectory</strong> emerges. So I thought I'd share a few thoughts on <strong>how to shape your career path</strong> as we are looking ahead in 2026. Hopefully you'll find it useful.</p> <h2 id="run-a-retrospective-for-last-year" tabindex="-1">Run A Retrospective For Last Year <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-career-level-paths/#run-a-retrospective-for-last-year">#</a></h2> <p>To be honest, for many years, I was mostly reacting. The life was happening <em>to</em> me, rather than me shaping the life that I was living. I was <strong>making progress reactively</strong> and I was looking out for all kinds of opportunities. It was easy and quite straightforward — I was floating and jumping between projects and calls and making things work as I was going along.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.linkedin.com/feed/update/urn:li:activity:7345798373368578050/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ux-career-level-paths/1.jpeg" alt="A flowchart titled " Design="" Your="" Future:="" A="" Career="" Decision="" Map="" for="" UX="" Designers"="" detailing="" various="" career="" paths."="" width="1500" height="1868" loading="lazy"> </a> <figcaption><p><a href="https://www.linkedin.com/feed/update/urn:li:activity:7345798373368578050/">Career Decision Map for UX Designers</a>, put together by Lily Yue.</p> </figcaption> </figure> <p>Years ago, my wonderful wife introduced <strong>one little annual ritual</strong> which changed that dynamic entirely. By the end of each year, we sit with nothing but paper and pencil, and run a thorough <strong>retrospective of the past year</strong> — successes, mistakes, good moments, bad moments, things we loved and things we wanted to change. We look back at our memories, projects and events that stood out that year. And then we take notes for where we stand in terms of personal growth, professional work and social connections — and <strong>how we want to grow</strong>.</p> <p>These are <strong>the questions</strong> I'm trying to answer there:</p> <ul> <li>What did I find <strong>most rewarding</strong> and fulfilling last year?</li> <li>What <strong>fears and concerns slowed me down</strong> the most?</li> <li>What could I <strong>leave behind</strong>, give away or simplify?</li> <li>What tasks would be <strong>good to delegate</strong> or automate?</li> <li>What are my <strong>3 priorities to grow</strong> this upcoming year?</li> <li>What <strong>times do I block</strong> in my calendar for my priorities?</li> </ul> <p>It probably sounds quite cliche, but these 4-5h of our time every year set a <strong>foundation for changes</strong> to introduce for the next year. This little exercise shapes the trajectory that I'll be designing and prioritizing next year. I can't recommend it enough.</p> <h2 id="ux-skills-self-assessment-matrix" tabindex="-1">UX Skills Self-Assessment Matrix <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-career-level-paths/#ux-skills-self-assessment-matrix">#</a></h2> <p>Another little tool that I found helpful for professional growth is <a href="https://www.figma.com/community/file/1142203484282738794/design-skills-matrix">UX Skills Self-Assessment Matrix</a> (Figma template) by Maigen Thomas. It's a neat little tool that's designed to help you understand what you'd like to do more of, what you'd prefer to do less, and where your <strong>current learning curve</strong> lies vs. where you feel <strong>confident in your expertise</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.figma.com/community/file/1142203484282738794/design-skills-matrix"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ux-career-level-paths/2.jpeg" alt="A 'Design Skills Self-Assessment Matrix' with a colorful header and a grid below plotting skills across 'Still Learning,' 'Want to Do More,' 'Expert at This,' and 'Want to Do Less' quadrants." width="1500" height="2294" loading="lazy"> </a> <figcaption><p>A <a href="https://www.figma.com/community/file/1142203484282738794/design-skills-matrix">neat little tool</a> to identify where you stand, what you want to do less of, more of and what you'd like to learn.</p> </figcaption> </figure> <p>The exercise typically takes around 20–30 minutes, and it helps identify the <strong>UX skills with a sweet spot</strong> – typically the upper half of the canvas. You'll also pinpoint areas where you're improving, and those where you are already pretty good at. It's a neat reality check — and a great reminder once you review it year after year. Highly recommended!</p> <h2 id="find-your-product-design-career-path" tabindex="-1">Find Your Product Design Career Path <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-career-level-paths/#find-your-product-design-career-path">#</a></h2> <p>When we speak about career trajectory, it's almost always assumed that the career progression inevitably leads to <strong>management</strong>. However, this hasn't been a path I preferred, and it isn't always the ideal path for everyone. Personally, I prefer to work on intricate fine details of UX flows, and deep dive into <strong>complex UX challenges</strong>. However, eventually it might feel like you've stopped growing — perhaps you've hit a ceiling in your organization, or you have little room for exploration and learning. So where do you go from there?</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/fixing-product-design-career-paths-with-the-mirror-model-76152b7e547?sk=v2%2F0a6cb162-4def-4f1c-ac5e-b145597646c7"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ux-career-level-paths/3.jpeg" alt="A complex flowchart titled 'Product Design Career Paths: The Mirror Model' in blue, detailing two parallel career progression tracks: individual contributor and management." width="1500" height="1053" loading="lazy"> </a> <figcaption><p><a href="https://uxdesign.cc/fixing-product-design-career-paths-with-the-mirror-model-76152b7e547?sk=v2%2F0a6cb162-4def-4f1c-ac5e-b145597646c7">The Mirror Model</a> (<a href="https://drive.google.com/file/d/1BePJyrd8q0D1mVgIV2h8ghds8IbbyzBR/view">PDF</a>) is a helpful way to visualize creative and managerial paths with equivalent influence and compensation.</p> </figcaption> </figure> <p>A helpful model to think about your next steps is to consider Ryan Ford's <a href="https://uxdesign.cc/fixing-product-design-career-paths-with-the-mirror-model-76152b7e547?sk=v2%2F0a6cb162-4def-4f1c-ac5e-b145597646c7">Mirror Model</a>. It explores <strong>career paths and expectations</strong> that you might want to consider to advocate for a position or influence that you wish to achieve next. That's typically something you might want to study and <strong>decide on your own first</strong>, and then bring it up for discussion. Usually there are internal opportunities out there. So before changing the company, you can switch teams, or you could shape a more fulfilling role <strong>internally</strong>. You just need to find it first. Which brings us to the next point.</p> <h2 id="proactively-shaping-your-role" tabindex="-1">Proactively Shaping Your Role <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-career-level-paths/#proactively-shaping-your-role">#</a></h2> <p>I think that one powerful, yet often overlooked, strategy is to <strong>establish new UX roles</strong> that align with business priorities. Many companies aren't aware they need a specific role until you discover a <strong>critical gap</strong> that needs to be addressed.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.linkedin.com/posts/lilyyue_uxdesign-careergrowth-productdesign-activity-7343261653901144066-8nLf/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ux-career-level-paths/4.jpeg" alt="An overview of diverse career paths, from UX research to design lead, to senior designer and design consultant." width="1500" height="1866" loading="lazy"> </a> <figcaption><p><a href="https://www.linkedin.com/posts/lilyyue_uxdesign-careergrowth-productdesign-activity-7343261653901144066-8nLf/">Diverse Career Paths For UX Designers</a>, a helpful overview by Lili Yue.</p> </figcaption> </figure> <p>Sometimes these roles might involve acting as a <strong>&quot;translator&quot;</strong> between design and engineering, specializing in UX and accessibility. They could also involve <strong>automating design processes</strong> with AI, improving workflow efficiency, or focusing on internal search UX or legacy system.</p> <p>These roles are never advertised, but they have a <strong>tremendous impact</strong> on a business. If you spot such a gap and proactively bring it to senior management, you might be able shape a role that brings your strengths into spotlight, rather than trying to fit into a predefined position.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-career-level-paths/#wrapping-up">#</a></h2> <p>The most important thing about all these little tools and activities is that they help you <strong>get more clarity</strong>. Clarity about where you currently stand, and where you actually want to grow towards.</p> <p>These are <strong>wonderful conversation starters</strong> to find a path that you'd love to explore, on your own or with your manager. However, just one thing I'd love to emphasize: absolutely feel free to refine the role to amplify your strengths, rather than finding a way to match a particular role perfectly.</p> <p>Don't forget: you bring <strong>incredible value</strong> to your team and to your company. Sometimes it just needs to be highlighted or guided to the right spot to bring it into spotlight. You've got this — and happy 2026! ✊🏼✊🏽✊🏾</p> <hr> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-career-level-paths/#useful-resources">#</a></h2> <ul> <li><a href="https://www.figma.com/community/file/1142203484282738794/design-skills-matrix">UX Skills Self-Assessment Matrix (Figma template)</a>, by Maigen Thomas</li> <li><a href="https://uxdesign.cc/fixing-product-design-career-paths-with-the-mirror-model-76152b7e547?sk=v2%2F0a6cb162-4def-4f1c-ac5e-b145597646c7">Product Designer's Career Levels Paths</a> + <a href="https://drive.google.com/file/d/1BePJyrd8q0D1mVgIV2h8ghds8IbbyzBR/view">PDF</a>, by Ryan Ford</li> <li><a href="https://www.linkedin.com/feed/update/urn:li:activity:7345798373368578050/">Career Decision Map For UX Designers (PNG)</a>, by Lily Yue</li> <li><a href="https://www.linkedin.com/posts/lilyyue_uxdesign-careergrowth-productdesign-activity-7343261653901144066-8nLf/">Diverse Career Paths For UX Designers (PNG)</a>, by Lily Yue</li> <li><a href="https://medium.com/shapingdesign">Shaping Designers and Design Teams</a>, by Jason Mesut</li> <li><a href="https://miro.com/templates/skills-map-design/">UX Skills Self-Assessment Map template (Miro)</a>, by Paóla Quintero</li> <li><a href="https://www.nngroup.com/articles/skill-mapping/">UX Skill Mapping Template (Google Sheets)</a>, by Rachel Krause, NN/g</li> <li><a href="https://shannonethomas.com/2023/08/08/growth-framework">Design Team's Growth Matrix</a>, by Shannon E. Thomas</li> <li><a href="https://www.figma.com/community/file/1220482745322443565/figma-product-design-writing-career-levels">Figma Product Design &amp; Writing Career Levels</a>, by Figma</li> <li><a href="https://miro.com/templates/content-design-role-frameworks/">Content Design Role Frameworks</a>, by Tempo</li> <li><a href="https://dscout.com/people-nerds/uxr-career-framework">UX Research Career Framework</a>, by Nikki Anderson</li> <li><a href="https://uxchrisnguyen.gumroad.com/l/uxcareerladder">UX Career Ladders (free eBook)</a>, by Christopher Nguyen</li> <li><a href="https://docs.google.com/spreadsheets/d/1cNkL4nY3Z8vTyIpIsvqpaFortYZfF-VIoUE0mkbkRMo/edit?gid=0#gid=0">Product Design Level Expectations</a>, by Aaron James</li> </ul> Fri, 09 Jan 2026 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/ux-career-level-paths/ How To Design For (And With) Deaf People https://smart-interface-design-patterns.com/articles/design-for-deaf-people/ <p>When we think about people who are deaf, we often assume stereotypes, such as &quot;disabled&quot; older adults with <strong>hearing aids</strong>. However, this perception is far from the truth, and often leads to poor decisions and broken products.</p> <p>Let's look at when and how deafness emerges, and how to design better experiences <strong>for people with hearing loss</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.youtube.com/watch?v=M0cR_HTeWUo"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-for-deaf-people/1.jpg" alt="A diagram illustrates sign language with a torso, hands, and blue lines indicating 'SPACE' and 'TIME,' beside blue text stating 'Sign language is four-dimensional.'" width="1500" height="1467" loading="lazy"> </a> <figcaption><p>Sign language is 4-dimensional: including 3D space and time — and often includes facial expressions, too. From a wonderful talk by <a href="https://www.youtube.com/watch?v=M0cR_HTeWUo">Marie van Driessche</a>.</p> </figcaption> </figure> <h2 id="deafness-is-a-spectrum" tabindex="-1">Deafness Is A Spectrum <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-for-deaf-people/#deafness-is-a-spectrum">#</a></h2> <p>Deafness spans a <strong>broad continuum</strong>, from minor to profound hearing loss. Around 90–95% of deaf people <a href="https://scholarworks.wmich.edu/jssw/vol51/iss1/11/">come from hearing families</a>, and deafness often isn't merely a condition that people are born with. It frequently occurs due to <strong>exposure to loud noises</strong>, and it also emerges with age, disease and accidents.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.didyousaydeaf.com/hearing-loss-and-how-hearing-loss-works"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-for-deaf-people/5-chart.jpg" alt="A chart showing sound frequencies and decibel levels, illustrating types of hearing loss and common everyday sounds." width="942" height="958" loading="lazy"> </a> <figcaption><p>A <a href="https://www.didyousaydeaf.com/hearing-loss-and-how-hearing-loss-works">chart</a> showing sound frequencies and decibel levels, illustrating types of hearing loss and common everyday sounds.</p> </figcaption> </figure> <p>The loudness of sound is measured in units called <strong>decibels (dB)</strong>. Everybody is on the <a href="https://www.didyousaydeaf.com/hearing-loss-and-how-hearing-loss-works">spectrum of deafness</a>, from normal hearing (up to 15 dB) to profound hearing loss (91+ dB):</p> <ul> <li><strong>Slight Hearing Loss</strong>, 16-25 dB: At 16 dB hearing loss, a person can miss up to 10% of speech when a speaker is at a distance greater than 3 feet.</li> <li><strong>Mild hearing loss</strong>, 26-40 dB: Soft sounds are hard to hear including whispering, which is around 40 dB in volume. It's more difficult to hear soft speech sounds spoken at a normal volume. At 40dB hearing loss, a person may miss 50% of meeting discussions.</li> <li><strong>Moderate hearing loss</strong>, 41-55 dB: A person may hear almost no speech when another person is talking at normal volume. At a 50dB hearing loss, a person may not pick up to 80% or speech.</li> <li><strong>Moderately Severe Hearing Loss</strong>, 56-70 dB: A person may have problems hearing sounds of a dishwasher (60dB). At 70 dB, they might miss almost all speech.</li> <li><strong>Severe Hearing Loss</strong>, 71-90 dB: A person will hear no speech when a person is talking at a normal level. They may hear only some very loud noises: vacuum (70 dB), blender (78 dB), hair dryer (90 dB).</li> <li><strong>Profound Hearing Loss</strong>, 91+ dB: Hear no speech and at most very loud sounds such as a music player at full volume (100 dB), which would be damaging for people with normal hearing, or car horn (110 dB).</li> </ul> <p>It's worth mentioning that loss of hearing can also be situational and temporary, as people with “normal” hearing (0 to 25 dB hearing loss) will always encounter situations where they can't hear — e.g. due to <strong>noisy environments</strong>.</p> <h2 id="useful-things-to-know-about-deafness" tabindex="-1">Useful Things To Know About Deafness <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-for-deaf-people/#useful-things-to-know-about-deafness">#</a></h2> <p>Assumptions are always dangerous, and in the case of deafness there are quite a few that aren't accurate. For example, most deaf people actually do not know a sign language — it's only around <a href="https://www.accessibility.com/blog/do-all-deaf-people-use-sign-language">1% in the US</a>.</p> <p>Also, despite our expectations, there is actually <strong>no universal sign language</strong> that everybody uses. For example, British signers often cannot understand American signers. There are globally around <a href="https://education.nationalgeographic.org/resource/sign-language/">300 different sign languages</a> actively used. Still, as Johanna Steiner <a href="https://www.linkedin.com/feed/update/urn:li:activity:7178702360649547778?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7178702360649547778%2C7178776416979718144%29&amp;dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287178776416979718144%2Curn%3Ali%3Aactivity%3A7178702360649547778%29">wrote</a>, we never question making content available in different written or spoken languages, and the same should apply to signed languages.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxplanet.org/podcasts-for-the-deaf-d4d9b5f3ce99"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-for-deaf-people/2.jpg" alt="Three smartphone screens displaying parts of a podcast app, including a browsing page, a now-playing screen with an avatar, and a live transcription feature." width="1500" height="972" loading="lazy"> </a> <figcaption><p><a href="https://uxplanet.org/podcasts-for-the-deaf-d4d9b5f3ce99">Heardio</a> concept: making podcasts accessible for deaf people — with live transcription and sign language avatars.</p> </figcaption> </figure> <p>Sign languages are <a href="https://www.youtube.com/watch?v=M0cR_HTeWUo&amp;t=188">not just gestures or pantomime</a>. They are <strong>4D spatial languages</strong> with their own grammar and syntax, separate from spoken languages, and they don't have a written form. They rely heavily on facial expression to convey meaning and emphasis. And: they are also not universal — every country has its own sign language and dialects.</p> <ul> <li>You can only understand <strong>30% of words</strong> via lip-reading.</li> <li>Most deaf people do not know any <strong>sign language</strong>.</li> <li>Many sign languages have local dialects that can be hard to interpret.</li> <li>Not all deaf people are fluent signers and often rely on <strong>visual clues</strong>.</li> <li>For many deaf people, a spoken language is their <strong>second language</strong>.</li> <li><a href="https://www.youtube.com/watch?v=M0cR_HTeWUo"><strong>Sign language is 4-dimensional</strong></a>, incorporating 3D space, time and also facial expressions.</li> </ul> <h2 id="how-to-communicate-respectfully" tabindex="-1">How To Communicate Respectfully <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-for-deaf-people/#how-to-communicate-respectfully">#</a></h2> <p>Keep in mind that many deaf people use spoken language of their country as <strong>their second language</strong>. So to communicate with a deaf person, it's best to ask by writing down. Don't ask how much a person can understand, and if they can lip read you.</p> <p>However, as Rachel Edwards <a href="https://www.linkedin.com/posts/rachel-edwards-scotland_excellent-overview-on-designing-for-ddeaf-activity-7409172866983804928-489h?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAACDcgQBa_vsk5breYKwZAgyIhsHtJaFbL8">noted</a>, don't assume someone is comfortable with written language because they are deaf. Sometimes their literacy may be low, and so providing information as text and assuming that covers your deaf users might not be the answer.</p> <p>Also, don't assume that every deaf person can lip read. You can see only about 30% of words on someone's mouth. That's why many deaf people need <strong>additional visual cues</strong>, like text or cued speech.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.healthyhearing.com/report/52264-Universal-signs-for-hearing-loss"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-for-deaf-people/3.png" alt="Seven accessibility symbols for people with hearing loss are displayed: International Symbol of Access, assistive listening devices, telephone typewriter, volume control telephone, sign language interpretation, closed captioning, and open captioning." width="1500" height="1266" loading="lazy"> </a> <figcaption><p>7 accessibility symbols for people with hearing loss. <a href="https://www.healthyhearing.com/report/52264-Universal-signs-for-hearing-loss">Universal signs for hearing aid</a>.</p> </figcaption> </figure> <p>It's also crucial to use <strong>respectful language</strong>. Deaf people do not always see themselves as <em>disabled</em>, but rather as a cultural linguistic minority with a unique identity. Others, as Meryl Evan has <a href="https://www.linkedin.com/feed/update/urn:li:activity:7178702360649547778?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7178702360649547778%2C7178721132345270272%29&amp;dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287178721132345270272%2Curn%3Ali%3Aactivity%3A7178702360649547778%29">noted</a>, don't identify as <em>deaf</em> or <em>hard of hearing</em>, but rather as &quot;hearing impaired&quot;. So, it's mostly up to an individual how they want to identify.</p> <ul> <li><strong>Deaf</strong> (Capital 'D'): Culturally Deaf people who have been deaf since birth or before learning to speak. Sign language is often first language, written language is second.</li> <li><strong>deaf</strong> (Lowercase 'd'): People who developed hearing loss later in life. Used by people who feel closer to the hearing/hard of hearing world and prefer to communicate written and/or orally.</li> <li><strong>Hard of Hearing</strong>: People with mild to moderate hearing loss who typically communicate orally and use hearing aids.</li> </ul> <p>In general, <strong>avoid hearing impairment</strong> if you can, and use <em>Deaf</em> (for those deaf for most of their lives), <em>deaf</em> (for those who became deaf later), or <em>hard of hearing</em> (HoH) for partial hearing loss. But either way, ask politely first and then respect person's preferences.</p> <h2 id="practical-ux-guidelines" tabindex="-1">Practical UX Guidelines <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-for-deaf-people/#practical-ux-guidelines">#</a></h2> <p>When designing UIs and content, consider these key accessibility guidelines for deaf and hard of hearing users:</p> <figure class="c-article__image u-flow--xs"> <a href="https://prospect.org.uk/article/designing-content-for-users-who-are-deaf-or-hard-of-hearing/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-for-deaf-people/4.jpg" alt="An infographic on a teal background titled 'Designing for users who are deaf or hard of hearing,' listing 'Do's and Don'ts' with icons." width="1500" height="2122" loading="lazy"> </a> <figcaption><p>How to design for users who are deaf or hard of hearing, a Gov.uk-inspired poster by <a href="https://prospect.org.uk/article/designing-content-for-users-who-are-deaf-or-hard-of-hearing/">Prospect.org.uk</a>. <a href="https://d28j9ucj9uj44t.cloudfront.net/uploads/2021/09/Designing_for_accessibility6.pdf">Download a printable PDF</a>.</p> </figcaption> </figure> <ol> <li><strong>Don't make the phone required</strong> or the only method of contact.</li> <li><strong>Provide text alternatives</strong> for all audible alerts or notices.</li> <li><strong>Add haptic feedback</strong> on mobile (e.g. vibration patterns).</li> <li><strong>Ensure good lighting</strong> to help people see facial expressions.</li> <li><strong>Circular seating</strong> usually works bet so everyone can see each other's face.</li> <li><strong>Always include descriptions of non-spoken sounds</strong> (e.g., rain, laughter) in your content.</li> <li><strong>Add a transcript and closed captions</strong> for audio and video.</li> <li><strong>Clearly identify each speaker</strong> in all audio and video content.</li> <li><strong>Design multiple ways to communicate</strong> in every instance (online + in-person)</li> <li><strong>Invite video participants to keep camera on</strong> to facilitate lip-reading and the viewing of facial expressions, which convey tone.</li> <li><strong>Always test products with the actual community</strong>, instead of making assumptions for them.</li> </ol> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-for-deaf-people/#wrapping-up">#</a></h2> <p>I keep repeating myself like a broken record, but better accessibility <strong>always benefits everyone</strong>. When we improve experiences for some groups of people, there are always ways of how it improves experiences for entirely different groups as well.</p> <p>As Marie Van Driessche rightfully noted, to design a great experience for accessibility, we must design <strong>with</strong> people, rather than <em>for</em> them. And that means always include people with <strong>lived experience of exclusion</strong> into the design process — as they are the true experts.</p> <p><strong>Accessibility never happens by accident</strong>. There must be a deliberate effort to make products and services more accessible. It doesn't have to be challenging if it's considered early. No digital product is neutral. Accessibility is a deliberate decision, and a commitment. Not only does it help everyone; it also shows what a company believes in and values.</p> <p>And once you do have a commitment, it will be so much easier to <strong>retain accessibility</strong>, rather than adding it last minute as a crutch — because that's where it's way too late to do it right, and way too expensive to make it well.</p> <hr> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-for-deaf-people/#useful-resources">#</a></h2> <ul> <li><a href="https://www.youtube.com/watch?v=M0cR_HTeWUo">Designing For Deaf People Helps Everyone</a>, by Marie Van Driessche</li> <li><a href="https://medium.com/@paulrobwest/ux-ui-design-considerations-for-the-deaf-deaf-and-hard-of-hearing-dbfe28850fbe">Design considerations for the Deaf, deaf, and hard of hearing</a>, by Paul Roberts</li> <li><a href="https://www.youtube.com/watch?v=AEXKOASrTVM">Beyond Video Captions and Sign Language</a>, by Svetlana Kouznetsova</li> <li><a href="https://www.smashingmagazine.com/2023/01/closed-captions-subtitles-ux/">Best Practices For CC and Subtitles UX</a>, by Vitaly Friedman</li> <li><a href="https://www.accessi.org/blog/web-accessibility-for-deaf-users/">Web Accessibility for Deaf Users</a></li> <li><a href="https://www.inclusivedesigntoolkit.com/UChearing/hearing.html">Inclusive Design Toolkit: Hearing</a></li> <li><a href="https://funkybrownchick.substack.com/p/i-hear-you-really-i-do-">What It's Like To Be Born Hard of Hearing</a>, by Twanna A. Hines, M.S.</li> <li><a href="https://uxplanet.org/podcasts-for-the-deaf-d4d9b5f3ce99">Accessibility: Podcasts for the deaf</a>, by Mubarak Alabidun</li> </ul> <h2 id="useful-books" tabindex="-1">Useful Books <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-for-deaf-people/#useful-books">#</a></h2> <ul> <li><em><a href="https://audio-accessibility.com/book/">Sound Is Not Enough</a></em>, by Svetlana Kouznetsova</li> <li><em>Mismatch: How Inclusion Shapes Design</em>, by Kat Holmes</li> <li><em>Building for Everyone: Extend Your Product's Reach Through Inclusive Design</em> (+ <a href="https://design.google/library/building-for-everyone">free excerpt</a>), by Annie Jean-Baptiste</li> </ul> Tue, 23 Dec 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/design-for-deaf-people/ How To Stop Endless Stakeholder Reviews https://smart-interface-design-patterns.com/articles/stop-stakeholder-cycles/ <p>You've been there before. Overlapping deadlines, conflicting stakeholder priorities, and design reviews turning into <strong>endless cycles</strong> of feedback without clear decisions. It's frustrating, inefficient, and often leads to poor UX compromises.</p> <p>Yesterday I stumbled upon Parvaneh Toghiani's <a href="https://medium.com/uber-design/how-to-stop-the-stakeholder-swirl-78073b7e986b">honest case study</a> on how to deal with exactly this challenge. Parvaneh outlines a <strong>very practical framework</strong> to make design reviews much more systematic and productive. Let's see how it works.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/uber-design/how-to-stop-the-stakeholder-swirl-78073b7e986b"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/stop-stakeholder-cycles/1.jpg" alt="Illustration of a productive design review meeting with stakeholders." width="1500" height="1001" loading="lazy"> </a> <figcaption><p>We often see design reviews as just a path to approval. They are also opportunities for alignment and growth. Illustration from <a href="https://medium.com/uber-design/how-to-stop-the-stakeholder-swirl-78073b7e986b">Parvaneh Toghiani</a>.</p> </figcaption> </figure> <h2 id="the-goal-is-not-just-a-sign-off" tabindex="-1">The Goal Is Not Just A Sign-Off <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/stop-stakeholder-cycles/#the-goal-is-not-just-a-sign-off">#</a></h2> <p>One of the mistake I frequently made is assuming that the goal of a design review is to simply get a sign-off. As a result, often I'd focus way too much on presenting and <strong>defending my design choices</strong>, my way of thinking, my big vision. Just like Parvaneh, I often talked about consistency and alignment, showed too many alternate solutions, focused too much on fine little details that didn't matter that much yet.</p> <figure class="c-article__image u-flow--xs"> <a href="https://miro.medium.com/v2/0*YvSDWhoS7sSeeyRW.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/stop-stakeholder-cycles/2.png" alt="The three types of design reviews: Alignment, Evaluation, and Sign-off." width="1500" height="671" loading="lazy"> </a> <figcaption><p>Breaking down reviews into Alignment, Evaluation, and Sign-off helps set clear expectations for every meeting. <a href="https://miro.medium.com/v2/0*YvSDWhoS7sSeeyRW.png">Large view</a>.</p> </figcaption> </figure> <p>In most design reviews, the goal is actually different. It's to <strong>be aligned about the direction</strong>, and the next steps the team is committed to taking on next. Troubles always start when we guide our work based on big assumptions and wrong expectations from both sides. Parvaneh suggests breaking reviews into <strong>3 distinct categories</strong>:</p> <ul> <li><strong>Alignment</strong> (<em>Problem definition</em>) Align on the PRD and discuss concept sketches early.</li> <li><strong>Evaluation</strong> (<em>Design iteration</em>) Get actionable feedback on 2–3 tangible proposals.</li> <li><strong>Sign-off</strong> (<em>Solution space</em>) Review final design, priorities, implementation details.</li> </ul> <p>When in a meeting with senior stakeholders, we need first to be clear about the <strong>type of design review</strong>, and then confirm the phase, the purpose and the desired outcome of that review first. It migght sound like a small detail, but it can make quite a difference and avoid misunderstandings down the line.</p> <h2 id="use-different-lenses-for-different-stakeholders" tabindex="-1">Use Different Lenses For Different Stakeholders <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/stop-stakeholder-cycles/#use-different-lenses-for-different-stakeholders">#</a></h2> <p>It's not surprising, but worth remembering: different stakeholders typically view design through a very different lens. <strong>UX language is overloaded</strong> with ambiguous terms and labels, so senior stakeholders rarely understand the deliverables and workflows that we present.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/045ca9bb-e18b-affb-fbad-4fc4a49ce7b6.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/stop-stakeholder-cycles/3.jpg" alt="Businesses rarely understand the impact of UX work. UX language is overloaded with ambiguous terms/labels." width="1500" height="1126" loading="lazy"> </a> <figcaption><p>Businesses rarely understand the impact of UX work. UX language is overloaded with ambiguous terms/labels. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/045ca9bb-e18b-affb-fbad-4fc4a49ce7b6.jpg">Large view</a>.</p> </figcaption> </figure> <p>For <strong>executives</strong>, we need to focus on business impact or company priorities. For <strong>cross-functional leads</strong>, the focus should be on the problem space and how our work addresses it. And for the <strong>core team</strong>, we dive deep into execution and details.</p> <p>Before presenting work, it's helpful to always reflect on previous reviews and what has changed since then. Having clear <strong>decision criteria</strong> and a design recommendation ready is often very much needed to move the conversation forward.</p> <h2 id="always-show-ideas-on-a-spectrum" tabindex="-1">Always Show Ideas on a Spectrum <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/stop-stakeholder-cycles/#always-show-ideas-on-a-spectrum">#</a></h2> <p>One point from the article that I loved is to always show design ideas and concepts on a spectrum: <strong>Most Practical ↔ Blue Sky</strong> — with the preferred concept in the middle. This framing helps stakeholders understand the trade-offs between options, and why some requirements or late changes might be <strong>risky, expensive and cause delays</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/uber-design/how-to-stop-the-stakeholder-swirl-78073b7e986b"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/stop-stakeholder-cycles/4.png" alt="Different meeting types categorized by purpose, such as Broadcast, Rhythm, and Planning meetings." width="1500" height="843" loading="lazy"> </a> <figcaption><p>Present concepts on a spectrum — from ambitious to practical, with your preferred concept in the middle.</p> </figcaption> </figure> <p>One thing I keep reminding myself of is that there is rarely a need to show all the the fine details for each UX concept. Most design reviews are about finding a direction, not <strong>pixel-pushing on the spot</strong>.</p> <h2 id="define-the-meeting-type" tabindex="-1">Define the Meeting Type <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/stop-stakeholder-cycles/#define-the-meeting-type">#</a></h2> <p>One little thing that has helped me in <em>any</em> meeting is to always start by explaining the <strong>completeness</strong> of our work. There are vast differences between <strong>50%, 75%, 90% done</strong>, so we need to set right expecations first. I also try to explain the desired outcome of that design review, and what we actually need. It's also very practical to illustrate a specific meeting type in <strong>email</strong> invitations, perhaps with a custom emoji:</p> <p>I love the meeting taxonomy suggested by <strong>Rich Watkins</strong>:</p> <ul> <li>📣 <strong>Broadcast Meetings</strong> for announcements, townhalls,</li> <li>🥁 <strong>Rhythm Meetings</strong> for regular status updates,</li> <li>🏗️ <strong>Planning Meetings</strong> to set timelines, estimates,</li> <li>🛠 <strong>Problem-Solving</strong> for workshops, solutions finding,</li> <li>🏕️ <strong>Exploration</strong> for big questions and complex problems,</li> <li>💚 <strong>Team Building Meetings</strong> for team spirit and collaboration,</li> <li>🪴 <strong>Catch-Up Meetings</strong> for connecting without agenda,</li> <li>🏆 <strong>Review Meetings</strong> for retros, 1:1's, perf reviews.</li> </ul> <p>It's a little changes that sets expectation right early, and I'd rather have everything clear before we even start, rather than when we have to <strong>undo, redo or start from scratch</strong>.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/stop-stakeholder-cycles/#wrapping-up">#</a></h2> <p><strong>There is no single way</strong> to run a design review. During the different phases of the project, we will need different types of design reviews — with different purposes and different goals.</p> <p>As Parvaneh writes, design reviews aren't just for approvals. They are where <strong>influence, trust, and alignment</strong> are built. They are incredible opportunities to grow as a designer — to test your storytelling, explain and defend your thinking, and learn how senior stakeholders make their decisions.</p> <p>Understanding this helps <strong>avoid big misunderstandings</strong> too late, and giving a bit more confidence to move forward from the very start.</p> <hr> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/stop-stakeholder-cycles/#useful-resources">#</a></h2> <ul> <li><strong><a href="https://uxdesign.cc/improving-design-critiques-0e4d075ead2f">How To Run Effective Design Critiques</a> (+ <a href="https://www.figma.com/community/file/1525305154795688198/critique-template-resources">Figma template</a>)</strong>, by Jeremy Bird</li> <li><a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-activity-7184531936415993857-LjB5">How To Defend Your Design Decisions</a>, by yours truly</li> <li><a href="https://www.figma.com/blog/design-critiques-at-figma/">&quot;How We Run Design Critiques At Figma&quot;</a>, by Noah Levin</li> </ul> <h2 id="useful-books" tabindex="-1">Useful Books <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/stop-stakeholder-cycles/#useful-books">#</a></h2> <ul> <li><em>Articulating Design Decisions</em>, by Tom Greever</li> <li><em>Discussing Design: Improving Communication and Collaboration Through Critique</em>, by Adam Connor and Aaron Irizarry</li> <li><em>Meeting Design</em>, by Kevin M. Hoffman</li> </ul> Sun, 21 Dec 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/stop-stakeholder-cycles/ Designing Effective Dashboards UX With Action Dots https://smart-interface-design-patterns.com/articles/action-dots/ <p>Many dashboards aren't <strong>actionable enough</strong> to be useful. They are designed to display all important metrics in one single place, but then it's rarely clear which of these metrics require <strong>immediate attention</strong> — and if so, which actions would be needed to actually address these issues. That's where <strong>action dots</strong> can help. Let's see how it works.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.linkedin.com/feed/update/urn:li:activity:7398790439815888896"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/action-dots/1.jpg" alt="An example of an Action Dot Dashboard." width="1500" height="1852" loading="lazy"> </a> <figcaption><p><a href="https://www.linkedin.com/feed/update/urn:li:activity:7398790439815888896">Action dots</a> allow users to spot metrics requiring attention immediately. Discovered via Nick Desbarats.</p> </figcaption> </figure> <h2 id="why-dashboards-fail" tabindex="-1">Why Dashboards Fail <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/action-dots/#why-dashboards-fail">#</a></h2> <p>One of the most challenging UX issues with dashboards is that it takes time for users to find relevant, or perhaps even critical insights. Dashboards bring data together in one place, but often they create <strong>very little understanding</strong> around that data.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/c3de7d8b-70d6-ff08-7c42-f0a27cc41caf.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/action-dots/2.jpg" alt="An example of an Action dots dashboard." width="1500" height="1133" loading="lazy"> </a> <figcaption><p>Often call center dashboards display data, but much of this data isn't actionable, and requires effort to create understanding.</p> </figcaption> </figure> <p>According to <a href="https://nightingaledvs.com/why-i-stopped-using-bullet-graphs-and-what-i-now-use-instead/">Nick Desbarats</a>, there are a few frequent reasons why dashboards are <strong>abandoned</strong>:</p> <ul> <li>One dashboard trying to do <strong>too much</strong>,</li> <li>No action or sentiment indicators,</li> <li>Data requires too much time to scan,</li> <li>Every day looks very similar at a glance,</li> <li>Metrics aren't always directly comparable,</li> <li>Metrics requiring action aren't on a dashboard,</li> <li><strong>&quot;Buried problems&quot;</strong> (hidden behind filters),</li> <li>Tactical and strategic dashboards merged.</li> </ul> <h2 id="poor-types-of-action-indicators" tabindex="-1">Poor Types of Action Indicators <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/action-dots/#poor-types-of-action-indicators">#</a></h2> <p>Often action indicators are <strong>misleading</strong>, flag false positives, or bury existing problems. They don't show the full picture but instead focus on what has changed. However, a <strong>trend upwards</strong> doesn't always mean success (<em>failure rates</em>), and a <strong>trend downwards</strong> doesn't necessarily mean a crisis (<em>resolution time</em>).</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/44173af6-10ba-010d-d0d2-2bfefe4c29a3.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/action-dots/3.jpg" alt="For each KPI, we define a metrics threshold to understand which values pose a problem, and which don't." width="1500" height="814" loading="lazy"> </a> <figcaption><p>Moving from thresholds to action dots. A colorblind-friendly version would include blue/green or blue/red color scheme. By Nick Desbarats.</p> </figcaption> </figure> <h2 id="some-indicators-dont-work-well" tabindex="-1">⚠️ Some Indicators Don't Work Well <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/action-dots/#some-indicators-dont-work-well">#</a></h2> <p>Sometimes these indicator types might provide <strong>insufficient context</strong> or fail to drive meaningful action:</p> <ul> <li>% change vs. previous period (e.g., 7.3%🔺)</li> <li>% deviation from target (e.g., 10% ❌)</li> <li>% deviation from trailing average (e.g., 8% 🔺)</li> <li>Single-threshold (e.g., 97.3% uptime 🟩)</li> <li>Good/Satisfactory/Poor ranges (e.g., 2% 🟢 / 8% 🟡 / 15% 🔴)</li> </ul> <p>Once all these elements are put together, often they <strong>don't work well</strong>. Common indicators don't clearly communicate what is a crisis and what is a regular day.</p> <p>It's never obvious <strong>how bad a change actually is</strong> — it might be worse than yesterday or a week ago, but is it seasonal? Is it temporary? Has the issue been addressed already?</p> <h2 id="alternative-action-dot-dashboards" tabindex="-1">Alternative: Action Dot Dashboards <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/action-dots/#alternative-action-dot-dashboards">#</a></h2> <p>To make dashboards more actionable, we first look at key metrics (KPIs) we need to feature. For each KPI, we define <strong>key threshold values</strong> — from crisis to best case scenario. And then, we add an action dot depending on where the value for a metric currently falls.</p> <figure class="c-article__image u-flow--xs"> <a href="https://github.com/dashboarddesignpatterns/dashboarddesignpatterns.github.io/raw/main/docs/assets/Cheatsheet-compact.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/action-dots/4.png" alt="Examples of common dashboard indicators that can be misleading." width="1500" height="" loading="lazy"> </a> <figcaption><p>Action dot dashboard in Power BI. <a href="https://github.com/dashboarddesignpatterns/dashboarddesignpatterns.github.io/raw/main/docs/assets/Cheatsheet-compact.png">Full image</a>.</p> </figcaption> </figure> <p>Unlike single-value targets (which can be problematic), we define thresholds for four specific states:</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/38558e94-a394-4e4d-199a-f4ba8294da27.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/action-dots/5.jpg" alt="For each KPI, we define a metrics threshold to understand which values pose a problem, and which don't." width="1500" height="" loading="lazy"> </a> </figure> <p>For each KPI, we define a <strong>metrics threshold</strong> to understand which values pose a problem, and which don't:</p> <ul> <li>🔴 <strong>Crisis</strong> (e.g. -15% ↔ -10%): Improving it would become the user's top priority.</li> <li>🟡 <strong>Actionably Bad</strong> (-10% ↔ -5%): Bad enough for the user to do something.</li> <li>⚪ <strong>Neutral</strong> (-5% ↔ 5%): &quot;Everything is OK&quot;.</li> <li>🔵 <strong>Actionably Good</strong> (+5% ↔ +8%): Good enough for the user to do something.</li> <li>🟣 <strong>Best Case</strong> (+8% ↔ +15%): The best a user thinks it could realistically get.</li> </ul> <p>Action dots are essentially <strong>alert icons</strong>. On dashboards with action dots, problematic metrics <strong>&quot;pop out&quot;</strong> because metrics that don't require attention (the Neutral zone, ⚪) don't have any indicators at all. They make crises very noticeable, easy to learn, easy to spot, and easy to understand.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/b4985f6e-55fc-380f-1405-eadeec770a24.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/action-dots/6.jpg" alt="For each KPI, we define a metrics threshold to understand which values pose a problem, and which don't." width="1500" height="" loading="lazy"> </a> <figcaption><p>For each KPI, we define a metrics threshold to understand which values pose a problem, and which don't. A colorblind-friendly version would include blue/green or blue/red color scheme. By Nick Desbarats.</p> </figcaption> </figure> <h2 id="accessibility-considerations" tabindex="-1">Accessibility Considerations <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/action-dots/#accessibility-considerations">#</a></h2> <p>Using red and green colors to indicate negative and positive ranges for a threshold is problematic as it makes it difficult for people who experience <strong>colorblindness</strong> or colorweakness to understand these numbers.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/4613e954-63e7-3995-1531-61d753ce2742.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/action-dots/7.jpg" alt="Colorblind-friendly version with blue and red indicators." width="1500" height="1315" loading="lazy"> </a> <figcaption><p>In Nick's implementation, users can switch to a colorblind-friendly version, with blue and red indicators instead of red and green.</p> </figcaption> </figure> <p>Relying on <a href="https://www.linkedin.com/pulse/practical-guide-designing-colorblind-people-vitaly-friedman-9uwle/">colorblind-friendly color palettes</a> would help, and perhaps even should be a default — and I'm happy to see Nick's work support this option as well.</p> <h2 id="bonus-dashboard-design-patterns" tabindex="-1">Bonus: Dashboard Design Patterns <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/action-dots/#bonus-dashboard-design-patterns">#</a></h2> <p>By the way, talking about dashboards: I often keep coming back to <a href="https://dashboarddesignpatterns.github.io/patterns.html">Dashboard Design Patterns</a>, a wonderful website by Benjamin Bach and his colleauges at the University of Edinburgh to visualize <strong>design patterns and components</strong> of dashboards. It's a (very!) helpful resource to keep in the bookmarks for any work around dashboards.</p> <figure class="c-article__image u-flow--xs"> <a href="https://github.com/dashboarddesignpatterns/dashboarddesignpatterns.github.io/raw/main/docs/assets/Cheatsheet-compact.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/action-dots/8.png" alt="Examples of common dashboard indicators that can be misleading." width="1500" height="" loading="lazy"> </a> <figcaption><p>Common types of indicators and display. Some of them don't work well wenn put together: e.g. % change vs. previous period, % deviation from target. <a href="https://github.com/dashboarddesignpatterns/dashboarddesignpatterns.github.io/raw/main/docs/assets/Cheatsheet-compact.png">Full image</a>.</p> </figcaption> </figure> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/action-dots/#wrapping-up">#</a></h2> <p>What I love most about action dots dashboards is that they <strong>immediately communicate what requires attention</strong>, based on preferences that a user has expressed and the range they prioritized. It doesn't highlight what doesn't need highlighting, and shows what requires attention.</p> <p>Huge thanks to <strong><a href="https://www.linkedin.com/in/nickdesbarats/">Nick Desbarats</a></strong> for bringing this into the spotlight and putting it all together — and I can only wholeheartedly recommend checking <a href="https://www.practicalreporting.com/books">Nick's upcoming book and courses</a> on dashboards as well! 🙏🏾</p> <hr> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/action-dots/#useful-resources">#</a></h2> <ul> <li><strong><a href="https://nightingaledvs.com/why-i-stopped-using-bullet-graphs-and-what-i-now-use-instead/">Action Dots Dashboards</a></strong>, by Nick Desbarats</li> <li><strong><a href="https://www.practicalreporting.com/books">Practical Charts and Dashboards (Books + Courses)</a></strong>, by Nick Desbarats</li> <li><strong><a href="https://dashboarddesignpatterns.github.io/tradeoffs.html">Design Tradeoffs in Dashboard Design</a></strong></li> <li><a href="https://dashboarddesignpatterns.github.io/">Dashboard Design Patterns</a>, by Benjamin Bach</li> <li><a href="https://www.datavizclarity.com/">DataViz Clarity, Dashboard Design</a>, by Aurélien Vautier</li> <li><a href="https://lab.interface-design.co.uk/data-dashboards-ux-design-patterns-benchmarking-1c0cf4642778">Data Dashboard UX Benchmarking</a>, by Creative Navy UX Agency</li> <li><a href="https://www.linkedin.com/pulse/my-crazy-crusade-against-single-number-kpi-targets-nick-desbarats-gihre/?trackingId=HtKyDH7URD%2BFcxlqAFMrSQ%3D%3D">My Crazy Crusade Against Single-Number KPI Targets</a>, by Nick Desbarats</li> </ul> <h2 id="useful-books" tabindex="-1">Useful Books <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/action-dots/#useful-books">#</a></h2> <ul> <li><em>Practical Dashboards</em>, by Nick Desbarats</li> <li><em>Design for Information</em>, by Isabel Meirelles</li> <li><em>The Big Book of Dashboards</em>, by Steve Wexler</li> <li>Books by Stephen Few and Edward Tufte</li> </ul> Sat, 06 Dec 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/action-dots/ How To Build A UX Team From Scratch https://smart-interface-design-patterns.com/articles/build-ux-team-from-scratch/ <p>A while back I stumbled upon an honest, practical guide on <a href="https://medium.com/flexport-ux/designing-a-design-team-a9a066bc48a5">how to scale a design team</a> in a high-growth company, including a team's evolution, roles, meetings, processes and systems. Kindly shared by Andrew Coyle.</p> <p>Andrew raised a few <strong>useful points</strong> that I never thought of, and they I always try to consider when we need to grow the design team. Let’s see what they are — hopefully it will help you grow your design team, too.</p> <h2 id="first-steps-scope-the-design-work" tabindex="-1">First Steps: Scope The Design Work <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/build-ux-team-from-scratch/#first-steps-scope-the-design-work">#</a></h2> <p>There is no universal <strong>blueprint for a team setup</strong> that works everywhere. Often we might think about a good foundation that every team needs, but it shouldn’t be defined by roles, but rather by the work that needs to be done.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/flexport-ux/designing-a-design-team-a9a066bc48a5"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/build-ux-team-from-scratch/1-build-ux-team-from-scratch.jpg" alt="A good setup for a design team, with product designers allocated to product teams." width="1500" height="1145" loading="lazy"> </a> <figcaption><p>Scaling a design team starts with defining the immediate challenges and hiring to solve them. <a href="https://medium.com/flexport-ux/designing-a-design-team-a9a066bc48a5">Large view</a>.</p> </figcaption> </figure> <p>A good way to start is by <strong>listing all the design work</strong> that must be done, and figuring out what challenges you need to solve first. Your first hire ideally would be a person who is able to tackle that specific challenge well. From there, you can decide on the necessary design roles to cover the rest of the work well.</p> <h2 id="hiring-strategy-hire-slowly-people-first" tabindex="-1">Hiring Strategy: Hire Slowly, People First <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/build-ux-team-from-scratch/#hiring-strategy-hire-slowly-people-first">#</a></h2> <p>When you start hiring, <strong>hire slowly</strong>. Choose the strengths that you want to see in your team — and the ones that are very much needed for the project. It requires <strong>identifying blindspots</strong> that need to be addressed — visual design, research, accessibility or anything-in-between.</p> <p>For example, you might have a very poorly performing search that many people rely on daily. It would be wise to find a person who has a good understanding of IA, metadata, indexing and design around <strong>search UX</strong>.</p> <p>It’s always incredibly valuable to hire with diversity in mind to get a <strong>wide range of perspectives</strong>. Always hire slowly, and hire for roles that you actually need. Once new members join, discuss and distribute responsibilities and ownership clearly.</p> <h2 id="team-structure-and-processes" tabindex="-1">Team Structure and Processes <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/build-ux-team-from-scratch/#team-structure-and-processes">#</a></h2> <p>As the team grows, eventually you will need to establish the design team’s <strong>ways of working</strong>, including meetings, rituals, and 1:1s. Every new hire increases the need and the cost of communication. Building a set of <strong>shared design principles</strong> can help structure conversations and guide decisions.</p> <p>It’s important to remember that every centralized team eventually hits its limitations. When that happens, you might need to <strong>break up the team</strong> by assigning product designers to specific product teams, but also put them together by setting up a design guild for ongoing collaboration.</p> <h2 id="centralized-ux-team" tabindex="-1">Centralized UX Team <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/build-ux-team-from-scratch/#centralized-ux-team">#</a></h2> <p>In early days, most teams start with a <strong>centralized model</strong> where the entire UX team acts as a single, in-house agency working for existing product teams. UX team often spends a lot of time in discovery as it’s detached from a specific unit, and eventually they become a bottleneck.</p> <figure class="c-article__image u-flow--xs"> <a href="https://maze.co/collections/ux-management/team-structure/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/build-ux-team-from-scratch/2-build-ux-team-from-scratch.png" alt="Diagram showing a centralized UX team structure." width="1500" height="1105" loading="lazy"> </a> <figcaption><p>In a centralized UX team, team members report to the same UX manager and are part of the same core team.</p> </figcaption> </figure> <ul> <li><strong>Pro:</strong> Consistent, unified UX across products.</li> <li><strong>Pro:</strong> Resources can be easily prioritized for key projects.</li> <li><strong>Con:</strong> Eventually slows down product teams that are waiting for UX resources.</li> <li><strong>Con:</strong> Designers lack specialized knowledge of any single product or domain.</li> <li><strong>Con:</strong> UX teams can be detached from the practical realities and constraints of product teams.</li> </ul> <h2 id="decentralized-ux-team" tabindex="-1">Decentralized UX Team <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/build-ux-team-from-scratch/#decentralized-ux-team">#</a></h2> <p>The <strong>decentralized model</strong> distributes designers across <em>verticals</em>, or product teams. There, designers are often integrated in existing product lifecycle and have deep understanding about the product and domain.</p> <figure class="c-article__image u-flow--xs"> <a href="https://maze.co/collections/ux-management/team-structure/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/build-ux-team-from-scratch/3-build-ux-team-from-scratch.png" alt="Diagram showing a decentralized UX team structure." width="1500" height="1180" loading="lazy"> </a> <figcaption><p>In decentralized UX teams, designers and researchers are embedded in multiple product teams throughout the organization.</p> </figcaption> </figure> <ul> <li><strong>Pro:</strong> Designers gain deep product knowledge and work more closely to their teams.</li> <li><strong>Pro:</strong> Designers have clear responsibility for the product they are working on, which eliminates UX bottlenecks.</li> <li><strong>Con:</strong> Design often becomes inconsistent across verticals unless designers have an active design guild.</li> <li><strong>Con:</strong> It becomes difficult to establish and enforce company-wide UX standards.</li> </ul> <h2 id="matrix-ux-team" tabindex="-1">Matrix UX Team <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/build-ux-team-from-scratch/#matrix-ux-team">#</a></h2> <p>A <strong>matrix model</strong> is a combination of previous models where designers work in product teams but also report to a central UX lead. Often faces conflicting priorities from different teams and stakeholders.</p> <figure class="c-article__image u-flow--xs"> <a href="https://maze.co/collections/ux-management/team-structure/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/build-ux-team-from-scratch/4-build-ux-team-from-scratch.png" alt="Diagram showing a matrix UX team structure." width="1500" height="1111" loading="lazy"> </a> <figcaption><p>In a Matrix UX team, designers are distributed across many product teams and report both to a centralized UX manager and an individual team lead.</p> </figcaption> </figure> <ul> <li><strong>Pro:</strong> A design guild is a way of working, with designers frequently sharing best practices and design patterns.</li> <li><strong>Con:</strong> Conflicting priorities drive designers in different directions.</li> <li><strong>Con:</strong> Require alignment between product managers and UX lead.</li> <li><strong>Con:</strong> Often needs high UX maturity in organization to work well.</li> </ul> <h2 id="there-is-no-right-ux-team-model" tabindex="-1">There Is No “Right” UX Team Model <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/build-ux-team-from-scratch/#there-is-no-right-ux-team-model">#</a></h2> <p>As Kate Kaplan and Kara Pernice have <a href="https://www.nngroup.com/articles/ux-team-models/">noted</a>, there is no single model that works best across different team setups. In small teams, designers are typically all over the place — <strong>decentralized</strong>. They don’t have a dedicated team, but are <em>firefighters</em>, resolving tickets as they occur. There aren’t enough design and research staff to support a decentralized model.</p> <p>As the company grows, designers tend to move across verticals — <strong>centralized</strong> — at least having a specific team they are working with on a project-by-project basis. It also happens with in-house product teams as some realize that they need a first UX hire.</p> <p>Eventually, as teams grow, many teams lean towards the <strong>matrix model</strong>, but often with <strong>various degree of attachment</strong> to product teams. Often they rotate between teams or move back and forth betwen decentralized and centralized models, depending on business pressure.</p> <h2 id="quick-summary" tabindex="-1">Quick Summary <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/build-ux-team-from-scratch/#quick-summary">#</a></h2> <ol> <li>Start by <strong>listing all design work</strong> that must be done.</li> <li>Figure out what challenges you need to solve first.</li> <li><strong>First hire</strong> should be able to tackle that challenge.</li> <li>Decide on necessary design roles to cover it well.</li> <li><strong>Choose strengths</strong> that you want to see in your team.</li> <li>E.g. visual/interaction design, research, accessibility.</li> <li><strong>Hire slowly</strong>, and hire for roles that you actually need.</li> <li>Distribute and refine responsibilities and ownership.</li> <li>Design team’s <strong>ways of working</strong>, meetings, rituals, 1:1s.</li> <li>Every centralized team eventually hits its limitations.</li> <li><strong>Break up</strong>: assign product designers to product teams.</li> <li><strong>Put together</strong>: set up a design guild for collaboration.</li> </ol> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/build-ux-team-from-scratch/#wrapping-up">#</a></h2> <p>Among the many models and articles about the “perfect” team setup, personally, I absolutey love Andrew’s point about first hiring a UI engineer to <strong>bridge the gap between design and engineering</strong>. In many teams, that’s what usually causes friction, and having a dedicated person who understands both sides can help enormously.</p> <p>Also, some teams seek established, first-class designers with a wide portfolio of big brands. But usually what they actually need are friendly, diverse folks who <strong>deeply care</strong>, are eager to learn, and are team players.</p> <p>And: <strong>hire slowly</strong>, and for the roles that you actually need. If you give good people an opportunity and ownership for their work, you might be surprised just how quickly they will evolve in a new role, and <strong>move mountains</strong> for you and for your customers.</p> <hr> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/build-ux-team-from-scratch/#useful-resources">#</a></h2> <ul> <li><strong><a href="https://maze.co/collections/ux-management/team-structure/">How To Structure And Manage A UX Team</a></strong>, by Giada Gastaldello</li> <li><strong><a href="https://www.nngroup.com/articles/ux-team-models/">UX Team Models</a></strong>, by Kate Kaplan, Kara Pernice</li> <li><a href="https://www.figma.com/blog/how-we-built-the-figma-design-team/">Figma Case Study</a>, by Noah Levin</li> <li><a href="https://spotify.design/article/making-the-band-building-exceptional-design-teams-at-spotify">Spotify Case Study</a>, by Nicole Burrow</li> <li><a href="https://medium.com/shopify-ux/how-we-structure-some-ux-teams-at-shopify-a13e3055cf08">Shopify Case Study</a>, by Alaine Mackenzie</li> <li><a href="https://dovetail.com/ux/how-to-structure-a-ux-design-team/">How To Assemble A Winning UX Design Team</a>, by Dovetail</li> </ul> <h2 id="useful-books" tabindex="-1">Useful Books <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/build-ux-team-from-scratch/#useful-books">#</a></h2> <ul> <li><a href="https://rosenfeldmedia.com/books/the-user-experience-team-of-one/">The User Experience Team Of One</a>, by Leah Buley, Joe Natoli</li> <li><a href="https://www.oreilly.com/library/view/org-design-for/9781491938393/">Building and Managing In-House Design Teams</a>, by Peter Merholz, Kristin Skinner</li> <li><a href="https://medium.com/fresh-tilled-soil/design-leadership-how-top-design-leaders-build-and-grow-successful-organizations-70577513470f">How Top Design Leaders Build and Grow Successful Organizations</a>, by Richard Banfield</li> </ul> Thu, 27 Nov 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/build-ux-team-from-scratch/ How To Become A Senior Designer https://smart-interface-design-patterns.com/articles/how-to-become-senior-designer/ <p>Many years ago, I assumed that simply by doing <strong>good design work</strong>, my efforts would be noticed, my work recognized, my attention to detail appreciated — and then surely I would get noticed, resulting in some sort of a promotion, or new projects, or more impactful work.</p> <p>What I didn't realize is that career growth <strong>doesn't happen automatically</strong> by simply doing more good work. As Yutong Xue writes in her honest, sincere, and practical guide, <a href="https://medium.com/design-bootcamp/how-to-become-a-senior-designer-from-an-ex-google-meta-designer-6092866bd2aa">&quot;How To Become A Senior Designer&quot;</a>, growth must be intentional.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/design-bootcamp/how-to-become-a-senior-designer-from-an-ex-google-meta-designer-6092866bd2aa"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/how-to-become-senior-designer/1.jpg" alt="Illustration of a person climbing a ladder composed of various design-related icons." width="1500" height="1466" loading="lazy"> </a> <figcaption><p>To grow in your career, you must be proactive and take your growth into your hands. Image source: <a href="https://medium.com/design-bootcamp/how-to-become-a-senior-designer-from-an-ex-google-meta-designer-6092866bd2aa">Yutong Xue</a>.</p> </figcaption> </figure> <p>According to Yutong, growth must be goal-oriented. Of course, we must be reliable and accountable in our work, but we also must be <strong>proactive</strong> — and I can't emphasize enough just how important that is.</p> <p>In fact, some of the most ambitious projects I've worked with came through a fine combination of visibility, networking and proactive work. The latter doesn't mean being a loud voice in the room, but finding where you can make a <strong>tangible difference</strong>.</p> <h2 id="beyond-the-obvious-finding-blind-spots" tabindex="-1">Beyond the Obvious: Finding Blind Spots <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-become-senior-designer/#beyond-the-obvious-finding-blind-spots">#</a></h2> <p>To me, being proactive means knowing what's stopping you from success and working on that. It also means taking the time to think about what slows down the team, the unit, the company, and what opportunities aren't explored yet.</p> <p>Eventually, it will mean <strong>engaging proactively with stakeholders</strong>, sales, customer success, product managers on other teams, and understanding how exactly the business works and where opportunities for improvement are.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/design-bootcamp/how-to-become-a-senior-designer-from-an-ex-google-meta-designer-6092866bd2aa"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/how-to-become-senior-designer/2.jpg" alt="Illustration of a person focused on their scope vs. a person focusing on the bigger picture." width="1500" height="1053" loading="lazy"> </a> <figcaption><p>It's incredibly useful to step out and zoom out from your scope of work and explore if your project is even meaningful at scale. It also means raising a red flag once you spot it. Image source: <a href="https://medium.com/design-bootcamp/how-to-become-a-senior-designer-from-an-ex-google-meta-designer-6092866bd2aa">Yutong Xue</a>.</p> </figcaption> </figure> <p>Almost every company has <strong>blind spots</strong>. These are neglected areas that aren't really on an agenda but have tremendous potential to drive success or reduce frustrations. And I'm not talking about AI or automation, but rather things that are often forgotten but are remarkably impactful:</p> <ul> <li><strong>Poor quality search</strong>, without ownership (often #1 complaint)</li> <li><strong>Messy categorization</strong> of data records</li> <li><strong>Broken workarounds</strong> people use to get work done</li> <li><strong>Tons of duplication</strong> and messy documentation</li> <li><strong>Redundant entry</strong> in many different places</li> <li>Poorly selected defaults and presets</li> <li>Confusing labels, hints and notifications</li> <li>Poor, generic and unhelpful <strong>error messages</strong></li> </ul> <p>Now, these features are surely not as exciting as AI features are, but they are usually the ones that people — sooner or later — have to rely on. And for me, focusing on that — the true fundamentals of <strong>good UX and accessibility</strong> — has made it possible to jump from smaller projects to bigger projects.</p> <p>It's surely not going to work for everyone, but I wish I'd known earlier that instead of chasing the big, shiny, trendy project, I should shift my focus towards <strong>blind spots</strong>. Those little and big things that many companies don't have on their agenda at all — until you come in and bring them into the spotlight.</p> <p>A <a href="https://medium.com/design-bootcamp/how-to-become-a-senior-designer-from-an-ex-google-meta-designer-6092866bd2aa">wonderful reminder</a> by Yutong Xue, and a highly recommended read if you're looking for a very honest guide to grow as a designer.</p> <hr> <h2 id="useful-books" tabindex="-1">Useful Books <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-become-senior-designer/#useful-books">#</a></h2> <ul> <li><a href="https://rosenfeldmedia.com/books/the-user-experience-team-of-one/">The User Experience Team Of One</a>, by Leah Buley, Joe Natoli</li> <li><a href="https://www.juliezhuo.com/book/manager.html">The Making of a Manager: What to Do When Everyone Looks to You</a>, by Julie Zhuo</li> <li><a href="https://productdesigninterview.com/the-path-to-senior-product-designer">The Path To Senior Product Designer</a>, by Artiom Dashinsky</li> <li><a href="https://productdesigninterview.com/the-path-to-staff-product-designer">The Path To Staff Product Designer</a>, by Artiom Dashinsky</li> </ul> Sat, 22 Nov 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/how-to-become-senior-designer/ Six Key Components of UX Strategy https://smart-interface-design-patterns.com/articles/ux-strategy/ <p>For years, <strong>&quot;UX strategy&quot;</strong> felt like a confusing, ambiguous and overloaded term to me. To me, it was some sort of a <em>roadmap</em> or a <em>grand vision</em>, with a few business decisions attached to it. And looking back now, I realize that I was wrong all along.</p> <p>UX Strategy isn't a goal; it's a <strong>journey towards that goal</strong>. A journey connecting where we are today with a desired future state of UX. And as such, it guides our actions and decisions, things we do and don't do. And its goal is very simple: to <strong>maximize our chances of success</strong>.</p> <p>Let's explore the <strong>components of UX strategy</strong>, and how it works with product strategy and business strategy to deliver user value and meet business goals.</p> <h2 id="strategy-vs-goals-vs-plans" tabindex="-1">Strategy vs. Goals vs. Plans <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-strategy/#strategy-vs-goals-vs-plans">#</a></h2> <p>When we speak about strategy, we often speak about planning and goals — but they are actually quite different. While <em>strategy</em> answers <strong>&quot;what&quot; we're doing and &quot;why&quot;</strong>, <em>planning</em> is about &quot;how&quot; and &quot;when&quot; we'll get it done. And <em>goal</em> is merely a desired outcome of that entire journey.</p> <ul> <li><strong>Goals</strong> establish a desired future outcome,</li> <li>That outcome typically represents a problem to solve,</li> <li><strong>Strategy</strong> shows a high-level solution for that problem,</li> <li><strong>Plan</strong> is detailed low-level steps on getting solution done.</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://www.linkedin.com/posts/alex-m-h-smith_please-tell-me-you-arent-making-this-mistake-activity-7364616097272143872-SKgz"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ux-strategy/1.jpeg" alt="A diagram showing that a goal is a destination, while a strategy is the path to get there." width="1500" height="1500" loading="lazy"> </a> <figcaption><p>Good strategy isn't a goal or a big objective; it's a solution to a problem posed by a goal. Via Alex H Smith. <a href="https://www.linkedin.com/posts/alex-m-h-smith_please-tell-me-you-arent-making-this-mistake-activity-7364616097272143872-SKgz">Image source</a>.</p> </figcaption> </figure> <p>A strong strategy requires making conscious, and oftentimes tough, decisions about what we will do — and just as importantly, <strong>what we will not do</strong>, and why.</p> <h2 id="business-strategy" tabindex="-1">🎯 Business Strategy <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-strategy/#business-strategy">#</a></h2> <p>At the highest level, business strategy is about the <strong>distinct choices</strong> executives make to set the company apart from its competitors. They shape the company's positioning, objectives, and (most importantly!) <strong>competitive advantage</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.strategyzer.com/library/the-business-model-canvas"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ux-strategy/2.jpg" alt="The Business Model Canvas representing key business considerations for a sustainable business." width="1500" height="1086" loading="lazy"> </a> <figcaption><p>We shouldn't underestimate our impact. UX affects many segments of the <a href="https://www.strategyzer.com/library/the-business-model-canvas">Business Model Canvas</a>: user segments, relationships, channels, activities, revenue streams.</p> </figcaption> </figure> <p>Typically, this advantage is achieved in <strong>2 ways</strong>: through lower prices (cost leadership) or through differentiation. And that's exactly where UX impact steps in.</p> <ul> <li><strong>Top-line vision</strong>, basis for core offers,</li> <li><strong>Shapes positioning</strong>, goals, competitive advantage,</li> <li><strong>Must always adapt</strong> to the market to keep a competitive advantage.</li> </ul> <h2 id="product-strategy" tabindex="-1">🚀 Product Strategy <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-strategy/#product-strategy">#</a></h2> <p>Product strategy is how a high-level business direction is translated into unique positioning of a product. It defines <strong>what the product is, who its users are</strong>, and how it will contribute to the business's goals. It's also how we bring a product to market, drive growth and achieve product-market fit.</p> <ul> <li><strong>Unique positioning</strong> and value of a product,</li> <li><strong>How to establish</strong> and keep product in the marketplace,</li> <li><strong>How to keep competitive advantage</strong> of the product.</li> </ul> <h2 id="ux-strategy" tabindex="-1">🧠 UX Strategy <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-strategy/#ux-strategy">#</a></h2> <p>UX strategy is about <strong>shaping and delivering</strong> product value through UX. Good UX strategy always stems from UX research and answers to business needs. It focuses on what to focus on, what our high-value actions are, how we'll measure success, and what risks we need to mitigate.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.nngroup.com/articles/ux-strategy/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ux-strategy/3.jpg" alt="A diagram illustrating the components of a UX Strategy: Vision, Goals, and a Plan." width="1500" height="1056" loading="lazy"> </a> <figcaption><p>Components of UX Strategy are Vision, Goals and a Plan. Tactical steps are part of the execution. <a href="https://www.nngroup.com/articles/ux-strategy/">Image source</a>.</p> </figcaption> </figure> <p>Most importantly, it's <strong>not a fixed plan</strong> or a set of deliverables; it's a guide that informs our actions, but also must be prepared to change when things change.</p> <ul> <li>How we shape and deliver <strong>product value</strong> through UX,</li> <li><strong>Priorities</strong>, focus + why, actions, metrics, risks,</li> <li><strong>Isn't a roadmap</strong>, intention or deliverables.</li> </ul> <h2 id="six-key-components-of-ux-strategy" tabindex="-1">Six Key Components of UX Strategy <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-strategy/#six-key-components-of-ux-strategy">#</a></h2> <p>The impact of good UX typically lives in <strong>differentiation</strong>. It's not about how &quot;different&quot; our experience is, but the unique perceived value that users associate with it. And that value is a matter of clear, frictionless, accessible, fast and reliable experience wrapped into the product.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/1072997c-991e-eb52-d8c3-5242012942d7.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ux-strategy/4.jpg" alt="UX strategy covers a plan of action, priorities, when to start working on it, and what it looks like." width="1500" height="844" loading="lazy"> </a> <figcaption><p>UX strategy works best in discovery, and is useful when risk and uncertainty are high. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/1072997c-991e-eb52-d8c3-5242012942d7.jpg">Image source</a>.</p> </figcaption> </figure> <p>I always try include <strong>6 key components</strong> in any strategic UX work — so we don't end up following a wrong assumption that won't bring any impact:</p> <p><strong>🚀 Vision</strong><br> The desired, improved future state of UX.</p> <p><strong>👩🏻‍💼 User segments</strong><br> Primary users that we are considering.</p> <p><strong>🥇 Priorities</strong><br> What we will and, crucially, what we will not do, and why.</p> <p><strong>🎯 High-value actions</strong><br> How we drive value and meet user and business needs.</p> <p><strong>🗂️ Feasibility</strong><br> Realistic assessment of people, processes, resources.</p> <p><strong>🎲 Risks</strong><br> Bottlenecks, blockers, legacy constraints, big unknowns.</p> <p>It's worth noting that it's always dangerous to be designing a product with <strong>everybody in mind</strong>. As Jamie Levy noted, by being very broad too early, we often reduce the impact of our design and messaging. It's typically better to start with a specific, <strong>well-defined user segment</strong> and then expand, rather than the other way around.</p> <h2 id="practical-example-by-alin-buda" tabindex="-1">Practical Example (by Alin Buda) <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-strategy/#practical-example-by-alin-buda">#</a></h2> <p>UX strategy doesn't have to be big <strong>40-pages long PDF report</strong> or a Keynote presentation. A while back Alin Buda kindly <a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-activity-7313819542655299585-ya-L">left a comment</a> on one of my LinkedIn posts giving a great example of what a <strong>concise UX strategy</strong> could look like:</p> <p><strong>UX Strategy (for Q4)</strong><br> Our UX strategy is to focus on <strong>high-friction workflows</strong> for expert users, not casual usability improvements. Why? Because retention in this space is driven by power-user efficiency, and that aligns with our growth model.</p> <p>To succeed, we'll design <strong>workflow accelerators</strong> and decision-support tools that will reduce time-on-task. As a part of it, we'll need to redesign legacy flows in the Crux system. We <strong>won't prioritize</strong> UI refinements or onboarding tours, because it doesn't move the needle in this context.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/38e42b57-ec3b-3d53-45fb-de9d2105e738.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ux-strategy/5.jpg" alt="UX Strategy example, highlighting individual key points to cover." width="1500" height="841" loading="lazy"> </a> <figcaption><p>UX strategy works best in discovery, and is useful when risk and uncertainty are high. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/3013e55f-78cf-af8c-f90e-beea9f29ae73.jpg">Image source</a>.</p> </figcaption> </figure> <p>What I like most about this example is just how concise and clear it is. Getting to this level of clarity takes quite a bit of time, but it creates a very precise overview of what we do, what we don't do, what we focus on and how we <strong>drive value</strong>.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-strategy/#wrapping-up">#</a></h2> <p>The best path to make a strong case with senior leadership is to frame your UX work as a direct <strong>contributor to differentiation</strong>. This isn't just about making things look different; it's about enhancing the perceived value.</p> <p>A good strategy ties UX improvements to <strong>measurable business outcomes</strong>. It doesn't speak about design patterns, or consistency or neatly organized components. Instead, it speaks the language of product and business strategy — OKRs, costs, revenue, business metrics and objectives.</p> <p>Design <strong>can succeed without a strategy</strong>. In wise words of Sun Tzu, strategy without tactics is the slowest route to victory. And tactics without strategy are the noise before defeat.</p> <hr> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-strategy/#useful-resources">#</a></h2> <ul> <li><a href="https://www.secondwavedive.com/books">Business Thinking For Designers (free eBook)</a>, by Second Wave Dive</li> <li><a href="https://www.productboard.com/dangerous-animals/">How To Engage With Stakeholders (free eBook)</a>, by Productboard</li> <li><a href="https://www.nomensa.com/blog/what-ux-strategy/">What is UX Strategy?</a>, by Nomensa</li> <li><a href="https://www.nngroup.com/articles/ux-strategy/">UX Strategy: A 5-Component Framework</a>, by Nielsen Norman Group</li> <li><a href="https://miro.com/miroverse/ux-strategy-canvas/">UX Strategy Canvas</a>, by Miroverse</li> <li><a href="https://humanfactors.com/thinking-favorite.aspx">UX ROI Calculators</a>, by Human Factors International</li> <li><a href="https://www.knapsack.cloud/calculator">Design System ROI Calculator</a>, by Knapsack</li> </ul> <h2 id="useful-books" tabindex="-1">Useful Books <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-strategy/#useful-books">#</a></h2> <ul> <li><a href="https://jaimelevy.com/ux-strategy-book/">UX Strategy</a>, by Jaime Levy</li> <li><a href="https://www.nobullshitstrategy.com/">No Bullsh*t Strategy</a>, by Alex M H Smith</li> <li><a href="https://www.thegrowthequation.co.uk/">The Growth Equation</a>, by Andy Budd</li> <li><a href="https://dashinsky.com/staff-product-designer/">The Path To Staff Product Designer</a>, by Artiom Dashinsky</li> <li><a href="https://www.uxforbusiness.com/">UX for Business</a>, by Joel Marsh</li> <li><a href="https://pricing.design/">Pricing Design</a>, by Dan Mall</li> </ul> Thu, 20 Nov 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/ux-strategy/ How To Make Your UX Research Hard To Ignore https://smart-interface-design-patterns.com/articles/data-does-not-change-minds/ <p>In the early days of my career, I believed that nothing <strong>wins an argument</strong> more effectively than strong and unbiased research. Surely facts speak for themselves, I thought.</p> <p>If I just get enough data, just enough evidence, just enough clarity on where users struggle — well, once I have it all and I present it all, it alone will surely change people’s minds, hearts, and beliefs. And, most importantly, it will help everyone see, understand, and perhaps even appreciate and commit to <strong>what needs to be done</strong>.</p> <p>Well, it’s not quite like that. In fact, the stronger and louder the data, the more likely it is to be <strong>questioned</strong>. And there is a good reason for that, which is often left between the lines.</p> <h2 id="research-amplifies-internal-flaws" tabindex="-1">Research Amplifies Internal Flaws <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/data-does-not-change-minds/#research-amplifies-internal-flaws">#</a></h2> <p>Throughout the years, I’ve often seen data speaking volumes about where the business is failing, where customers are struggling, where the team is faltering — and where an <strong>urgent turnaround</strong> is necessary. It was right there, in plain sight: clear, loud, and obvious.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/shopify-ux/the-design-process-is-a-lie-465a7064a733"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/data-does-not-change-minds/data-does-not-change-minds-1.jpg" alt="Wonderful illustration by José Torre." width="1500" height="1124" loading="lazy"> </a> <figcaption><p>Good research doesn't just uncover troubles; it also amplifies internal flaws and poor decisions. Wonderful illustration by <a href="https://medium.com/shopify-ux/the-design-process-is-a-lie-465a7064a733">José Torre</a></p> </figcaption> </figure> <p>But because it’s so clear, it reflects back, often amplifying all the sharp edges and all the cut corners in all the wrong places. It reflects internal flaws, <strong>wrong assumptions</strong>, and failing projects — some of them signed off years ago, with secured budgets, big promotions, and approved headcounts. Questioning them means <strong>questioning authority</strong>, and often it’s a tough path to take.</p> <p>As it turns out, strong data is very, very good at raising <strong>uncomfortable truths</strong> that most companies don’t really want to acknowledge. That’s why at times research is deemed “unnecessary,” or why we don’t get access to users, or why <strong>loud voices</strong> always win big arguments.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/5b5e9d9b-b044-9b1a-bf7c-6bc6c3e8d582.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/data-does-not-change-minds/data-does-not-change-minds-2.jpg" alt="UX Research in B2B." width="1500" height="844" loading="lazy"> </a> <figcaption><p>UX Research in B2B: when you don’t have access to users. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/5b5e9d9b-b044-9b1a-bf7c-6bc6c3e8d582.jpg">Large view</a>.</p> </figcaption> </figure> <p>So even if data is presented with a lot of eagerness, gravity, and passion in that big meeting, it will get questioned, doubted, and explained away. Not because of its flaws, but because of hope, reluctance to change, and layers of <strong>internal politics</strong>.</p> <p>This shows up most vividly in situations when someone raises concerns about the <strong>validity and accuracy</strong> of research. Frankly, it’s not that somebody is wrong and somebody is right. Both parties just happen to be <strong>right in a different way</strong>.</p> <h2 id="what-to-do-when-data-disagrees" tabindex="-1">What To Do When Data Disagrees <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/data-does-not-change-minds/#what-to-do-when-data-disagrees">#</a></h2> <p>We’ve all heard that data always tells a story. However, it’s <strong>never just a single story</strong>. People are complex, and pointing out a specific truth about them just by looking at numbers is rarely enough.</p> <p>When data disagrees, it doesn’t mean that either is wrong. It’s just that <strong>different perspectives</strong> reveal different parts of a whole story that isn’t completed yet.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/lexisnexis-design/what-to-do-when-qual-and-quant-disagree-18a535164ca6"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/data-does-not-change-minds/data-does-not-change-minds-3.jpg" alt="Various UX Research methods" width="1500" height="1823" loading="lazy"> </a> <figcaption><p><a href="https://medium.com/lexisnexis-design/what-to-do-when-qual-and-quant-disagree-18a535164ca6">What to do when qual and quant disagree</a>, a very practical guide by Archana Shah.</p> </figcaption> </figure> <p>In digital products, most stories have <strong>2 sides</strong>:</p> <ul> <li><strong>Quantitative data</strong> ← What/When: behavior patterns at scale.</li> <li><strong>Qualitative data</strong> ← Why/How: user needs and motivations.</li> <li>↳ Quant usually comes from analytics, surveys, and experiments.</li> <li>↳ Qual comes from tests, observations, and open-ended surveys.</li> </ul> <p>Risk-averse teams overestimate the <strong>weight of big numbers</strong> in quantitative research. Users exaggerate the frequency and severity of issues that are critical for them. As Archana Shah <a href="https://medium.com/lexisnexis-design/what-to-do-when-qual-and-quant-disagree-18a535164ca6">noted</a>, designers get carried away by users’ <strong>confident responses</strong> and often overestimate what people say and do.</p> <p>And so, eventually, data coming from different teams paints a different picture. And when it happens, we need to <strong>reconcile and triangulate</strong>. With the former, we track what’s missing, omitted, or overlooked. With the latter, we <strong>cross-validate data</strong> — e.g. finding pairings of qual/quant streams of data, then clustering them together to see what’s there and what’s missing, and explore from there.</p> <p>And even with all of it in place and data conflicts resolved, we still need to do one more thing to make a strong argument: we need to tell a <strong>damn good story</strong>.</p> <h2 id="facts-dont-win-arguments-stories-do" tabindex="-1">Facts Don’t Win Arguments, Stories Do <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/data-does-not-change-minds/#facts-dont-win-arguments-stories-do">#</a></h2> <p>Research isn’t everything. <a href="https://www.linkedin.com/posts/erikahall_tapping-the-sign-again-every-time-i-see-activity-7360805865051865090-uldg">Facts don’t win arguments</a> — <strong>powerful stories do</strong>. But a story that starts with a spreadsheet isn’t always inspiring or effective. Perhaps it brings a problem into the spotlight, but it doesn’t lead to a resolution.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/shopify-ux/the-design-process-is-a-lie-465a7064a733"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/data-does-not-change-minds/data-does-not-change-minds-4.png" alt="Wonderful illustration by José Torre." width="1500" height="1124" loading="lazy"> </a> <figcaption><p>Presenting research is more than presenting findings. It must be wrapped inside of an actionable story. Wonderful illustration by <a href="https://medium.com/shopify-ux/the-design-process-is-a-lie-465a7064a733">José Torre</a>.</p> </figcaption> </figure> <p>The very first thing I try to do in that big boardroom meeting is to emphasize <strong>what unites us</strong> — shared goals, principles, and commitments that are relevant to the topic at hand. Then, I show how new data <strong>confirms or confronts</strong> our commitments, with specific problems we believe we need to address.</p> <p>When a question about the quality of data comes in, I need to show that it has been <strong>reconciled and triangulated</strong> already and discussed with other teams as well.</p> <p>A good story has a poignant ending. People need to see an <strong>alternative future</strong> to trust and accept the data — and a clear and safe path forward to commit to it. So I always try to present options and solutions that we believe will drive change and explain our decision-making behind that.</p> <figure class="c-article__image u-flow--xs"> <a href="https://ucdc.therectangles.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/data-does-not-change-minds/data-does-not-change-minds-5.png" alt="Delicate Art of Interviewing Stakeholders" width="1500" height="909" loading="lazy"> </a> <figcaption><p>A useful little helper to understand what stakeholders truly care about. <a href="https://ucdc.therectangles.com/">User Centered Design Canvas</a> could be applied to stakeholders.</p> </figcaption> </figure> <p>They also need to believe that this distant future is <strong>within reach</strong>, and that they can pull it off, albeit under a tough timeline or with limited resources.</p> <p>And: a good story also presents a viable, compelling, <strong>shared goal</strong> that people can rally around and commit to. Ideally, it’s something that has a direct benefit for them and their teams.</p> <p>These are the ingredients of the story that I always try to keep in my mind when working on that big presentation. And in fact, data is a <strong>starting point</strong>, but it does need a story wrapped around it to be effective.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/data-does-not-change-minds/#wrapping-up">#</a></h2> <p>There is nothing more disappointing than finding a real problem that real people struggle with and facing the harsh reality of research <strong>not being trusted</strong> or valued.</p> <p>We’ve all been there before. The best thing you can do is to <strong>be prepared</strong>: have strong data to back you up, include both quantitative and qualitative research — preferably with video clips from real customers — but also paint a <strong>viable future</strong> which seems within reach.</p> <p>And sometimes nothing changes until <strong>something breaks</strong>. And at times, there isn’t much you can do about it unless you are prepared when it happens.</p> <p><em>“Data doesn’t change minds, and facts don’t settle fights. Having answers isn't the same as learning, and it for sure isn't the same as making evidence-based decisions.” — Erika Hall</em></p> <hr> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/data-does-not-change-minds/#useful-resources">#</a></h2> <ul> <li><strong><a href="https://www.dscout.com/people-nerds/present-research-for-stakeholders-tips">How to Present Research So Stakeholders Sit Up and Take Action</a></strong>, by Nikki Anderson</li> <li><strong><a href="https://medium.com/lexisnexis-design/what-to-do-when-qual-and-quant-disagree-18a535164ca6">What To Do When Data Disagrees</a></strong>, by Subhasree Chatterjee, Archana Shah, Sanket Shukl and Jason Bressler</li> <li><a href="https://medium.com/shopify-ux/how-to-use-mixed-method-research-to-drive-product-decisions-7ff023e5b107">Mixed-Method UX Research</a>, by Raschin Fatemi</li> <li><a href="https://medium.com/@jwill7378/confidently-step-into-mixed-method-ux-research-a-step-by-step-framework-for-mixed-method-research-98f4284b8ebe">A Step-by-Step Framework For Mixed-Method Research</a>, by Jeremy Williams</li> <li><a href="https://dscout.com/people-nerds/mixed-methods-research">The Ultimate Guide To Mixed Methods</a>, by Ben Wiedmaier</li> <li><a href="https://www.linkedin.com/posts/vitalyfriedman_ux-surveys-activity-7222861773375180800-O0c0">Survey Design Cheatsheet</a>, by yours truly 👍</li> <li><a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-research-activity-7227973209839538177-P3iV">Useful Calculators For UX Research</a>, by yours truly 👍</li> <li><a href="https://vimeo.com/188285898?fl=pl&amp;fe=vl">Beyond Measure</a>, by Erika Hall 👍</li> </ul> <h2 id="useful-books" tabindex="-1">Useful Books <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/data-does-not-change-minds/#useful-books">#</a></h2> <ul> <li><em>Just Enough Research</em>, by Erika Hall</li> <li><em>Designing Surveys That Work</em>, by Caroline Jarrett</li> <li><em>Designing Quality Survey Questions</em>, by Sheila B. Robinson</li> </ul> Tue, 18 Nov 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/data-does-not-change-minds/ Useful UX Research Calculators and Guides https://smart-interface-design-patterns.com/articles/sample-sizes/ <p>UX research <strong>doesn’t have to be expensive</strong> or time-consuming. Yet very often it’s perceived as a <strong>huge, blocking effort</strong>, requiring weeks and months of work, often without a clear timeline in mind.</p> <p>In practice, we can get meaningful insights without significant delays. Let’s see what <strong>UX research calculators and guides</strong> we can use to estimate just the right number of participants — for surveys, card sorting and usability testing. Let’s jump in.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/sample-sizes/A%20handy%20collection%20of%20UX%20research%20calculators%20and%20guides.%20From%20the%20[UX%20Research%20Field%20Guide](https://www.userinterviews.com/ux-research-field-guide)%20by%20User%20Interviews."> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/sample-sizes/1-sample-sizes.jpg" alt="A collection of calculators for UX research." width="1500" height="2053" loading="lazy"> </a> </figure> <h2 id="quick-cheatsheet" tabindex="-1">Quick Cheatsheet <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sample-sizes/#quick-cheatsheet">#</a></h2> <p>Testing isn’t about finding universal truths, but key blockers where people struggle. And for that, you don’t need many people to start gathering insights:</p> <ul> <li><strong>Iterate with 5 people at a time</strong>: test, adjust, test again.</li> <li><strong>Surveys</strong>: aim confidence level 95%, margin of error 2–5%.</li> <li>10,000 users → you will need ≥567 answers to reduce bias.</li> <li>Assume the <strong>response rate</strong> of 20–30% (incl. no-show-rate).</li> <li>For reliable survey results, we need to invite 2835 people.</li> <li><strong>For card sorting</strong>, get 15–30+ people to sort independently.</li> <li><strong>For tree testing</strong>, invite at least 25 (better: 50) participants.</li> <li>Nothing matters more than a <strong>targeted and diverse sample</strong>.</li> </ul> <h2 id="useful-calculators-and-guides" tabindex="-1">Useful Calculators and Guides <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sample-sizes/#useful-calculators-and-guides">#</a></h2> <ul> <li>👥 <strong><a href="https://www.userinterviews.com/qualitative-sample-size-calculator">Qualitative Sample Size Calculator</a></strong>, by UserInterviews</li> <li>💸 <strong><a href="https://www.userinterviews.com/lp/ux-research-incentive-calculator">Research Incentive Calculator</a></strong>, by UserInterviews</li> <li>🔘 <strong><a href="https://fe-stage.checkmarket.com/sample-size-calculator/">Survey Sample Size Calculator</a></strong>, by CheckMarket</li> <li>💯 <strong><a href="https://www.knapsack.cloud/calculator">Bonus: Design System ROI Calculator</a></strong>, by Knapsack</li> <li>📱 <strong><a href="https://boagworld.com/boagworks/convince-the-boss/#calculator">UX Work ROI Calculator</a></strong>, by Paul Boag</li> <li>🚀 <strong><a href="https://www.userinterviews.com/launch-kit">UX Research Project Launch Kits</a></strong>, by UserInterviews</li> <li>🌲 <strong><a href="https://www.userinterviews.com/ux-research-field-guide">UX Research Field Guide</a></strong>, by UserInterviews</li> </ul> <h2 id="scale-clarity" tabindex="-1">Scale ≠ Clarity <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sample-sizes/#scale-clarity">#</a></h2> <p>A while back I stumbled upon <a href="https://www.linkedin.com/posts/nikkianderson-ux_big-sample-size-small-brain-energy-we-activity-7342944534151983105-Sdw6/">Nikki Anderson’s point</a> about big sample sizes often wrongfully viewed as the “safest” way to discover insights. I love Nikki's argument that scale can’t fix vague goals, at times answer wrong or misleading questions, and often skip the difficult part of framing the problem first. Scale sounds impressive, but it <strong>doesn’t map to clarity</strong>.</p> <p>Nikki suggests starting with a very simple path:</p> <ul> <li><strong>Decide on what you want to know</strong>,</li> <li>↳ Then choose the right questions to ask,</li> <li>↳ Then choose the research method to use,</li> <li>↳ Then decide on the sample size.</li> </ul> <p>So we start with a decision of what we’re trying to learn first, then the question, then the method, and then the sample size. But we must know — and be committed — to what we want to know first. And very often we don’t need <strong>statistically significant results</strong> to notice and act on critical blockers.</p> <h2 id="but-is-it-statistically-significant" tabindex="-1">“But Is It Statistically Significant?” <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sample-sizes/#but-is-it-statistically-significant">#</a></h2> <p>Now, for UX designers, that’s an incredibly difficult question to answer. Again, as <a href="https://www.linkedin.com/posts/nikkianderson-ux_is-this-statistically-significant-every-activity-7307757817434697729-qZk5">Nikki has pointed out</a>, statistical significance was never designed for qualitative research. And with UX work, we’re not trying to publish academic research or prove universal truths.</p> <p>What we are trying to do is reach <strong>theoretical saturation</strong>, the point where additional research doesn’t give us new insights. Research isn’t about proving something is true. It’s about preventing costly mistakes before they happen.</p> <ul> <li><strong>Five users per iteration</strong> often surface major issues, and <strong>10–15 users per segment</strong> usually reach saturation. If we’re still getting new insights after that, our scope is too broad.</li> <li>“If five people hit the same pothole and wreck their car, how many more do you need before fixing the road?”</li> <li>“If three enterprise customers say onboarding is confusing, that’s a <strong>churn risk</strong>.”</li> <li>“If two usability tests expose a checkout issue, that’s <strong>abandoned revenue</strong>.”</li> <li>“If one customer interview reveals a security concern, that’s a <strong>crisis waiting to happen</strong>.”</li> <li>“How many user complaints exactly do we need to take this seriously?”</li> <li>“How much revenue exactly are we willing to lose before fixing this issue?”</li> </ul> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sample-sizes/#wrapping-up">#</a></h2> <p>It might not be necessary to focus on the number of participants, but instead, argue about users <strong>consistently struggling</strong> with a feature, a mismatch of expectations, and a clear pattern emerging around a particular pain point.</p> <p>Research doesn’t have to be expensive or time-consuming. In the worst case, I start with <strong>5×45 mins interviews</strong> to spot critical blockers and unmet user needs. As we run sessions, I mark critical areas and record short screen share snippets — with consent — and make them visible in the company.</p> <p>Once you’ve built enough confidence in the work that you are doing, it will be much <strong>easier to ask for bigger commitments</strong> — in fact, you might be surprised by how quickly your research work will be requested, rather than merely applied to design work.</p> <h2 id="useful-articles" tabindex="-1">Useful Articles <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sample-sizes/#useful-articles">#</a></h2> <ul> <li><strong><a href="https://www.nngroup.com/articles/interview-sample-size/">How Many Participants For a UX Interview?</a></strong>, by Maria Rosala</li> <li><strong><a href="https://www.nngroup.com/articles/summary-quant-sample-sizes/">Sample-Size Recommendations</a></strong>, by Raluca Budiu and Kate Moran</li> </ul> Mon, 06 Oct 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/sample-sizes/ How To Design Bulk Import UX (+ Figma Prototypes) https://smart-interface-design-patterns.com/articles/bulk-ux/ <p>Friendly note: <strong>get a friendly UX bundle</strong> for <a href="https://smart-interface-design-patterns.com/">Smart Interface Design Patterns</a> 🍣 and <a href="https://measure-ux.com/">Measuring UX</a> 🍎 — with live UX training coming up. <a href="https://smart-interface-design-patterns.com/">Jump to table of contents</a>.</p> <p><strong>Bulk operations</strong> are heavily underused in most products. The term refers to running <strong>repetitive tasks</strong> in large batches, which enables fast iterations and updates across large data sets. This, in turn, reduces time on task, human errors, and manual actions.</p> <p>But, as you probably know, bulk operations <strong>aren’t easy to design</strong>. We need to think about missing metadata, matching columns and fixing errors. We need to help people understand what’s missing and what’s wrong to avoid poor imports. Let’s see what exactly it requires.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/design-bootcamp/ux-case-study-bulk-upload-feature-785803089328"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/bulk-ux/1-bulk-ux.jpg" alt="A 'check column values' screen in an import process, showing a table of candidate data with green checkmarks indicating valid entries." width="1500" height="1743" loading="lazy"> </a> <figcaption><p>A good bulk import UX has a validation step that allows users to identify and fix issues directly within the interface. <a href="https://medium.com/design-bootcamp/ux-case-study-bulk-upload-feature-785803089328">UX Case Study: Bulk Import</a>.</p> </figcaption> </figure> <h2 id="the-art-of-bulk-operations" tabindex="-1">The Art of Bulk Operations <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/bulk-ux/#the-art-of-bulk-operations">#</a></h2> <p>Bulk operations come in <strong>many flavors</strong>: bulk import, bulk editing, disable, move, update, archive and so many others. When designing an import, it’s a good idea to first <strong>define core bulk attributes</strong> for mapping. Then for each attribute, define a <strong>data profile</strong> and whether it’s optional or required.</p> <p>Then, we study file types, encodings, max file sizes and metadata. Users often expect bulk features to support Excel and CSV — but also the ability to copy/paste data, along with a preview and auto-fill.</p> <p>An often overlooked part is refined <strong>error messages</strong> for broken files and unmatched columns, which are very much needed to help people recover. Things will go wrong, and mostly it’s just a matter of time until it happens. We must be prepared for it.</p> <p>Being prepared requires a process.</p> <h2 id="five-stages-of-bulk-workflow" tabindex="-1">Five Stages of Bulk Workflow <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/bulk-ux/#five-stages-of-bulk-workflow">#</a></h2> <p>Almost <strong>every bulk workflow</strong> will include (at least) the following 5 steps:</p> <p><strong>🚦 1. Pre-import</strong><br> Set up guardrails and give an example or an Excel template.</p> <p><strong>✂️ 2. File Upload</strong><br> Support drag-and-drop, keyboard-only, and copy/paste.</p> <p><strong>🚎 3. Mapping</strong><br> Map header columns, check values, and add inline editing for corrections.</p> <p><strong>🧰 4. Repair</strong><br> Flag duplicates and allow users to see only rows with errors.</p> <p><strong>🗂️ 5. Import</strong><br> Show a final summary and support adding tags, labels, or categories to the batch.</p> <p>In that light, again, probably the <strong>most challenging part</strong> about bulk operations is helping users fix issues — be it column mismatches, missing data, or contradictory details — <em>within</em> the bulk feature itself. Many interfaces simply dismiss the file with generic and technical jargon, labeling it as “corrupt”, “invalid”, “incompatible”, or “wrong”.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/design-bootcamp/ux-case-study-bulk-upload-feature-785803089328"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/bulk-ux/2-bulk-ux.png" alt="A flowchart diagram illustrating the user flow for a bulk payout system, starting from selecting payees to the final payment confirmation." width="1500" height="1640" loading="lazy"> </a> </figure> <p>We can prepare users by <strong>setting expectations</strong> on data format, sizes, and attributes ahead of time. We could provide a sample template to consult or use. Map column headers but then allow users to fix errors. Look ahead: there might be <strong>duplicate records</strong> already, so before overwriting them, flag them and ask users to confirm how they’d like to manage them.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/design-bootcamp/ux-case-study-bulk-upload-feature-785803089328"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/bulk-ux/3-bulk-ux.png" alt="A wireframe of a file import interface showing options for choosing a file and mapping CSV columns to database fields." width="1500" height="1746" loading="lazy"> </a> <figcaption><p>A wireframe of a file import interface showing options for choosing a file and mapping CSV columns to database fields.</p> </figcaption> </figure> <p>And: once an import has completed, it’s usually very difficult to reverse the process. So, help users <strong>categorize, tag, or add extra metadata</strong> (e.g., source) to tell the “new” data apart from the “old”. You might not be able to reverse the process, but you can help users navigate around it if’s needed.</p> <hr> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/bulk-ux/#useful-resources">#</a></h2> <ul> <li><strong><a href="https://medium.com/design-bootcamp/ux-case-study-bulk-upload-feature-785803089328">Bulk Upload Feature UX</a></strong>, by Livinda Christy Monica</li> <li><strong><a href="https://uxplanet.org/making-a-bunch-of-payouts-using-razorpayx-ui-ux-case-study-c931a90767ee">Making A Bulk of Payouts</a></strong>, by Divya Kotian (see also the <a href="https://www.figma.com/proto/Jmk44Cah2MDQ1cYyAvGtxs/Capstone-Project---Razorpay?kind=proto&amp;node-id=586-22205&amp;scaling=min-zoom">Figma prototype</a>)</li> <li><strong><a href="https://yooshan.com/work/bulk-Import/index.html">Bulk Import UX For CSV &amp; XLXS</a></strong>, by Yooshan Chandran (see also the <a href="https://www.figma.com/proto/ksElAxROVM5ZwWNsphz00S/Concept-One?page-id=0%3A1&amp;type=design&amp;node-id=682-57946&amp;t=wGazuir7VTRW5y3u-1&amp;starting-point-node-id=22%3A10918">Figma prototype</a>)</li> <li><strong><a href="https://flatfile.com/blog/optimizing-csv-import-experiences-flatfile-portal/">Building a Seamless CSV Import</a></strong>, by David Bonilla</li> </ul> Mon, 06 Oct 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/bulk-ux/ UX Job Interview Helpers https://smart-interface-design-patterns.com/articles/ux-interview-questions/ <p>When talking about <strong>job interviews for a UX position</strong>, we often discuss how to leave an incredible impression and how to negotiate the right salary. But it’s only one part of the story. The other part is to be prepared, to ask questions and to listen carefully.</p> <p>Below, I’ve put together a few <strong>useful resources on UX job interviews</strong> — from job boards to Notion templates and practical guides. I hope you or your colleagues will find it helpful.</p> <h2 id="the-design-interview-kit" tabindex="-1">The Design Interview Kit <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-interview-questions/#the-design-interview-kit">#</a></h2> <p>As you are preparing for that interview, get ready with the <a href="https://www.figma.com/community/file/1268352321000064567/complete-guide-to-design-interviews-free">Design Interview Kit</a> (Figma), a helpful <strong>practical guide</strong> that covers how to craft case studies, solve design challenges, write cover letters, present your portfolio and negotiate your offer. Kindly shared by Oliver Engel.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.figma.com/community/file/1268352321000064567/complete-guide-to-design-interviews-free"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ux-interview-questions/1-ux-interview-questions.jpg" alt="An illustration" width="1500" height="970" loading="lazy"> </a> </figure> <h2 id="the-product-designers-job-interview-playbook-pdf" tabindex="-1">The Product Designer’s (Job) Interview Playbook (PDF) <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-interview-questions/#the-product-designers-job-interview-playbook-pdf">#</a></h2> <p><a href="https://drive.google.com/file/d/1z_lJyguQhxvV1sZXt0oQUtdxpoQWoeol/view">The Product Designer’s (Job) Interview Playbook (PDF)</a> is a <strong>practical little guide</strong> for designers through each interview phase, with helpful tips and strategies on things to keep in mind, talking points, questions to ask, red flags to watch out for and how to tell a compelling story about yourself and your work. Kindly put together by Meghan Logan.</p> <figure class="c-article__image u-flow--xs"> <a href="https://drive.google.com/file/d/1z_lJyguQhxvV1sZXt0oQUtdxpoQWoeol/view"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ux-interview-questions/2-ux-interview-questions.jpg" alt="UX candidates" width="1500" height="1989" loading="lazy"> </a> <figcaption><p>The Product Designer’s Interview Handbook, by Meghan Logan.</p> </figcaption> </figure> <p>From my side, I can only wholeheartedly recommend to <strong>not only speak about your design process</strong>. Tell stories about the impact that your design work has produced. Frame your design work as enabler of business goals and user needs. And include insights about the impact you’ve produced — on business goals, processes, team culture, planning, estimates, testing.</p> <p>Also, be very <strong>clear about the position</strong> that you are applying for. In many companies, titles do matter. There are vast differences in responsibilities and salaries between various levels for designers, so if you see yourself as a senior, review if it actually reflects itself in the position.</p> <h2 id="a-guide-to-successful-ux-job-interviews-notion-template" tabindex="-1">A Guide To Successful UX Job Interviews (+ Notion template) <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-interview-questions/#a-guide-to-successful-ux-job-interviews-notion-template">#</a></h2> <p>Catt Small’s <a href="https://cattsmall.com/blog/2023/debug-design-hiring-journey-application">Guide To Successful UX Job Interviews</a>, a wonderful practical series on <strong>how to build a referral pipeline</strong>, apply for an opening, screening, prepare for the interview, present your work and manage salary expectations. You can also <a href="https://cattsmall.notion.site/6826ccd5deca4e51a7b76ea60778236e?v=acc69633e8704285802464f72ac830c4">download a Notion template</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://cattsmall.com/blog/2023/debug-design-hiring-journey-application"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ux-interview-questions/3-ux-interview-questions.jpg" alt="UX candidates" width="1500" height="2005" loading="lazy"> </a> <figcaption><p><a href="https://cattsmall.com/blog/2023/debug-design-hiring-journey-application">A Guide to Design Interview Journey</a>, by (wonderful!) Catt Small.</p> </figcaption> </figure> <h2 id="30-useful-questions-to-ask-in-ux-job-interviews" tabindex="-1">30 Useful Questions To Ask In UX Job Interviews <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-interview-questions/#30-useful-questions-to-ask-in-ux-job-interviews">#</a></h2> <p>In her wonderful article, Nati Asher has suggested <a href="https://uxdesign.cc/6-things-i-wish-product-design-candidates-would-ask-me-during-interviews-87d9f21d286e">many useful questions</a> to ask in a job interview when you are applying as a UX candidate. I’ve taken the liberty to revise some of them, and added a few more questions that might be worth considering <strong>for your next job interview</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://halfool.medium.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ux-interview-questions/4-ux-interview-questions.jpg" alt="UX candidates" width="1500" height="1124" loading="lazy"> </a> <figcaption><p>Best interviews include questions from both sides. A wonderful illustration by <a href="https://halfool.medium.com/">José Torre</a>.</p> </figcaption> </figure> <ol> <li>What are the <strong>biggest challenges</strong> the team faces at the moment?</li> <li>What are the team’s main <strong>strengths and weaknesses</strong>?</li> <li>What are the <strong>traits and skills</strong> that will make me successful in this position?</li> <li>Where is the company going in the next 5 years?</li> <li>What are the achievements I should aim for over the <strong>first 90 days</strong>?</li> <li>What would make you think “I’m so happy we hired X!”?</li> <li>Do you have any <strong>doubts or concerns</strong> regarding my fit to this position?</li> <li>Does the team have any budget for education, research etc.?</li> <li>What is the process of <strong>onboarding</strong> in the team?</li> <li>Who is in the team and how long are they in that team?</li> <li>Who are the main <strong>stakeholders</strong> I will work with on a day-to-day basis?</li> <li>Which options do you have for user research and accessing users or data?</li> <li>Are there <strong>analytics</strong>, recordings or other data sources to review?</li> <li>How do you <strong>measure the impact of design work</strong> in your company?</li> <li>To what extent does management understand the ROI of good UX?</li> <li>How does UX contribute <strong>strategically</strong> to the company’s success?</li> <li>Who has the <strong>final say on design</strong>, and who decides what gets shipped?</li> <li>What part of the design process does the team spend most time on?</li> <li>How many projects do designers work on <strong>simultaneously</strong>?</li> <li>How has the organization overcome challenges with remote work?</li> <li>Do we have a <strong>design system</strong>, and in what state is it currently?</li> <li>Why does a company want to hire a UX designer?</li> <li>How would you describe the ideal candidate for this position?</li> <li>What does a <a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-career-activity-7077180633575223296-gYIi">career path</a> look like for this role?</li> <li>How will my performance be evaluated in this role?</li> <li>How long do projects take to launch? Can you give me some examples?</li> <li>What are the <strong>most immediate projects</strong> that need to be addressed?</li> <li>How do you see the design team growing in the future?</li> <li>What traits makes someone successful in this team?</li> <li>What’s the <strong>most challenging part</strong> of leading the design team?</li> <li>How does the company ensure it’s upholding its values?</li> </ol> <p>Before a job interview, <strong>have your questions ready</strong>. Not only will they convey a message that you care about the process and the culture, but also that you understand what is required to be successful. And this fine detail might go a long way.</p> <h2 id="dont-forget-about-the-star-method" tabindex="-1">Don’t Forget About The STAR Method <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-interview-questions/#dont-forget-about-the-star-method">#</a></h2> <p>Interviewers closer to business will expect you to present examples of your work using the <a href="https://nationalcareers.service.gov.uk/careers-advice/interview-advice/the-star-method">STAR method</a> (Situation – Task – Action – Result), and might be utterly confused if you delve into all the fine details of your ideation process or the choice of UX methods you’ve used.</p> <p>🗂️ Situation: Set the scene and give necessary details.<br> 🦸‍♀️ Task: Explain your responsibilities in that situation.<br> 🪜 Action: Explain what steps you took to address it.<br> 🎯 Result: Share the outcomes your actions achieved.</p> <p>As Meghan suggests, the interview is all about <strong>how your skills add value to the problem</strong> the company is currently solving. So ask about the current problems and tasks. Interview the person who interviews you, too — but also explain who you are, your focus areas, your passion points and how you and your expertise would fit in a product and in the organization.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-interview-questions/#wrapping-up">#</a></h2> <p>A final note on my end: <strong>never take a rejection personally</strong>. Very often the reasons you are given for rejection are only a small part of a much larger picture — and have almost nothing to do with you. It might be that a job description wasn’t quite accurate, or company is undergoing restructuring, or the finances are too tight after all.</p> <p><strong>Don’t despair and keep going</strong>. Write down your expectations. Job titles matter: be deliberate about them and your level of seniority. Prepare good references. Have your questions ready for that job interview. As Catt Small says, “once you have a foot in the door, you’ve got to kick it wide open”.</p> <p>You are a bright shining star 🌟 — don’t you ever forget that. 🤞🏼🤞🏾</p> <h2 id="job-boards" tabindex="-1">💠 Job Boards <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-interview-questions/#job-boards">#</a></h2> <ul> <li><a href="https://medium.com/@uxsurvivalguide/a-ux-designers-guide-to-finding-the-best-job-boards-f7c7886a0fd6">Remote + In-person</a></li> <li><a href="https://ixda.org/jobs/">IXDA</a></li> <li><a href="https://stillhiring.today/">Who Is Still Hiring?</a></li> <li><a href="https://uxpa.org/job-bank/">UXPA Job Bank</a></li> <li><a href="https://otta.com/">Otta</a></li> <li><a href="https://boooom.co/">Boooom</a></li> <li><a href="https://www.watbd.org/jobs">Black Creatives Job Board</a></li> <li><a href="https://lnkd.in/eGjmr6ZQ">UX Research Jobs</a></li> <li><a href="https://lnkd.in/ehF8hwXt">UX Content Jobs</a></li> <li><a href="https://lnkd.in/e82vQ9yM">UX Content Collective Jobs</a></li> <li><a href="https://lnkd.in/eq_2FY_C">UX Writing Jobs</a></li> </ul> <h3 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-interview-questions/#useful-resources">#</a></h3> <ul> <li><a href="https://www.linkedin.com/posts/vitalyfriedman_ux-jobs-activity-7342081450093015040-lNGp">How To Be Prepared For UX Job Interviews</a>, by yours truly</li> <li><a href="https://www.linkedin.com/posts/vitalyfriedman_ux-jobs-activity-7322193621477179392-BYLX">UX Job Search Strategies and Templates</a>, by yours truly</li> <li><a href="https://startup.jobs/interview-questions">How To Ace Your Next Job Interview</a>, by Startup.jobs</li> <li><a href="https://productdesigninterview.com/ux-design-job-interview-process">Cracking The UX Job Interview</a>, by Artiom Dashinsky</li> <li><a href="https://www.tannerchristensen.com/notes/the-product-design-interview-process">The Product Design Interview Process</a>, by Tanner Christensen</li> <li><a href="https://medium.com/salesforce-ux/10-questions-you-should-ask-in-a-ux-interview-df8450623088">10 Questions To Ask in a UX Interview</a>, by Ryan Scott,</li> <li><a href="https://uxplanet.org/six-questions-to-ask-after-a-ux-designer-job-interview-e046219738d7">Six questions to ask after a UX designer job interview</a>.</li> </ul> Mon, 14 Jul 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/ux-interview-questions/ Design Patterns For AI Interfaces https://smart-interface-design-patterns.com/articles/AI-design-patterns/ <p>Friendly note: <strong>get a friendly UX bundle</strong> for <a href="https://smart-interface-design-patterns.com/">Smart Interface Design Patterns</a> 🍣 and <a href="https://measure-ux.com/">Measuring UX</a> 🍎 — with live UX training coming up. <a href="https://smart-interface-design-patterns.com/">Jump to table of contents</a>.</p> <p>So you need to <strong>design a new AI feature</strong> for your product. How would you start? How do you design flows and interactions? And how do you ensure that that new feature doesn’t get abandoned by users after a few runs?</p> <p>In this newsletter, I’d love to share <strong>a very simple but systematic approach</strong> of how I think about designing AI experiences. Hopefully it will help you get a bit more clarity about how to get started.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/where-should-ai-sit-in-your-ui-1710a258390e"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/AI-design-patterns/1-AI-design-patterns.jpg" alt="Design Patterns for AI Interfaces" width="1500" height="1906" loading="lazy"> </a> <figcaption><p><a href="https://uxdesign.cc/where-should-ai-sit-in-your-ui-1710a258390e">Design Patterns for AI Interfaces</a>, a practical guide by Sharang Sharma.</p> </figcaption> </figure> <h2 id="the-receding-role-of-ai-chat" tabindex="-1">The Receding Role of AI Chat <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/AI-design-patterns/#the-receding-role-of-ai-chat">#</a></h2> <p>One of the key recent shifts is a slow move away from traditional <strong>“chat-alike” AI interfaces</strong>. As Luke Wroblewski <a href="https://lukew.com/ff/entry.asp?2105">wrote</a>, when agents can use multiple tools, call other agents and run in the background, users <em>orchestrate</em> AI work more — there’s a lot less chatting back and forth.</p> <figure class="c-article__image u-flow--xs"> <a href="https://lukew.com/ff/entry.asp?2105"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/AI-design-patterns/2-AI-design-patterns.jpg" alt="AI Experience Paradigm by Luke Wroblewski" width="1500" height="1144" loading="lazy"> </a> <figcaption><p>Messaging UI <a href="https://lukew.com/ff/entry.asp?2105">slowly starts feeling dated</a>, and chat UI fades into background. By Luke Wroblewski.</p> </figcaption> </figure> <p>In fact, chatbots are <strong>rarely a great experience paradigm</strong> — mostly because the burden of articulating intent efficiently lies on the user. But in practice, it’s remarkably difficult to do well, and very time-consuming.</p> <p>Chat doesn’t go away of course, but it’s being complemented with <strong>task-oriented UIs</strong> — temperature controls, knobs, sliders, buttons, semantic spreadsheets, infinite canvases — with AI providing predefined options, presets and templates.</p> <figure class="c-article__image u-flow--xs"> <a href="https://lukew.com/ff/entry.asp?2106"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/AI-design-patterns/3-AI-design-patterns.jpg" alt="AI Experience Paradigm by Luke Wroblewski" width="1500" height="1326" loading="lazy"> </a> <figcaption><p><a href="https://lukew.com/ff/entry.asp?2106">Agentic AI design patterns</a>, with more task-oriented UIs, rather than chat. By Luke Wroblewski.</p> </figcaption> </figure> __ <p>There, AI emphasizes the work, the plan, the tasks — the outcome, instead of the chat input. The result are experiences that truly <strong>amplify value for users</strong> by sprinkling a bit of AI in places where it delivers real value to real users.</p> <p>To design better AI experiences, we need to study <strong>5 key areas</strong> that we need to shape.</p> <h2 id="1-input-ux-expressing-intent" tabindex="-1">✍️ 1. Input UX: Expressing Intent <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/AI-design-patterns/#1-input-ux-expressing-intent">#</a></h2> <p><strong>Conversational AI</strong> is a <strong>very slow</strong> way of helping users expressing and articulating their intent. Usability tests <a href="https://www.nngroup.com/articles/accordion-editing-apple-picking/">show</a> that users often get lost in editing, reviewing, typing and re-typing. It’s painfully slow, often taking 30-60s for input.</p> <p>As it turns out, people have a hard time expressing their intent well. In fact, instead of writing prompts manually, it's a good idea to <a href="https://spectrum.ieee.org/prompt-engineering-is-dead">ask AI to write a prompt</a> to feed itself.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.florafauna.ai/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/AI-design-patterns/4-AI-design-patterns.jpg" alt="Illustration: How users can express their intent in AI interfaces." width="1500" height="823" loading="lazy"> </a> <figcaption><p><a href="https://www.florafauna.ai/">Flora AI</a> allows you to modify images and videos via nodes.</p> </figcaption> </figure> <p>With <a href="https://www.florafauna.ai/">Flora AI</a>, users can still write prompts, but they <strong>visualize their intent</strong> with nodes by connecting various sources visually. Instead of elaborately explaining to AI how we need the pipeline to work, we attach nodes and commands on a canvas.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.krea.ai/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/AI-design-patterns/5-AI-design-patterns.jpg" alt="Illustration of Output UX" width="1500" height="712" loading="lazy"> </a> <figcaption><p>With <a href="https://www.krea.ai/">Krea.ai</a>, users can move abstract shapes (on the left) to explain their goal to AI and study the outcome (on the right).</p> </figcaption> </figure> <p>With input for AI, being precise is slow and challenging. Instead, we can <strong>abstract away</strong> the object we want to manipulate, and give AI precise input by moving that abstracted object on a canvas. That’s what <a href="https://www.krea.ai/">Krea.ai</a> does.</p> <p>In summary, we can <strong>minimize the burden of typing</strong> prompts manually — with AI-generated pre-prompts, prompt extensions, query builders and also voice input.</p> <h2 id="2-output-ux-displaying-outcomes" tabindex="-1">🗂️ 2. Output UX: Displaying Outcomes <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/AI-design-patterns/#2-output-ux-displaying-outcomes">#</a></h2> <p>AI output doesn't have to be merely plain text or a list of bullet points. It must be <strong>helpful to drive people to insights</strong>, faster. For example, we could visualize output by creating additional explanations, based on user’s goal and motivations.</p> <figure class="c-article__image u-flow--xs"> <a href="https://wattenberger.com/thoughts/boo-chatbots"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/AI-design-patterns/6-AI-design-patterns.jpg" alt="Illustration of Output UX" width="1500" height="967" loading="lazy"> </a> <figcaption><p>Visualizing outcome through style lenses. By Amelia Wattenberger.</p> </figcaption> </figure> <p>For example, Amelia Wattenberger <a href="https://wattenberger.com/thoughts/boo-chatbots">visualized AI output</a> for her text editor PenPal by adding <strong>style lenses</strong> to explore the content from. The output could be visualized in sentence lengths and scales <em>Sad — Happy</em>, <em>Concrete — Abstract</em> etc.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.aino.world/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/AI-design-patterns/7-AI-design-patterns.jpg" alt="Illustration of Output UX" width="1500" height="1021" loading="lazy"> </a> <figcaption><p><a href="https://www.aino.world/">Aino.ai</a>, an AI GIS Analyst for urban planning.</p> </figcaption> </figure> <p>The outcome could also be visualized on a map, which of course is expected for an <a href="https://www.aino.world/">AI GIS analyst</a>. Also, users can <strong>access individual data layers</strong>, turn them on and off and hence explore the data on the map.</p> <p>We can also use <a href="https://www.nngroup.com/articles/accordion-editing-apple-picking/">forced ranking</a> and prioritizations to <strong>suggest best options</strong> and avoid choice parallysis — even if a user asks for top 10 recommendations. We can think about ways to present results as a data table, or a dashboard, or a visualization on a map, or as a structured JSON file, for example.</p> <h2 id="3-refinement-ux-tweaking-output" tabindex="-1">🖍️ 3. Refinement UX: Tweaking Output <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/AI-design-patterns/#3-refinement-ux-tweaking-output">#</a></h2> <p>Users often need to <a href="https://www.nngroup.com/articles/accordion-editing-apple-picking/">cherry-pick</a> some bits from the AI output and bring them together in a new place — and often they need to <strong>expand on one section</strong>, synthesize bits from another section, or just refine the outcome to meet their needs.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.adobe.com/products/firefly.html"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/AI-design-patterns/8-AI-design-patterns.jpg" alt="Illustration of Output UX" width="1500" height="844" loading="lazy"> </a> <figcaption><p><a href="https://www.adobe.com/products/firefly.html">Adobe Firefly</a> suggests options and sliders to adjust the outcome.</p> </figcaption> </figure> <p>Refinement is usually <strong>the most painful part of the experience</strong>, with many fine details being left to users to explain elaborately. But we can use good old-fashioned UI controls like knobs, sliders, buttons etc. to improve that experience, similar to how Adobe Firefly does it (image above).</p> <figure class="c-article__image u-flow--xs"> <a href="https://maggieappleton.com/lm-sketchbook/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/AI-design-patterns/9-AI-design-patterns.jpg" alt="Illustration of Output UX" width="1500" height="821" loading="lazy"> </a> <figcaption><p>Presets living on the side in Elicit, an <a href="https://maggieappleton.com/lm-sketchbook/">example</a> by Maggie Appleton.</p> </figcaption> </figure> <p>We can also use presets, bookmarks and allow users to <strong>highlight specific parts of the outcome</strong> that they’d like to change — with contextual prompts acting on highlighted parts of the output, rather than global prompts.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.grammarly.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/AI-design-patterns/10-AI-design-patterns.jpg" alt="Illustration of Output UX" width="1500" height="616" loading="lazy"> </a> <figcaption><p>Tweaking specific parts of the outcome, on <a href="https://www.grammarly.com/">Grammarly</a>.</p> </figcaption> </figure> <h2 id="4-ai-actions-tasks-to-complete" tabindex="-1">🗓️ 4. AI Actions: Tasks To Complete <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/AI-design-patterns/#4-ai-actions-tasks-to-complete">#</a></h2> <p>With AI agents, we can now also <strong>allow users to initiate tasks</strong> that AI can perform on their behalf, such as scheduling events, planning and deep research. We could also ask to <strong>sort results or filter them</strong> in a specific way.</p> <figure class="c-article__image u-flow--xs"> <a href="https://maggieappleton.com/lm-sketchbook/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/AI-design-patterns/11-AI-design-patterns.jpg" alt="Illustration of Output UX" width="1500" height="879" loading="lazy"> </a> <figcaption><p>Suggesting actions on Elicit, an <a href="https://maggieappleton.com/lm-sketchbook/">example</a> by Maggie Appleton.</p> </figcaption> </figure> <p>But we can also add features to help users use AI output better — e.g. by visualizing it, making it shareable, allowing <strong>transformations</strong> between formats, or also posting to Slack, Jira etc.</p> <h2 id="5-ai-integration-where-work-happens" tabindex="-1">⚙️ 5. AI Integration: Where Work Happens <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/AI-design-patterns/#5-ai-integration-where-work-happens">#</a></h2> <p>Many AI interactions are locked within a specific product, but good AI experiences happen <strong>where the actual work happens</strong>. It would be quite unusual to expect a dedicated section for <em>Autocomplete</em>, for example, but we do so for AI features.</p> <figure class="c-article__image u-flow--xs"> <a href="https://dovetail.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/AI-design-patterns/12-AI-design-patterns.png" alt="Illustration of AI Integration UX" width="1500" height="670" loading="lazy"> </a> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://dovetail.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/AI-design-patterns/13-AI-design-patterns.jpg" alt="Illustration of AI Integration UX" width="1500" height="1544" loading="lazy"> </a> <figcaption><p><a href="https://dovetail.com/">DoveTail AI</a> integrates in plenty of platforms, from Jira and Notion to Slack and Teams, where the actual work happens.</p> </figcaption> </figure> <p>The actual boost in productivity comes when users rely on AI as a co-pilot or little helper in the <strong>tools they use daily for work</strong>. It's seamless integrations into Slack, Teams, Jira, GitHub etc. — the tools that people use anyway. <a href="https://www.diabrowser.com/">Dia Browser</a> and <a href="https://dovetail.com/">Dovetail</a> are great examples of it in action.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/AI-design-patterns/#wrapping-up">#</a></h2> <p>Along these 5 areas, we can explore ways to <strong>minimize the cost of interaction</strong> with a textbox, and allowing users to interact with the points of interest directly, by tapping, clicks, selecting, highlighting, bookmarking.</p> <p>Many products are obsessed by being AI-first. But you might be way better off by being <strong>AI-second</strong> instead. The difference is that we focus on user needs and sprinkle a bit of AI across customer journeys where it actually adds value.</p> <p>And: AI products don't have to be AI-only. There is a lot of value in mapping into the mental models that people have adopted over the years, and <strong>enhance them with AI</strong>, similar to how we do it with browser's autofill, rather than leaving users in front of a frightening and omnipresent text box.</p> <hr> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/AI-design-patterns/#useful-resources">#</a></h2> <ul> <li><strong><a href="https://uxdesign.cc/where-should-ai-sit-in-your-ui-1710a258390e">Where Should AI Sit In Your UI?</a></strong>, by Sharang Sharma</li> <li><a href="https://shapeof.ai/">Shape of AI: Design Patterns</a>, by Emily Campbell 👍</li> <li><a href="https://www.aiuxpatterns.com/">AI UX Patterns</a>, by Luke Bennis 👍</li> <li><a href="https://catalogue.projectsbyif.com/">Design Patterns For Trust With AI</a>, via Sarah Gold 👍</li> <li><a href="https://pair.withgoogle.com/guidebook/patterns">AI Guidebook Design Patterns</a>, by Google</li> <li><a href="https://lukew.com/ff/entry.asp?2093">Usable Chat Interfaces to AI Models</a>, by Luke Wroblewski</li> <li><a href="https://lukew.com/ff/entry.asp?2105">The Receding Role of AI Chat</a>, by Luke Wroblewski</li> <li><a href="https://lukew.com/ff/entry.asp?2106">Agent Management Interface Patterns</a>, by Luke Wroblewski</li> <li><a href="https://uxdesign.cc/designing-for-ai-engineers-what-ui-patterns-and-principles-you-need-to-know-8b16a5b62a61">Designing for AI Engineers</a>, by Eve Weinberg</li> </ul> Thu, 10 Jul 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/AI-design-patterns/ Design Guidelines For Better Notifications UX https://smart-interface-design-patterns.com/articles/notifications/ <p>Friendly note: <strong>get a friendly UX bundle</strong> for <a href="https://smart-interface-design-patterns.com/">Smart Interface Design Patterns</a> 🍣 and <a href="https://measure-ux.com/">Measuring UX</a> 🍎 — with live UX training coming up. <a href="https://smart-interface-design-patterns.com/">Jump to table of contents</a>.</p> <p>In many products, setting notification channels on <strong>mute is a default</strong>, rather than an exception. The reason for that is their high frequency which creates disruptions and eventually notifications fatigue, when any popping messages get dismissed instantly.</p> <p>There is a good reason for it: <strong>high frequency of notifications</strong>. In usability testing, it’s the most frequent complaint, yet every app desperately tries to capture a glimpse of our attention, sending more notifications our way. Let’s see how we could make the notifications UX slightly better.</p> <figure class="c-article__image u-flow--xs"> <a href="https://whimsical.com/how-slack-decides-to-send-a-notification-P53PjXCBWEi2fdMjP2Hti"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/notifications/1-notifications.jpg" alt="Decision tree for when to send and not to send a notification, on Slack." width="1500" height="1928" loading="lazy"> </a> <figcaption><p>Decision tree for when to send and not to send a notification, on Slack.</p> </figcaption> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://cattsmall.com/blog/2023/debug-design-hiring-journey-application"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ux-interview-questions/3-ux-interview-questions.jpg" alt="UX candidates" width="1500" height="2005" loading="lazy"> </a> <figcaption><p><a href="https://cattsmall.com/blog/2023/debug-design-hiring-journey-application">A Guide to Design Interview Journey</a>, by (wonderful!) Catt Small.</p> </figcaption> </figure> <h2 id="1-the-many-faces-of-notifications" tabindex="-1">1. The Many Faces of Notifications <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/notifications/#1-the-many-faces-of-notifications">#</a></h2> <p>Notifications are distractions by nature; they bring a user’s attention to a (potentially) significant event they aren’t aware of or might want to be reminded of. As such, they can be very helpful and relevant, providing assistance, and bringing structure and order to the daily routine. Until they are not.</p> <p><strong>Not every communication option is a notification</strong>. As Kim Salazar rightfully <a href="https://www.nngroup.com/articles/indicators-validations-notifications/">noted</a>, status communication often relies on validation, status indicators and notifications. While they are often considered to be similar, they are actually quite different.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.nngroup.com/articles/indicators-validations-notifications/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/notifications/2-notifications.png" alt="A variety of triggers (or) origins of information, from a Critical Analysis of Notification Systems." width="1500" height="943" loading="lazy"> </a> <figcaption><p>Notifications are informational messages that alert the user of general occurrences within a system.</p> </figcaption> </figure> <p>In general, notifications can be either <strong>informational</strong> (calendar reminders, delay notifications, election night results) or <strong>encourage action</strong> (approve payment, install an update, confirm a friend request). They can stream from various sources, and can have various impact.</p> <ul> <li><strong>UI notifications</strong> appear as subtle cards in UIs as users interact with the web interface — as such, they are widely accepted and less invasive than some of their counterparts.</li> <li><strong>In-browser push notifications</strong> are more difficult to dismiss, and draw attention to themselves even if the user isn’t accessing the UI.</li> <li><strong>In-app notifications</strong> live within desktop and mobile apps, and can be as humble as UI notifications, but can take a more central role with messages pushed to the home screen or the notifications center.</li> <li><strong>OS notifications</strong> such as software updates or mobile carrier changes also get in the mix, often appearing together with a wide variety of notes, calendar updates, and everything in between.</li> <li>Finally, <strong>notifications can find their way</strong> into email, SMS, and social messaging apps, coming from chatbots, recommendation systems, and actual humans.</li> </ul> <p>But: we don’t pay the same amount of attention to every notification. It can take weeks until they eventually <strong>install a software update</strong> prompted by their OS notification, or just a few hours to confirm or decline a new LinkedIn request.</p> <h2 id="2-not-every-notification-is-equal" tabindex="-1">2. Not Every Notification Is Equal <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/notifications/#2-not-every-notification-is-equal">#</a></h2> <p>The level of attention users grant to notifications depends on their nature, or, more specifically, <a href="https://uxdesign.cc/a-critical-analysis-of-notification-systems-4956ed86a804">how and when notifications are triggered</a>. <strong>People care more</strong> about new messages from close friends and relatives, bank transactions and important alerts, calendar notifications and any actionable and awaited confirmations or releases.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/a-critical-analysis-of-notification-systems-4956ed86a804"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/notifications/3-notifications.png" alt="A variety of triggers (or) origins of information, from a Critical Analysis of Notification Systems." width="1500" height="788" loading="lazy"> </a> <figcaption><p>A variety of triggers (or) origins of information, from a <a href="https://uxdesign.cc/a-critical-analysis-of-notification-systems-4956ed86a804">Critical Analysis of Notification Systems</a> by Shankar Balasubramanian (Gmail team).</p> </figcaption> </figure> <p><strong>People care less</strong> about news updates, social feed updates, announcements, new features, crash reports, promotional and automated messages in general. Most importantly, <strong>a message from another human being is always valued much higher</strong> than any automated notification.</p> <h2 id="3-design-for-levels-of-severity" tabindex="-1">3. Design For Levels Of Severity <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/notifications/#3-design-for-levels-of-severity">#</a></h2> <p>As Sara Vilas <a href="https://www.toptal.com/designers/ux/notification-design">suggests</a>, we can break down notification design across three levels of severity: <strong>high, medium, and low attention</strong>. And then, notification types need to be further defined by specific attributes on those three levels, whether they are alerts, warnings, confirmations, errors, success messages, or status indicators.</p> <figure class="c-article__image u-flow--xs"> <a href="https://web.archive.org/web/20240430014932/https://garden.zendesk.com/content/voice-and-tone/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/notifications/4-notifications.png" alt="A variety of triggers (or) origins of information, from a Critical Analysis of Notification Systems." width="1500" height="1533" loading="lazy"> </a> <figcaption><p>A variety of triggers (or) origins of information, from a <a href="https://web.archive.org/web/20240430014932/https://garden.zendesk.com/content/voice-and-tone/">Zendesk Mapping Tone</a> by Shankar Balasubramanian (Gmail team).</p> </figcaption> </figure> <p><strong>High Attention</strong></p> <ul> <li>Alerts (immediate attention required)</li> <li>Errors (immediate action required)</li> <li>Exceptions (system anomalies, something didn’t work)</li> <li>Confirmations (potentially destructive actions that need user confirmation to proceed)</li> </ul> <p><strong>Medium Attention</strong></p> <ul> <li>Warnings (no immediate action required)</li> <li>Acknowledgments (feedback on user actions)</li> <li>Success messages</li> </ul> <p><strong>Low Attention</strong></p> <ul> <li>Informational messages (aka passive notifications, something is ready to view)</li> <li>Badges (typically on icons, signifying something new since last interaction)</li> <li>Status indicators (system feedback)</li> </ul> <p>Taking it one step further, we can <strong>map the attention</strong> against the type of messaging we are providing — very similar to <a href="https://web.archive.org/web/20240430014932/https://garden.zendesk.com/content/voice-and-tone/">Zendesk's mapping tone</a> above, which plots impact against the type of messaging, and shows how the tone should adjust — becoming more humble, real, distilled or charming.</p> <p>So: <strong>notifications can be different</strong>, and different notifications are perceived differently; however, the more personal, relevant, and timely notifications are, the higher engagement we should expect.</p> <h2 id="4-start-sending-notifications-slowly-but-steadily" tabindex="-1">4. Start Sending Notifications Slowly But Steadily <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/notifications/#4-start-sending-notifications-slowly-but-steadily">#</a></h2> <p>It’s not uncommon to sign up, only to realize a few moments later that the inbox is filling up with all kinds of irrelevant messages. That’s exactly the wrong thing to do. A <a href="https://medium.com/@AnalyticsAtMeta/notifications-why-less-is-more-how-facebook-has-been-increasing-both-user-satisfaction-and-app-9463f7325e7d">study by Facebook</a> showed that sending fewer notifications <strong>improved user satisfaction</strong> and long-term usage of a product.</p> <p>Initially, once the notification rate was reduced, there was indeed a loss of traffic, but it has “gradually recovered over time”, and after an extended period, it had fully recovered and even <strong>turned out to be a gain</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/notifications/Fewer%20but%20better%20notifications%20are%20often%20better%20for%20engagement%20and%20retention.%20[Case%20study%20by%20Facebook](https://medium.com/@AnalyticsAtMeta/notifications-why-less-is-more-how-facebook-has-been-increasing-both-user-satisfaction-and-app-9463f7325e7d)."> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/notifications/5-notifications.jpg" alt="https://medium.com/@AnalyticsAtMeta/notifications-why-less-is-more-how-facebook-has-been-increasing-both-user-satisfaction-and-app-9463f7325e7d" width="1500" height="625" loading="lazy"> </a> </figure> <p>A good starting point is to set up a <strong>slow default notification frequency</strong> for different types of customers. As the customer keeps using the interface, we could ask them to decide on the kind of notifications they’d prefer and their frequency.</p> <p><strong>Send notifications slowly</strong>, and over time slowly increase and/or decrease the number of notifications per type of a customer. This might work much better for our retention rates.</p> <h2 id="5-dont-rely-on-generic-defaults-set-up-notification-modes" tabindex="-1">5. Don’t Rely On Generic Defaults: Set Up Notification Modes <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/notifications/#5-dont-rely-on-generic-defaults-set-up-notification-modes">#</a></h2> <p>Typically users can opt in and opt out from every single type of notification in their settings. In general, it’s a good idea, but it can also be very overwhelming — and not necessarily clear as of how important each notification is. Alternatively, we could provide <strong>predefined recommended options,</strong> perhaps with a “calm mode” (low frequency), a “regular mode” (medium frequency), and a “power-user mode” (high frequency).</p> <figure class="c-article__image u-flow--xs"> <a href="https://whimsical.com/how-slack-decides-to-send-a-notification-P53PjXCBWEi2fdMjP2Hti"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/notifications/6-notifications.jpg" alt="How Slack decides to send a notification. Incredible documentation on Slack about a critical feature that we surely want to get just right. Stellar work. The flowchart in high resolution." width="1500" height="1682" loading="lazy"> </a> <figcaption><p><a href="https://whimsical.com/how-slack-decides-to-send-a-notification-P53PjXCBWEi2fdMjP2Hti">How Slack decides to send a notification</a>, incredible documentation on when to trigger a notification on Slack.</p> </figcaption> </figure> <p>As time passes, the format of notifications might need adjustments as well. Rather than having notifications sent one by one as events occur, users could choose a <strong>“summary mode,”</strong> with all notifications grouped into a single standalone message delivered at a particular time each day or every week.</p> <p>That’s <a href="https://slackhq.com/how-to-customize-notifications-in-slack">one of the settings that Slack provides</a> when it comes to notifications; in fact, the system adapts the frequency of notifications over time, too. Initially, as Slack channels can be quite silent, the system sends notifications for every posted message.</p> <p>As activities become more frequent, Slack <strong>recommends reducing the notification level</strong> so the user will be notified only when they are actually mentioned.</p> <h2 id="6-make-notification-settings-a-part-of-onboarding" tabindex="-1">6. Make Notification Settings A Part Of Onboarding <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/notifications/#6-make-notification-settings-a-part-of-onboarding">#</a></h2> <p>We could also include frequency options in our onboarding design. A while back Basecamp, for example, has introduced <strong>“Always On”</strong> and <strong>“Work Can Wait” options</strong> as a part of their onboarding, so new customers can select if they wish to receive notifications as they occur (at any time), or choose specific time ranges and days when notifications can be sent.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/b944c80f-3bff-b6cc-f177-73f9fce36311.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/notifications/7-notifications.jpg" alt="On Basecamp, new customers can select if they wish to receive notifications as they occur, or choose specific time ranges and days when notifications can be sent." width="1500" height="1106" loading="lazy"> </a> <figcaption><p>On Basecamp, new customers can select if they wish to receive notifications as they occur, or choose specific time ranges and days when notifications can be sent.</p> </figcaption> </figure> <p>Or, the other way around, we could ask users <strong>when they don’t want to be disturbed</strong>, and suspend notifications at that time. Not every customer wants to receive work-related notifications outside of business hours or on the weekend, even if their colleagues might be working extra hours on Friday night on the other side of the planet.</p> <h2 id="7-allow-users-to-snooze-or-pause-notifications" tabindex="-1">7. Allow Users To Snooze Or Pause Notifications <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/notifications/#7-allow-users-to-snooze-or-pause-notifications">#</a></h2> <p><strong>User’s context changes continuously</strong>. If you notice an unusual drop in engagement rate, or if you’re anticipating an unusually high volume of notifications coming up (a birthday, wedding anniversary, or election night, perhaps), consider providing an option to <strong>mute, snooze, or pause notifications</strong>, perhaps for the next 24 hours.</p> <p>This might go very much against our intuition, as we might want to re-engage the customer if they’ve gone silent all of a sudden, or we might want to maximize their engagement when important events are happening. However, it’s easy to reach a point when a seemingly harmless notification <strong>will steer a customer away</strong>, long term.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.muz.li/designing-notifications-for-applications-3cad56fecf96"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/notifications/8-notifications.jpg" alt="In the article “Designing Notifications For Apps”, Shashank Sahay explores different notification models and when to use which, e.g. notification center, with a few guidelines and recommendations along the way." width="1500" height="1452" loading="lazy"> </a> <figcaption><p>In <a href="https://medium.muz.li/designing-notifications-for-applications-3cad56fecf96">“Designing Notifications For Apps”</a>, Shashank Sahay explores different notification models and when to use which.</p> </figcaption> </figure> <p>Another option would be to suggest a <strong>change of medium used to consume notifications</strong>. Users tend to associate different levels of urgency with different channels of communication.</p> <p>In-app notifications, push notifications, and text messages are considered to be <strong>much more intrusive</strong> than good ol’ email, so when frequency exceeds a certain threshold, you might want to nudge users towards a switch from push notifications to daily email summaries.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/notifications/#wrapping-up">#</a></h2> <p>As always in design, timing matters, and so do <strong>timely notifications</strong>. Start slowly, and evolve your notification frequency depending on how exactly a user actually uses the product. For every type of user, set up notification profiles — frequent users, infrequent users, one-week-experience users, one-month-experience users etc.</p> <p>And: whenever possible, allow your users to <strong>snooze and mute notifications</strong> for a while, and eventually you might even want to suggest a change of medium used to consume notifications. And when in doubt, postpone, rather than sending through.</p> Tue, 08 Jul 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/notifications/ Designing Better UX For Left-Handed People https://smart-interface-design-patterns.com/articles/left-handed/ <p>In times when we are figuring out how to <a href="https://smashingconf.com/online-workshops/workshops/ai-interfaces-vitaly-friedman/">design AI interfaces</a>, it’s important to stay focused on <strong>what truly matters</strong> — people. After all, no technology is useful without real value for real people — and <a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-activity-7279812367293579264-XuCx?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAACDcgQBa_vsk5breYKwZAgyIhsHtJaFbL8">inclusive design</a> is the foundation of it.</p> <p>In the world today, roughly 10% of people are <strong>left-handed</strong>. Yet most products — digital and physical — aren’t designed with it in mind. Let’s change that, and explore what it means for us.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/eb9604fd-b3e4-40f9-80a9-244e6d38f00d.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/left-handed/1-left-handed.jpg" alt="Designing Better UX For Left-Handed Users" width="1500" height="1844" loading="lazy"> </a> <figcaption><p>The best option to support interaction for both hands is by placing key actions at the bottom center of the screen. <a href="https://www.linkedin.com/posts/vitalyfriedman_designing-better-ux-for-left-handed-users-activity-7330488018673225728-_Ox1">An illustration</a>, based on Steven Hoober's research.</p> </figcaption> </figure> <h2 id="left-handedness-left-only" tabindex="-1">Left-Handedness ≠ “Left-Only” <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/left-handed/#left-handedness-left-only">#</a></h2> <p>It’s easy to assume that left-handed people are usually left-handed users. However, that’s not necessarily the case. Because most products are <strong>designed with right-handed use</strong> in mind, many left-handed people have to use their right hand to navigate physical word.</p> <p>From very early childhood, left-handed people have to rely on their right hand to use tools and appliances like scissors, openers, fridges etc. That's why left-handed people tend to be <strong>ambidextrous</strong>, sometimes using different hands for different tasks, and sometimes using different hands for the same tasks interchangeably.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/why-the-world-is-not-designed-for-left-handed-people-96bb5cf4c460"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/left-handed/2-left-handed.jpg" alt="The difficulty of using physical devices designed for right-handed use." width="1500" height="1125" loading="lazy"> </a> <figcaption><p><a href="https://uxdesign.cc/why-the-world-is-not-designed-for-left-handed-people-96bb5cf4c460">Challenges for left-handed people</a>: when a foldable desk for writing is located on the right. Better: pull it up to the center.</p> </figcaption> </figure> <p>In the same, right-handed people aren’t necessarily right-handed users. It’s common to be using a mobile device in <strong>both left and right hands</strong>, or both, perhaps with a preference for one. But when it comes to writing, a preference is stronger.</p> <h2 id="challenges-for-left-handed-users" tabindex="-1">Challenges For Left-Handed Users <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/left-handed/#challenges-for-left-handed-users">#</a></h2> <p>With digital products, most left-handed people tend to adapt to right-handed tools which they use daily. Unsurprisingly, many use their right hand to navigate the mouse. However, it’s often <strong>quite different on mobile</strong> where left hand often preferred.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/why-the-world-is-not-designed-for-left-handed-people-96bb5cf4c460"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/left-handed/3-left-handed.jpg" alt="The difficulty of using physical devices designed for right-handed use." width="1500" height="1125" loading="lazy"> </a> <figcaption><p><a href="https://uxdesign.cc/why-the-world-is-not-designed-for-left-handed-people-96bb5cf4c460">Challenges for left-handed people</a>: using “regular” scissors with the left hand can be difficult for left-handed users.</p> </figcaption> </figure> <p>✅ 13% of people in NL, US, UK, Canada are left-handed.<br> 🤔 Most products are designed exclusively for the right hand.<br> 🤔 Less demand for left-handed items → they cost more.<br> 🤔 Many left-handed users don’t keep their mouse on the left.<br> ✅ 1% people use both hands equally well (ambidextrous).</p> <p>🚫 Don’t make design decisions based on left/right-handedness.<br> ✅ Allow customizations based on user’s personal preferences.<br> ✅ Allow users to re-order columns (incl. the Actions column).<br> ✅ In forms, place action buttons next to last user’s interaction.<br> ✅ Keyboard accessibility helps everyone move faster (Esc).</p> <h2 id="usability-guidelines-to-support-both-hands" tabindex="-1">Usability Guidelines To Support Both Hands <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/left-handed/#usability-guidelines-to-support-both-hands">#</a></h2> <p>As Ruben Babu <a href="https://medium.com/@rubenbabu/inclusivity-guide-usability-design-for-left-handedness-101-2bc0265ae21e">writes</a>, we shouldn’t design a fire extinguisher that can’t be used by <strong>both hands</strong>. Think pull up and pull down, rather than swipe left or right. Minimize distance to travel with the mouse. And when in doubt, <strong>align to the center</strong>.</p> <p>🤔 Bottom left → better for lefties, bottom right → for righties.<br> 🚫 With magnifiers, users can’t spot right-aligned buttons.<br> ✅ On desktop, align buttons to the left/middle, not right.<br> 🤔 On mobile, most people switch both hands when tapping.<br> ✅ Key actions → put in middle half to two-thirds of the screen.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxplanet.org/discover-ux-flaws-with-the-opposite-handed-ux-test-e2543223d4a3?sk=v2%2Fa6e6c84e-e7ee-4115-8ff8-36a9a15b4cfb"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/left-handed/4-left-handed.jpg" alt="How To Build Trust" width="1500" height="1000" loading="lazy"> </a> <figcaption><p><a href="https://uxplanet.org/discover-ux-flaws-with-the-opposite-handed-ux-test-e2543223d4a3?sk=v2%2Fa6e6c84e-e7ee-4115-8ff8-36a9a15b4cfb">Opposite-Handed UX test</a> can be helpful to test how good the UI is — also known as “left-handed oil test” for physical products.</p> </figcaption> </figure> <p>A simple way to test the mobile UI is by trying to use the <strong>opposite-handed UX test</strong>. For key flows, we try to complete them with your <strong>non-dominant hand</strong> use the opposite hand to discover UX shortcomings.</p> <p>For physical products, you might try the <strong>oil test</strong>. It might be <a href="https://uxplanet.org/discover-ux-flaws-with-the-opposite-handed-ux-test-e2543223d4a3?sk=v2%2Fa6e6c84e-e7ee-4115-8ff8-36a9a15b4cfb">more effective than you might think</a>.</p> <h2 id="good-ux-works-for-both" tabindex="-1">Good UX Works For Both <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/left-handed/#good-ux-works-for-both">#</a></h2> <p>Our aim isn’t to degrade the UX of right-handed users by meeting the needs of left-handed users. The aim is to create an <strong>accessible experience for everyone</strong>. E.g. a better experience for left-handed people also helps right-handed people who have a temporary arm disability.</p> <p>And that's an often-repeated but also oftern overlooked <strong>universal principle of usability</strong>: better accessibility is better for everyone, even if it might feel that it doesn’t benefit you directly in the moment.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/left-handed/#useful-resources">#</a></h2> <ul> <li><a href="https://uxplanet.org/discover-ux-flaws-with-the-opposite-handed-ux-test-e2543223d4a3?sk=v2%2Fa6e6c84e-e7ee-4115-8ff8-36a9a15b4cfb">Discover Hidden UX Flaws With the Opposite-Handed UX Test</a>, by Jeff Huang</li> <li><a href="https://sparkbox.com/foundry/are_right_aligned_buttons_easier_for_right_handed_people_first_click_test_usibility_ux_research">Right-Aligned Buttons Aren’t More Efficient For Right-Handed People</a>, by Julia Y.</li> <li><a href="https://smart-interface-design-patterns.com/articles/accessible-tap-target-sizes/">Mobile Accessibility Target Sizes Cheatsheet</a>, by Vitaly Friedman</li> <li><a href="https://uxdesign.cc/why-the-world-is-not-designed-for-left-handed-people-96bb5cf4c460?sk=v2%2F9daed92e-a991-4acd-aeba-8d228ee444da">Why The World Is Not Designed For Left-Handed People</a>, by Elvis Hsiao</li> <li><a href="https://medium.com/@rubenbabu/inclusivity-guide-usability-design-for-left-handedness-101-2bc0265ae21e">Usability For Left Handedness 101</a>, by Ruben Babu</li> <li><a href="https://www.smashingmagazine.com/printed-books/touch-design-for-mobile-interfaces/">Book: Touch Design For Mobile Interfaces</a>, by Steven Hoober</li> </ul> Mon, 02 Jun 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/left-handed/ No, AI Will Not Replace You https://smart-interface-design-patterns.com/articles/ai-humans/ <p>You can find techniques for <strong>UX strategy</strong> in <a href="https://measure-ux.com/">Measure UX</a> 🧭 — with live UX training later this year. <a href="https://measure-ux.com/">Jump to table of contents</a>.</p> <p>We see many debates about <strong>designers being replaced by AI</strong>. About designers having to relearn their craft entirely to work with AI. And of course if you don’t learn how to use AI, other people who do use it well, will replace you.</p> <p>But personally, <strong>I don't think either of it is true</strong>. And here are a few reasons why.</p> <h2 id="ai-is-unreliable-software" tabindex="-1">AI Is Unreliable Software <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ai-humans/#ai-is-unreliable-software">#</a></h2> <p>First of all, don’t get me wrong: I’m not against the spirit of AI. If it can <strong>reduce waste</strong> and minimize unnecessary time on screen for humans (while being sustainable), I'm all for it.</p> <figure class="c-article__image u-flow--xs"> <a href="https://catalogue.projectsbyif.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ai-humans/ai-humans-1.jpg" alt="How To Build Trust" width="1500" height="1855" loading="lazy"> </a> <figcaption><p>With AI, trust erodes rather quickly. <a href="https://catalogue.projectsbyif.com/">Designing For Trust Catalogue</a> features helpful design patterns for products to build up trust.</p> </figcaption> </figure> <p>However, at the point in time, most AI tools hallucinate approximately 10–20% of the time. Now sure people make mistakes, too. But we shouldn't forget that AI tools are software. And people expect software to be <strong>reliable and predictable</strong>.</p> <p>But AI isn't. Now, there is still value in AI, of course. And perhaps it's not a problem if you need a summary of a report. But it's a problem if you give financial advice in a banking application. It <strong>needs humans to verify</strong> the quality in these scenarios.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.reforge.com/blog/product-market-fit-collapse"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ai-humans/ai-humans-2.jpg" alt="Product Market Fit Collapse" width="1500" height="844" loading="lazy"> </a> <figcaption><p>AI can cause the Product-Market-Fit threshold to “inflect”, causing <a href="https://www.reforge.com/blog/product-market-fit-collapse">product market fit collapse</a>.</p> </figcaption> </figure> <p>Unsurprisingly, so many AI products out there experience <a href="https://www.reforge.com/blog/product-market-fit-collapse">product fit collapse</a>. And so every time I see people speaking about AI replacing humans, <strong>I shrug</strong>. I’m taking many discussions and bold statements about that with a big pinch of skepticism.</p> <h2 id="missing-human-component-of-ai" tabindex="-1">Missing Human Component of AI <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ai-humans/#missing-human-component-of-ai">#</a></h2> <p>Now, it’s not that AI can’t solve problems, although it does have some <a href="https://www.linkedin.com/posts/vitalyfriedman_ux-ai-activity-7287743771826401281-sGz0">severe limitations</a> in doing so. It’s that we always focus so intensely on the benefits of AI, often forgetting, overlooking or pushing aside the <strong>human experience</strong> with it.</p> <figure class="c-article__image u-flow--xs"> <a href="https://aidesignkit.github.io//"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ai-humans/ai-humans-3.jpg" alt="AI Design Kit to design AI interfaces" width="1500" height="755" loading="lazy"> </a> <figcaption><p>A helpful framework to design AI experiences: <a href="https://aidesignkit.github.io/">Task Expertise vs. AI Performance</a>. Features that require nearly-perfect AI performance to be useful are impossible to build.</p> </figcaption> </figure> <p>Experience created by humans, with attention to human’s needs and intentions, designed and built and tested with humans, embedding human values and working well for humans. If anything, <strong>we should be more obsessed with humans</strong>, not with AI.</p> <p>If anything, <strong>AI amplifies the need for 4 things</strong>:</p> <ul> <li><strong>Authenticity</strong><br> A shift from generic and fast high-fidelity prototypes to actual products with embedded values, beliefs, opinions.</li> <li><strong>Curation</strong><br> Content, features, priorities, reviewed and approved by humans.</li> <li><strong>Critical thinking</strong><br> Ability to raise uncomfortable questions and raise red flags.</li> <li><strong>Strategy</strong><br> Briding the gap between the current state and future state, considering user needs and business needs.</li> </ul> <p>Surely, AI can spin up rough prototypes quickly, but getting it to an <strong>actual working product</strong> requires work. Somebody must orchestrate the process and finesse the experience. And it requires thorough strategic work.</p> <p>And that's a big change upon us.</p> <h2 id="were-moving-from-tactics-to-strategy" tabindex="-1">We're Moving From Tactics to Strategy <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ai-humans/#were-moving-from-tactics-to-strategy">#</a></h2> <p>Yes, <strong>designer’s tasks will surely change</strong>. We probably won't be pushing pixels around and hunt annoying bugs for hours, but perhaps that's a good thing. Instead, we'll be <strong>more strategic</strong> — shaping the vision of the project, planning for success, and curating experiments to run.</p> <p>Still, with many AI experiences, we will need to rely on <strong>people in the loop</strong> — orchestrating the design, the development, the product management, and everything in-between — instead of moving pixels or fixing annoying bugs. And perhaps that's a good thing.</p> <p>No technology can create clarity, structure, trust and care out of <strong>poor content</strong>, poor metadata, and poor value for end users. Personally, I don’t think that any AI can <strong>out-care, out-love or out-trust</strong> that level of attention that humans bring to the table.</p> <p>If we design with humans in mind, consider human's needs and wants and struggles, we can help users and businesses bridge that gap in a way AI never could.</p> Wed, 28 May 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/ai-humans/ Sad Truths On What It’s Like To Be A Designer https://smart-interface-design-patterns.com/articles/sad-truths/ <p>Earlier today I stumbled again upon a wonderful short piece on <a href="https://uxdesign.cc/shhh-dont-tell-the-new-designers-590b4f891a95?sk=v2%2F670caccd-c79b-4409-9bfd-40f2f3d8b49b">Sad Truths On What It’s Like To Be A Designer</a> by Michael McWatter. It’s an honest and on-point overview of some little <strong>sad truths</strong> that many of us experience in our careers. As it has turned out, being a designer <strong>isn’t particularly easy</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/shhh-dont-tell-the-new-designers-590b4f891a95?sk=v2%2F670caccd-c79b-4409-9bfd-40f2f3d8b49b"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/sad-truths/sad-truths-1.jpg" alt="Sad Truths On What It's Like To Be A Designer" width="1500" height="1454" loading="lazy"> </a> <figcaption><p><a href="https://uxdesign.cc/shhh-dont-tell-the-new-designers-590b4f891a95?sk=v2%2F670caccd-c79b-4409-9bfd-40f2f3d8b49b">Sad Truths On What It’s Like To Be A Designer</a>, a concise and funny summary by Michael McWatters.</p> </figcaption> </figure> <ol> <li>The delta between what you designed and what gets shipped can be measured in <strong>light years</strong>.</li> <li>You will <strong>redo your late-night work</strong> from scratch first thing the next morning.</li> <li>Many senior designers are survivors of internal politics, rather than evolvers.</li> <li>Your stakeholders will probably <strong>choose the option you like the least</strong>: so be careful what you show.</li> <li>If you run OS upgrade on a workday, you’ll be asked for <strong>urgent changes immediately</strong>.</li> <li>Perfect is the enemy of good, but it won’t stop you from trying.</li> <li>You will never convince anyone to use a proper em-dash.</li> <li><strong>Naming things</strong> will be the most nerve-wrecking part of your job.</li> <li>Brainstorming is about gathering ideas, then ignoring most of them.</li> <li>All the research in the world is <strong>no match for your stakeholder’s opinion</strong>.</li> <li>Agency designers had their souls crushed, but they never miss a deadline.</li> <li>No one will ever review your UX copy until it’s live and wrong.</li> <li>You haven’t shipped your work until stakeholders decide that you did.</li> <li><strong>Files stored under “Experiments”</strong> will usually hold your best work.</li> <li>You’ll spend hours solving problems that shouldn’t even exist.</li> </ol> <p>Many items above <strong>feel so relatable</strong>, and hit home for me — in fact, most of them happened multiple times, or hold true this very day. Yet still, despite all these sad moments, being a designer isn’t sad — it’s exhilarating! It’s full of moments of joy and craftsmanship and playing and tweaking the pieces of a puzzle.</p> <h2 id="design-is-about-care-and-love" tabindex="-1">Design Is About Care and Love <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sad-truths/#design-is-about-care-and-love">#</a></h2> <p>Over the weekend I also stumbled upon a <a href="https://www.linkedin.com/posts/bbaxley_trying-something-new-here-trusting-the-process-ugcPost-7329292111483154433-4j9B">wonderful post by Bob Baxley</a>, in which Bob hinted at an <a href="https://www.youtube.com/watch?v=wLb9g_8r-mE">interview with Jony Ive</a>, and argued about the challenges of reducing the value of design to a number. Because truly good design is more than that: it’s about <strong>care and love</strong>.</p> <p>If you have around 50 mins this weekend, I <strong>highly recommend</strong> you to <a href="https://www.youtube.com/watch?v=wLb9g_8r-mE">watch the interview</a> — it had a profound effect on me, reminding me again about why I’m in this industry in the first place.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.youtube.com/watch?v=wLb9g_8r-mE"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/sad-truths/sad-truths-2.jpg" alt="Sad Truths On What It's Like To Be A Designer" width="1500" height="859" loading="lazy"> </a> <figcaption><p><a href="https://www.youtube.com/watch?v=wLb9g_8r-mE">Interview with Jony Ive</a>, about the value and the impact of design.</p> </figcaption> </figure> <p>Ironically, I have launched a <a href="https://measure-ux.com/">whole course about reducing design to metrics</a>, and so I replied to Bob in the comments:</p> <p><em>Vitaly: “For the last few years, I've been trying to advocate for just what you are mentioning — <strong>speaking the language of the business</strong>, measuring the impact of UX, and making strong arguments on business value of accessibility and research efforts.</em></p> <p><em>Now, looking back, I realize that this is probably the only way that I've discovered over the years to effectively articulate the significance of good design. There has been <strong>very little understanding</strong> of the value of emotional impact of design beyond loyalty, retention and NPS scores.</em></p> <p><em>And so I used <strong><a href="https://measure-ux.com/">UX metrics</a></strong> to open the door for broader initiatives, to get buy-ins and budgets and commitments to UX. Without it, all design efforts appear to be <strong>uncomfortably mysterious</strong> and barely noticeable, and hence — unfortunately — often not worth an investment.</em></p> <p><em>Once I open the door, I try to do the best work I can to not just solve a functional imperative (as Jony eloquently puts it), but to bring along <strong>trust, joy, optimism, hope, pleasure</strong> — and to make people feel valued, understood, noticed, thought of.</em></p> <p><em>It's just, unfortunately, that magical part usually comes later, rather than sooner. But to me, that’s the essence of truly great design.”</em></p> <p>Bob then answered with something that I found very difficult to disagree with:</p> <p><em>Bob: “If you bring a <strong>spreadsheet to a design review</strong> you’ve already lost. If you try to argue the value of design on the basis of business, you’ve already ceded the battlefield. And if you give up on the deep, emotional, human reason you got into Design in the first place, you’re going to end up in a place you don’t recognize.”</em></p> <p>In my gut, I wholeheartedly agree with Bob.</p> <p>Yet in some other way, I felt defeated for years. I felt stuck, blocked, dismissed, rejected in many projects as my aspirations for <strong>accessibility</strong> and good UX work weren’t heard or understood. <strong>I simply couldn’t get anywhere</strong>, often dismissed even before the very first meeting.</p> <p>Surely it has been changing over the years, but speaking to the emotional impact of design proved to be <strong>remarkably difficult</strong>. And the explanation I could bring would be around <strong>loyalty and customer satisfaction</strong>, which then worked much better.</p> <h2 id="ux-can-be-measured-but-its-more-than-metrics" tabindex="-1">UX Can Be Measured, But It’s More Than Metrics <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sad-truths/#ux-can-be-measured-but-its-more-than-metrics">#</a></h2> <p>I still believe that we should be able to measure UX to understand how well we are performing, and to show the incredible impact we are producing on business. But it’s never the full story.</p> <p><strong>No business can be successful without successful customers</strong>. And my job is to do both. And despite every political powerplay, arguing about UX metrics, impossible requests, or vague design briefs, there’s always an opportunity to <strong>shape something meaningful</strong>. Something that might actually change somebody’s life for the better.</p> <p>Frankly, if that’s not a superpower, I don’t know what is.</p> <p>And that’s exactly what keeps me going every day.</p> <p>Happy designing, everyone! 🎉🥳</p> Mon, 19 May 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/sad-truths/ Data vs. Findings vs. Insights in UX https://smart-interface-design-patterns.com/articles/data-findings-insights/ <p>In many companies, <strong>data, findings and insights</strong> are all used interchangibly. Slack conversations circle around convincing data points, statistically significant findings, reliable insights and emerging trends. Unsurprisingly, often conversations <strong>mistake sporadic observations</strong> for consistent patterns.</p> <p>But how impactful is the weight that each of them carries? And how do we <strong>turn raw data into meaningful insights</strong> to make better decisions? Well, let's find out.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.nngroup.com/videos/data-findings-insights/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/data-findings-insights/data-findings-insights-1.jpg" alt="Data vs. Findings vs. Insights" width="1500" height="1379" loading="lazy"> </a> <figcaption><p>Data ≠ Findings ≠ Insights. <a href="https://www.nngroup.com/videos/data-findings-insights/">Short video by NN/g</a> explains the differences between them.</p> </figcaption> </figure> <h2 id="why-it-all-matters" tabindex="-1">Why It All Matters <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/data-findings-insights/#why-it-all-matters">#</a></h2> <p>At first, it might feel like the differences are very nuanced and merely technical. But when we <strong>review inputs and communicate outcomes of our UX work</strong>, we need to be careful not to conflate terminology — to avoid wrong assumptions, wrong conclusions and early dismissals.</p> <figure class="c-article__image u-flow--xs"> <a href="https://swipefile.com/from-data-to-impact"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/data-findings-insights/data-findings-insights-2.jpg" alt="Gapingvoid illustration" width="1500" height="1500" loading="lazy"> </a> <figcaption><p>Raw data points is random and inconclusive. For it to be valuable, it must be turned into insights. Cartoon by <a href="https://swipefile.com/from-data-to-impact">Hugh MacLeod</a>.</p> </figcaption> </figure> <p>When <strong>strong recommendations and bold statements</strong> emerge in a big meeting, inevitably there will be people questioning decision making process. More often than not, they will be the loudest voices in the room, often with their own agenda and priorities that they are trying to protect.</p> <p>As UX designers, we need to be prepared for it. The last thing we want is to have a <strong>weak line of thinking</strong>, easily dismantled under the premise of “weak research”, “unreliable findings”, “poor choice of users” — and hence dismissed straight away.</p> <h2 id="data-findings-insights" tabindex="-1">Data ≠ Findings ≠ Insights <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/data-findings-insights/#data-findings-insights">#</a></h2> <p>People with different roles — analysts, data scientists, researchers, strategists — often rely on fine distinctions to make their decisions. The general difference is easy to put together:</p> <ul> <li><strong>Data</strong> is raw observations (logs, notes, survey answers) (<em>what was recorded</em>).</li> <li><strong>Findings</strong> describe emerging patterns in data, but aren’t actionable (<em>what happened</em>).</li> <li><strong>Insights</strong> are business opportunities (<em>what happened + why + so what</em>).</li> <li><strong>Hindsights</strong> are reflections of past actions and outcomes (<em>what we learned in previous work</em>)</li> <li><strong>Foresights</strong> are informed projections, insights with extrapolation (<em>what could happen next</em>)</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://dataforest.ai/blog/what-impact-do-data-insights-have-on-business-development"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/data-findings-insights/data-findings-insights-3.jpg" alt="Data analytics value chart" width="1500" height="1458" loading="lazy"> </a> <figcaption><p>Business value emerges from turning hindsights into insights, then then insights into foresights. From: <a href="https://dataforest.ai/blog/what-impact-do-data-insights-have-on-business-development">The Hidden Truth of Business</a>.</p> </figcaption> </figure> <p>Here’s what it then looks like in real-life:</p> <ul> <li><strong>Data ↓</strong><br> 6 users were looking for ”Money transfer” in “Payments”, and <strong>4 users discovered</strong> the feature in their personal dashboard.</li> <li><strong>Finding ↓</strong><br> 60% of users <strong>struggled to find</strong> the “Money transfer” feature on a dashboard, often confusing it with the “Payments” section.</li> <li><strong>Insight ↓</strong><br> Navigation doesn’t match users’ mental models for money transfer, causing confusion and delays. We recommend to <strong>rename sections or reorganize the dashboard</strong> to prioritize “Transfer Money”. It could make task completion more intuitive and efficient.</li> <li><strong>Hindsight ↓</strong><br> After renaming the section to “Transfer Money” and moving it to the main dashboard, <strong>task success increased by 12%</strong>. User confusion dropped in follow-up tests. It proved to be an effective solution.</li> <li><strong>Foresight ↓</strong><br> As our financial products become more complex, users will expect more simple <strong>task-oriented navigation</strong> (e.g., “Send Money”, “Pay Bills“) instead of categories like “Payments”. We should evolve the dashboard towards action-driven IA to meet user expectations.</li> </ul> <p><strong>Only insights create understanding</strong> and drive strategy. Foresights shape strategy, too, but are always shaped on bets and assumptions. So unsurprisingly, steakholders are interested in insights, not findings. They rarely need to dive into raw data points. But often they do want to make sure that <strong>findings are reliable</strong>.</p> <p>That’s when eventually the big question about <strong>statistical significance</strong> comes along. And that’s when ideas and recommendations often get dismissed without a chance to be explored or explained.</p> <h2 id="but-is-it-statistically-significant" tabindex="-1">“But Is It Statistically Significant?” <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/data-findings-insights/#but-is-it-statistically-significant">#</a></h2> <p>Now, for UX designers, that’s an incredibly difficult question to answer. As Nikki Anderson <a href="https://www.linkedin.com/posts/nikkianderson-ux_is-this-statistically-significant-every-activity-7307757817434697729-qZk5/">pointed out</a>, statistical significance <strong>was never designed for qualitative research</strong>. And with UX work, we’re not trying to publish academic research or prove universal truths.</p> <p>What we <em>are</em> trying to do is reach <strong>theoretical saturation</strong>, the point where additional research doesn’t give us new insights. Research isn’t about proving something is true. It’s about preventing costly mistakes before they happen.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.linkedin.com/posts/nikkianderson-ux_stop-calling-it-an-insight-if-its-just-activity-7317547275021344770-hiZI/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/data-findings-insights/data-findings-insights-4.jpg" alt="Data analytics value chart" width="1500" height="1325" loading="lazy"> </a> <figcaption><p><a href="https://www.linkedin.com/posts/nikkianderson-ux_stop-calling-it-an-insight-if-its-just-activity-7317547275021344770-hiZI/">Consequence cheat sheet</a> for turning findings into insights. By Nikki Anderson.</p> </figcaption> </figure> <p>Here are some <strong>useful talking points</strong> to handle the question:</p> <ul> <li><strong>5 users per segment</strong> often <strong>surface major issues</strong>, and 10-15 users per segment usually reach saturation. If we’re still getting new insights after that, our scope is too broad.</li> <li>“If 5 people hit the same pothole and wreck their car, how many more do you need before fixing the road?”</li> <li>“If 3 enterprise customers say onboarding is confusing, that’s a <strong>churn risk</strong>.”</li> <li>“If 2 usability tests expose a checkout issue, that’s <strong>abandoned revenue</strong>.”</li> <li>“If 1 customer interview reveals a security concern, that’s a <strong>crisis waiting to happen</strong>.”</li> <li>“How many user complaints exactly do we need to take this seriously?”</li> <li>“How much revenue exactly are we willing to lose before fixing this issue?”</li> </ul> <p>And: it might not be necessary to focus on the number of participants, but instead, argue about <strong>users consistently struggling with a feature</strong>, mismatch of expectations and a clear pattern emerging around a particular pain point.</p> <h2 id="how-to-turn-findings-in-insights" tabindex="-1">How To Turn Findings In Insights <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/data-findings-insights/#how-to-turn-findings-in-insights">#</a></h2> <p>Once we notice patterns emerging, we need to turn them into actionable recommendations. Surprisingly, this isn’t always easy — we need to <strong>avoid easy guesses and assumptions</strong> as far as possible, as they will invite wrong conclusions.</p> <p>To do that, you can rely on a very simple but effective framework to turn findings in insights: <strong>What Happened + Why + So What</strong>:</p> <ul> <li><strong>“What happened”</strong> covers observed behavior and patterns.</li> <li><strong>“Why”</strong> includes beliefs, expectations, or triggers.</li> <li><strong>“So What”</strong> addresses impact, risk, business opportunity.</li> </ul> <p>To better assess the “so what” part, we should pay close attention to the impact of what we have noticed on desired business outcomes. It can be anything from high-impact blockers and confusion to <strong>hesitation and inaction</strong>.</p> <p>I can wholeheartedly recommend to explore <strong>Findings → Insights Cheatsheet</strong> in <a href="https://www.linkedin.com/posts/nikkianderson-ux_stop-calling-it-an-insight-if-its-just-activity-7317547275021344770-hiZI/">Nikki Anderson’s wonderful slide deck</a>, which has examples and prompts to use to turn findings into insights.</p> <h2 id="stop-sharing-findings-deliver-insights" tabindex="-1">Stop Sharing Findings; Deliver Insights <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/data-findings-insights/#stop-sharing-findings-deliver-insights">#</a></h2> <p>When presenting the outcomes of your UX work, focus on <strong>actionable recommendations and business opportunities</strong>, rather than patterns that emerged during testing.</p> <p>To me, it’s all about telling a <strong>good damn story</strong>. Memorable, impactful, feasible, convincing. Paint the picture of what the future could look like, and the difference it would produce. That’s where the biggest impact from UX work emerges.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/data-findings-insights/#useful-resources">#</a></h2> <ul> <li><a href="https://www.linkedin.com/posts/nikkianderson-ux_is-this-statistically-significant-every-activity-7307757817434697729-qZk5/">How To Deal With “Is This Statistically Significant?”</a>, by Nikki Anderson</li> <li><a href="https://www.nngroup.com/articles/data-findings-insights-differences/">Data vs. Findings vs. Insights: Differences Explained</a> (+ <a href="https://www.nngroup.com/videos/data-findings-insights/">video</a>), by Sara Paul, NN/g</li> <li><a href="https://rbefored.com/research-findings-vs-insights-vs-actionable-suggestions-d59f5b1cefd2?gi=8c0d19dc84df">Research Findings vs Insights vs Actionable Suggestions</a>, by Debbie Levitt</li> </ul> Wed, 14 May 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/data-findings-insights/ Design System in 90 Days https://smart-interface-design-patterns.com/articles/design-system-90-days/ <p>So we want to set up a new <strong>design system for our product</strong>. How do we get it up and running from scratch? Do we start with key stakeholders, UI audits, or naming conventions? And what are some of the <strong>critical conversations</strong> we need to have early to avoid problems down the line?</p> <p>Fortunately, there are a few <strong>useful little helpers</strong> to get started — and they are the ones I tend to rely quite a bit when initiating any design system projects.</p> <h2 id="design-system-in-90-days-canvas" tabindex="-1">Design System In 90 Days Canvas <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-system-90-days/#design-system-in-90-days-canvas">#</a></h2> <figure class="c-article__image u-flow--xs"> <a href="https://www.figma.com/community/file/1275210165201477676/design-system-in-90-days-canvas"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-system-90-days/1-design-system-90-days.jpg" alt="Design System in 90 Days Canvas" width="1500" height="1878" loading="lazy"> </a> </figure> <p><a href="https://www.figma.com/community/file/1275210165201477676"><strong>Design System in 90 Days Canvas (FigJam template)</strong></a> is a handy set of <strong>useful questions</strong> to start a design system effort. Essentially it’s a roadmap to discuss everything from the value of a design system to stakeholders to teams involved to components to start with.</p> <p>A neat little helper to get a design system up and running — and adopted! — in 90 days. Created for small and large companies that are building a design system or plan to set up one. Kindly shared by Dan Mall.</p> <h2 id="practical-design-system-tactics" tabindex="-1">Practical Design System Tactics <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-system-90-days/#practical-design-system-tactics">#</a></h2> <figure class="c-article__image u-flow--xs"> <a href="https://redesigningdesign.systems/tactics/all-tactics"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-system-90-days/2-design-system-90-days.jpg" alt="An overview of practical design system tactics displayed as cards" width="1500" height="1849" loading="lazy"> </a> </figure> <p><a href="https://redesigningdesign.systems/tactics/all-tactics"><strong>Design System Tactics</strong></a> is a practical overview of tactics to help designers <strong>make progress with a design system at every stage</strong> — from crafting system principles to component discovery to design system office hours to cross-brand consolidation. Wonderful work by one-and-only Ness Grixti.</p> <h2 id="design-system-worksheet-pdf" tabindex="-1">Design System Worksheet (PDF) <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-system-90-days/#design-system-worksheet-pdf">#</a></h2> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/eightshapes-llc/picking-parts-products-people-a06721e81742"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-system-90-days/3-design-system-90-days.jpg" alt="Design System Parts Worksheet" width="1500" height="1896" loading="lazy"> </a> </figure> <p><a href="https://medium.com/eightshapes-llc/picking-parts-products-people-a06721e81742"><strong>Design System Checklist</strong></a> by Nathan Curtis (<a href="https://drive.google.com/file/d/1qXMUXKHaEXnLDOu99GCzTMY2XW6NnPe_/view">download the PDF</a>) is a <strong>practical 2-page-worksheet</strong> for a 60-mins team activity, designed to choose the right parts, products and people for your design system.</p> <p>Of course, the point of a design system is not to be fully comprehensive or cover every possible component you might ever need. It’s all about <strong>being useful enough</strong> to help designers produce quality work faster, and be flexible enough to help designers make decisions, rather than make decisions for them.</p> <h2 id="useful-questions-to-get-started-with" tabindex="-1">Useful Questions To Get Started With <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-system-90-days/#useful-questions-to-get-started-with">#</a></h2> <p>The value of a design system lies in it <strong>being useful and applicable</strong> — for a large group of people in the organization. And, according to Dan, a good start is to identify where exactly that value would be most helpful to tackle company’s critical challenges and goals:</p> <ol> <li>What is <strong>important to our organization</strong> at the highest level?</li> <li>Who is important to our design system effort?</li> <li>What unofficial systems already exist in design and code?</li> <li>Which teams have <strong>upcoming needs</strong> that a system could solve?</li> <li>Which teams have <strong>immediate needs</strong> that can grow our system?</li> <li>Which teams should we and have we talked to?</li> <li>Which <strong>stakeholders</strong> should we and have we talked to?</li> <li>What <strong>needs, desires, and concerns</strong> do our stakeholders have?</li> <li>What components do product or feature teams need now or soon?</li> <li>What <strong>end user problems/opportunities</strong> could a system address?</li> <li>What did we learn about using other design systems?</li> <li>What is our <strong>repeatable process</strong> for working on products?</li> <li>What components will we start with?</li> <li>What needs, desires, and concerns do our stakeholders share?</li> <li>Where are <strong>our components</strong> currently being used or planned for?</li> <li>What data do our customers need from a reference website?</li> <li>When will we be working on each component?</li> <li>How does our team <strong>make decisions</strong>?</li> <li>How do we name our system to make people smile when they hear it?</li> <li>What housekeeping items will we do in Systems Week?</li> </ol> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-system-90-days/#useful-resources">#</a></h2> <p>Here are a few other useful tools that might help you in your design system efforts:</p> <ul> <li><a href="https://www.linkedin.com/pulse/26-design-system-questions-answer-design-system-university/">Design System Questions To Answer In First 90 Days</a>, by Dan Mall</li> <li><a href="https://designsystemcanvas.com/">Design System Canvas (PDF / Figjam)</a>, by Paavan Buddhdev</li> <li><a href="https://www.figma.com/community/file/1360306476090347707/leands-framework">LeanDS Framework (Figma)</a>, by Marianne Ashton-Booth</li> <li><a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-figma-activity-7262738783358304257-uooc/">Useful UX Templates For Designers (Figma Kits)</a>, by yours truly Vitaly Friedman</li> <li><a href="https://thedesignsystem.guide/">Design System Guide</a>, by Romina Kavcic</li> </ul> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-system-90-days/#wrapping-up">#</a></h2> <p>A canvas often acts as a <strong>great conversation starter</strong>. It’s rarely complete, but it brings up topics and issues that one wouldn’t have discovered on spot. We won’t have answers to all questions right away, but we can start <strong>moving in the right direction</strong> to turn a design system effort into a success.</p> <p>Happy crossing off the right tickboxes! 🎉🥳</p> Wed, 30 Apr 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/design-system-90-days/ How To Launch Big Complex Projects https://smart-interface-design-patterns.com/articles/launch-big-complex-projects/ <p>Think about your past projects. Did they <strong>finish on time</strong>? Did they get delivered without cutting corners? Chances are high that they haven’t. Perhaps they got delayed, moved, cancelled, “refined” or postponed. As it turns out, in many teams, <strong>shipping on time is an exception</strong>, rather than the rule.</p> <p>Things almost never go according to the plan — and on complex projects, they don’t even come close. So how can we prevent it from happening? Well, let's find out.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.linkedin.com/feed/update/urn:li:activity:7320383766965719040/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/launch-big-complex-projects/1-mailing-90-launch-big-complex-projects.jpg" alt="How to launch big complex projects, a book cover" width="1500" height="1653" loading="lazy"> </a> </figure> <h2 id="995percent-of-big-projects-overrun-budgets-and-schedules" tabindex="-1">99.5% Of Big Projects Overrun Budgets And Schedules <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/launch-big-complex-projects/#995percent-of-big-projects-overrun-budgets-and-schedules">#</a></h2> <p>As people, we are inherently <strong>over-optimistic</strong> and over-confident. It’s hard to study and process everything that can go wrong, so we tend to focus on the bright side. However, <strong>unchecked optimism leads to unrealistic forecasts</strong>, poorly defined goals, better options ignored, problems not spotted, no contingencies to counteract the inevitable surprises.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.scotthyoung.com/blog/2019/07/17/normal-distribution/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/launch-big-complex-projects/2-mailing-90-launch-big-complex-projects.png" alt="Normal distribution vs. Fat-tail distribution" width="1500" height="1005" loading="lazy"> </a> <figcaption><p>The blue line follows a normal distribution, the red line follows “fat tails” — sometimes big outliers are quite common. <a href="https://www.scotthyoung.com/blog/2019/07/17/normal-distribution/">Image source</a>.</p> </figcaption> </figure> <p><a href="https://www.globalleadersinstitute.org/blog-post/hofstadters-law-as-a-strategic-tool-for-cultural-institutions/">Hofstadter’s Law</a> states that the time needed to complete a project will always expand to fill the available time — even if you take into account the Hofstadter’s Law. Put differently, it <em>always</em> takes longer than you expect, however precautious you might be.</p> <p>As a result, only 0.5% of big projects make the budget and the schedule — e.g. big relaunches, legacy re-dos, big initiatives. We might try to mitigate risk by adding 15–20% buffer — but it rarely helps. Many of these projects don’t follow “normal” (Bell curve) distribution, but are rather “fat-tailed”.</p> <p>And there, overruns of 60–500% are typical and turn big projects into <strong>big disasters</strong>.</p> <h2 id="reference-class-forecasting-rcf" tabindex="-1">Reference-Class Forecasting (RCF) <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/launch-big-complex-projects/#reference-class-forecasting-rcf">#</a></h2> <p>We often assume that if we just thoroughly <strong>collect all the costs</strong> needed and estimate complexity or efforts, we should get a decent estimate of where we will eventually land. Nothing could be further from the truth.</p> <p>Complex projects have <strong>plenty of unknown unknowns</strong>. No matter how many risks and dependencies and upstream challenges we identify, there are many more we can’t even imagine. The best way to be more accurate is to define a realistic <em>anchor</em> — for time, costs and benefits — from similar projects done in the past.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/ebd3631d-443f-a85a-bbd1-18c48a5b06e7.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/launch-big-complex-projects/3-mailing-90-launch-big-complex-projects.png" alt="Folder structure for UX assets" width="1500" height="1089" loading="lazy"> </a> <figcaption><p>IT projects are more likely to have a fat-tailed distribution, with extreme outliers.</p> </figcaption> </figure> <p>Reference-class forecasting follows a <strong>very simple process</strong>:</p> <ul> <li>First, we find the reference projects that have most similarities to our project,</li> <li>If the distribution follows the Bell curve, use the mean value + <strong>10–15% contingency</strong>.</li> <li>If the distribution is fat-tailed, invest in profound <strong>risk management</strong> to prevent big challenges down the line.</li> <li>Tweak the mean value only if you have very good reasons to do so.</li> <li><strong>Set up a database</strong> to track past projects in your company (for cost, time, benefits).</li> </ul> <h2 id="think-slow-act-fast" tabindex="-1">Think Slow + Act Fast <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/launch-big-complex-projects/#think-slow-act-fast">#</a></h2> <p>In spirit of looming deadlines, many projects rush into delivery mode before the scope of the project is well-defined. It might work for fast experiments and minor changes, but that’s a red flag for larger projects. The best strategy is to spend more time in <strong>planning</strong> before designing a single pixel on the screen.</p> <p>But planning isn’t an exercise in abstract imaginative work. Good planning should include experiments, tests, simulations, refinements. It must include the steps of <strong>how we reduce risks</strong> and how we mitigate risks when something unexpected (but frequent in other similar projects) happens.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/8f1d36df-8779-444e-d861-a23d42228886.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/launch-big-complex-projects/4-mailing-90-launch-big-complex-projects.jpg" alt="Folder structure for UX assets" width="1500" height="1929" loading="lazy"> </a> <figcaption><p>In IT, mean cost overrun is around 73%, and 18% have &gt;50% overruns (fat-tailed distribution). Mean overruns of these projects are 447% (!).</p> </figcaption> </figure> <h2 id="black-swan-management" tabindex="-1">Black Swan Management <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/launch-big-complex-projects/#black-swan-management">#</a></h2> <p>Every other project encounters what's called a <strong>Black Swan</strong> — a low probability, high-consequence event that is more likely to occur when projects stretch over longer periods of time. It could be anything from restructuring teams to change of priorities, which then lead to cancellations and re-scheduling.</p> <p>Little problems have an incredible capacity to <strong>compound to large, disastrous problems</strong> — ruining big projects and sinking big ambitions at a phenomenal scale. The more little problems we can design around early, the more chances we have to the project out of the door successfully.</p> <p>So we make projects smaller and shorter. We mitigate risks by involving stakeholders early. We provide <strong>less surface</strong> for Black Swans to emerge. One good way to get there is to always start every project with a simple question: “Why are we actually doing this project?” The answers often reveal not just motivations and ambitions, but also the challenges and dependences hidden between the lines of the brief.</p> <p>And as we plan, we could follow a <strong>“right to left thinking”</strong>. We don’t start with where we are, but rather where we want to be. And as we plan and design we move from the future state towards the current state, studying what’s missing or what’s blocking us from getting there. The trick is: we always keep our end goal in mind and our decisions and milestones are always shaped by that goal.</p> <h2 id="manage-deficit-of-experience" tabindex="-1">Manage Deficit of Experience <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/launch-big-complex-projects/#manage-deficit-of-experience">#</a></h2> <p>Complex projects start with a deep deficit of experience. To increase the chances of success, we need to minimize the chance of mistakes even happening. That means trying to make the process as <strong>repetitive as possible</strong> — with smaller “work modules”, repeated by teams over and over again.</p> <p>🚫 Beware of unchecked optimism → unrealistic forecasts.<br> 🚫 Beware of “cutting-edge” → untested technology spirals risk.<br> 🚫 Beware of unique” → high chance of exploding costs.<br> 🚫 Beware of “brand new” → rely on tested and reliable.<br> 🚫 Beware of “the biggest” → build small things, then compose.</p> <p>It also means relying on reliable: from well-tested tools to <strong>stable teams</strong> that have worked well together in the past. Complex projects <strong>aren’t a good place</strong> to innovate processes, mix-n-match teams and try out more affordable vendors.</p> <p>Typically, these are <strong>extreme costs in disguise</strong>, skyrocketing delivery delays and unexpected expenses.</p> <h2 id="good-design-is-good-risk-management" tabindex="-1">Good Design Is Good Risk Management <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/launch-big-complex-projects/#good-design-is-good-risk-management">#</a></h2> <p>When speaking about design and research to senior management, position it as a <strong>powerful risk management tool</strong>. Good design that involves concept testing, experimentation, user feedback, iterations and refinement of the plan is cheap and safe.</p> <p>Eventually it might need more time than expected, but it's much — <em>MUCH!</em> — cheaper than delivery. Delivery is <strong>extremely cost-intense</strong>, and if it relies on wrong assumptions and poor planning, then that's when the project becomes vulnerable and difficult to move or re-route.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/launch-big-complex-projects/#wrapping-up">#</a></h2> <p>The insights above come from a wonderful book on <a href="https://sites.prh.com/how-big-things-get-done-book">“How Big Things Get Done”</a> by Prof. Bent Flyvbjerg and Dan Gardner. It goes in all the fine details of how big project fails and when they succeed. It’s not a book about design, but a fantastic book for designers who want to <strong>plan and estimate better</strong>.</p> <p>Not every team will work on a large, complex project, but sometimes these projects <strong>become inevitable</strong> — when dealing with legacy, projects with high visibility, layers of politics or an entirely new domain where the company moves towards.</p> <p>Good projects that succeed have one thing in common: they dedicate a majority of time in <strong>planning and maneuvring risks</strong> and unknown unknowns. They avoid big-bang revelations, but instead test continuously and repeatedly.</p> <p>That's your <strong>best chance to succeed</strong> — work around these unknowns as you won't be able to prevent them from emerging entirely anyway.</p> <hr> Wed, 23 Apr 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/launch-big-complex-projects/ UX and Design Organization Templates https://smart-interface-design-patterns.com/articles/ux-design-activity/ <p>🔥 <a href="https://lnkd.in/eXqKpK5w">UX &amp; Design Files Organization Template</a> (Google Doc + .zip-file), with an overview of little helpers to neatly organize UX assets in sensible folders ↓</p> <hr> <p><a href="https://lnkd.in/eqF9nEYj">UX &amp; Design Files Organization Template</a>, by <a href="https://www.linkedin.com/in/courtneypester/">Courtney Pester</a></p> <p><a href="https://lnkd.in/emB3FS3v">Full folder structure template</a> (Google Doc)</p> <p><a href="https://lnkd.in/ep3SwUyt">Compressed .zip file folder structure</a></p> <hr> <p>Probably the most underrated problem in any type of file structure organization is duplications and versioning. Before we start the project, we need to be very clear about what types of files should end up in the shared drive, and which not. You might or might not need intermediate versions of some documents, but you definitely want to keep the final ones.</p> <p>These are typically the questions I would be raising:</p> <ul> <li>Do we need to restrict access to some sections of the folder (e.g. sensitive data)?</li> <li>What naming conventions do we use for files/folders (e.g. semantic versioning, V1, V2, --FINAL)</li> <li>How do we manage deprecated or outdated files? Do we archive or delete them?</li> <li>What would be the main communication channel for stakeholders/clients?</li> <li>Are there any legal requirements for storing and sharing some specific files?</li> <li>What will happen to the shared space once the project has finished?</li> </ul> <p>And: don’t feel compelled to replicate any file structure entirely. Use it as a foundation to be inspired by and build upon. Customize away for the specific needs of your projects and your team. What works for you works for you. There is really no perfect and universal way that works out of the box.</p> <p>How do you organize your files and assets? What folder structures and organization systems do you use? What works best for you?</p> <p>Happy organizing, everyone! 👏🏼👏🏽👏🏾</p> Fri, 18 Apr 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/ux-design-activity/ Your vs. My? UX Writing Guidelines https://smart-interface-design-patterns.com/articles/your-vs-my/ <p>When you design an interface, which pronouns do you usually use to address your users? Do you write <strong>“My account” or “Your account”</strong>? “My drafts” or “Your drafts” — or only “Drafts”? And does it actually matter?</p> <p>In this newsletter, we’ll shine some light on the different meanings that pronouns carry, so you can choose the one that best reflects the <strong>personality of your product</strong>.</p> <h2 id="shaping-personality-with-pronouns" tabindex="-1">Shaping Personality With Pronouns <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/your-vs-my/#shaping-personality-with-pronouns">#</a></h2> <p>Pronouns might seem like a fine little detail. But the pronouns we use in our interfaces shape a user’s relationship with the product, and it does matter. In general, users perceive products either as <strong>tools or assistants</strong>. Tools suggest a higher degree of ownership; assistants suggest that the UI speaks to the user.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/71f516a6-1aea-4261-10f0-e63ef4984d89.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/your-vs-my/your-vs-my-in-the-netflix-ui.png" alt="Your vs. My in the Netflix UI." width="1500" height="1643" loading="lazy"> </a> <figcaption><p>A good example of how the choice of pronouns creates meaning. Netflix uses “Your” for recommendations (assistant) and “My” for the watchlist that the user curates themselves (tool).</p> </figcaption> </figure> <p>If there is no ambiguity, you might not need a pronoun at all. However, if you want to emphasize a user’s <strong>ownership of content or actions</strong>, “My” works better (“My account”). And if you want to strike a more conversational tone, speak directly to the user (“Your places”).</p> <p><a href="https://medium.com/@jsaito/is-this-my-interface-or-yours-b09a7a795256">As John Saito wrote</a>, using <strong>“My”</strong> in an interface implies that the product is labelling things on behalf of the user. “My” feels personal, and it feels that you can fully <strong>customize and control</strong> it. Hence, it’s more suitable for privacy settings and personalization.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/96f8afbc-01cf-f5c5-aa19-21010c239039.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/your-vs-my/your-vs-my-in-different-uis.jpg" alt="Your vs. My in different UIs." width="1500" height="946" loading="lazy"> </a> <figcaption><p>Different UIs suggest different perspective on pronouns: Google Drive (“my”), YouTube (“Your”) and Dropbox (no pronoun).</p> </figcaption> </figure> <p>When we think about <strong>“Your”</strong> in an interface, it’s like a product is walking a user through the tasks they have to perform — paying bills, scheduling an appointment, filling in a long-winded form. Typically, if tasks are <strong>mechanical and less user-owned</strong>, “Your” works well. However, you will find many products using “Your” everywhere, by default (see below).</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/26d0a584-87d7-83e2-056d-8b50735664b7.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/your-vs-my/your-vs-my-in-different-uis-2.jpg" alt="Your vs. My in different UIs." width="1500" height="854" loading="lazy"> </a> <figcaption><p>Many products adapt “Your” by default, taking a role of an assistant. Examples: Amazon and Spotify.</p> </figcaption> </figure> <p>While there are occasions where we can remove pronouns entirely, sometimes, we do need them for <strong>clarity</strong> — e.g., “Stories” alone doesn’t make it obvious if it’s user’s stories, curated highlights, or related stories. In such a case, “Recommended Stories” or “Top Highlights” works better.</p> <p>Pronouns might not sound like a big deal, but they communicate volumes about your <strong>perspective</strong> and the <strong>personality</strong> of your product. So be deliberate in shaping and finetuning it. Because if you don’t, users will imagine your personality for you — and it might be not at all what you imagined it to be.</p> <h2 id="different-pronouns-different-nuances" tabindex="-1">Different Pronouns, Different Nuances <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/your-vs-my/#different-pronouns-different-nuances">#</a></h2> <p>The first question to ask before choosing a pronoun is what <strong>voice and tone</strong> your product and its features should communicate to users. Should it communicate ownership and control (“My”)? Or should it feel like an assistant speaking to a user (“Your”)? Or should it be concise and straight-to-the point (no pronouns)?</p> <h3 id="1st-person-my" tabindex="-1">1st Person: “My” <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/your-vs-my/#1st-person-my">#</a></h3> <ul> <li>Suggests a higher degree of <strong>ownership</strong>.</li> <li>Works best for <strong>user-created content</strong>, actions, preferences.</li> <li>E.g. personal inbox, dashboard, delivery orders, purchases (“My profile”, “My preferences”, “My saved items”, etc.).</li> <li>Effect: Users perceive the UI as an <em>extension of their identity</em>.</li> </ul> <h3 id="2nd-person-your" tabindex="-1">2nd Person: “Your” <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/your-vs-my/#2nd-person-your">#</a></h3> <ul> <li>Suggests the UI is <strong>speaking to the user</strong>.</li> <li>Works best for <strong>system-initiated content</strong> for a user.</li> <li>E.g., onboarding, instructions, buttons, error messages, help text, labels (“Your recommendations”, “Your local events”, “Your activity summary”, etc.).</li> <li>Effect: Users perceive the UI as a <em>separate entity speaking to them</em>.</li> </ul> <h3 id="no-pronoun" tabindex="-1">No Pronoun <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/your-vs-my/#no-pronoun">#</a></h3> <ul> <li>Neutral, keywords-based labels that <strong>communicate the purpose directly</strong>.</li> <li>Works when there is <strong>no ambiguity</strong>.</li> <li>E.g. “Settings”, “Profile”, “Drafts”.</li> </ul> <p><strong>Never mix different pronouns</strong>, because it will confuse the users. They need to understand if they have control and your product is just an extension of them or if you want to guide them and help them complete their tasks.</p> <h2 id="who-else-is-in-the-room" tabindex="-1">Who Else Is In The Room? <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/your-vs-my/#who-else-is-in-the-room">#</a></h2> <p>I've found one helpful trick to keep in mind when deciding which pronoun to choose in an <a href="https://web.archive.org/web/20201108104321/http://www.sitepoint.com/better-user-interfaces-copy/">article by Diana MacDonald</a>. Diana suggests that if you are unsure whether to use “My” or “Your,” ask yourself: “<strong>Who else is in the room?</strong>”</p> <p><strong>A</strong>: There’s no one in the room except the user.<br> ↳ Skip the pronoun altogether.</p> <p><strong>B</strong>: The product is talking to the user.<br> ↳ Use “Your” (e..g., “Your Presets”).</p> <p><strong>C</strong>: The user is talking to the product.<br> ↳ Use “My” (e.g., “Save My Draft”).</p> <p>When choosing a pronoun, be careful to <strong>never misrepresent the system’s decisions</strong> as the user’s decisions. And remember, if there is no ambiguity, you might not need a pronoun at all.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/your-vs-my/#useful-resources">#</a></h2> <ul> <li><a href="https://www.sitepoint.com/community/t/write-better-user-interfaces-by-asking-who-else-is-in-the-room/192406">Write Better User Interfaces by Asking “Who Else is in the Room?”</a>, by Diana MacDonald</li> <li><a href="https://medium.com/@jsaito/is-this-my-interface-or-yours-b09a7a795256">Is This My Interface Or Yours?</a>, by John Saito</li> <li><a href="https://www.linkedin.com/pulse/proper-possessive-pronouns-ux-world-vitaly-wyatt">Proper Possessive Pronouns in UX</a>, by Vitaly Santana</li> <li><a href="https://medium.com/@xupeilan05/i-or-you-exploring-the-use-of-person-in-content-design-e6502a376dd2">‘I’ or ‘You’? — Exploring The Use Of Person In Content Design</a>, by Pearl Xu</li> <li><a href="https://dcurt.is/yours-vs-mine">Yours vs. Mine</a>, by Dustin Curtis</li> </ul> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/your-vs-my/#wrapping-up">#</a></h2> <p>Every detail, as small or as obvious as it might seem, contributes to the <strong>story you tell with your product</strong>. And pronouns are one such mighty little detail that shapes a product’s personality and how users perceive it.</p> <p>We hope that the tips in this newsletter will help you back up that gut feeling you had when choosing pronouns with facts so that you can <strong>make more informed decisions</strong> and resolve never-ending discussions for your interfaces.</p> Mon, 07 Apr 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/your-vs-my/ UX Guidelines For Better URL Design https://smart-interface-design-patterns.com/articles/ux-guidelines-for-better-url-design/ <p>When it comes to URLs, there’s a <strong>common assumption</strong> that most people don’t pay attention to them. That people don’t even notice URLs, don’t remember them, and that they can always re-find what they are looking for anyway. But this couldn’t be further from the truth.</p> <p><strong>People do still read URLs</strong> in search engines every day, and although AI is changing user behavior, URLs continue to play an important role for the user experience. So, what makes an effective URL? Let’s take a closer look.</p> <h2 id="three-key-tasks-of-good-urls" tabindex="-1">Three Key Tasks Of Good URLs <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-guidelines-for-better-url-design/#three-key-tasks-of-good-urls">#</a></h2> <p>Good URLs support 3 key tasks: they explain to users <strong>where they will go</strong> or where they are, they support <strong>sharing</strong> in social networks, and they serve as <strong>strong signal</strong> for search engines. The best way to achieve all of this is by keeping URLs short and simple.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/6ba59d89-4d7f-9381-027c-7c5f916822fb.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ux-guidelines-for-better-url-design/anatomy-of-a-URL.png" alt="Anatomy of a URL" width="1500" height="923" loading="lazy"> </a> <figcaption><p>The anatomy of a URL. Originally put together by <a href="https://www.semrush.com/blog/what-is-a-url/">Semrush</a>.</p> </figcaption> </figure> <p>At this point, we don’t need to stuff URLs with keywords to perfectly match the title. They must be unique, but consider if <strong>one or two keywords</strong> would be enough to communicate their purpose.</p> <p>Remove what you can remove (e.g., <code>www</code>, <code>home.html</code>, etc.) and be consistent about trailing slashes to prevent URL duplication (i.e., choose between <code>/news/</code> and <code>/news</code>, and create 301 redirects from the one you don’t use).</p> <h2 id="checklist-for-a-well-designed-url" tabindex="-1">Checklist For A Well-Designed URL <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-guidelines-for-better-url-design/#checklist-for-a-well-designed-url">#</a></h2> <h3 id="make-it-short-and-readable" tabindex="-1">Make It Short And Readable <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-guidelines-for-better-url-design/#make-it-short-and-readable">#</a></h3> <p>A good URL is a <strong>mini description</strong> of a page. It needs to be both human- and machine-readable.</p> <ul> <li>Shorter is better, max. <strong>60–75 characters</strong>.</li> <li><strong>Lowercase only</strong>, not mixedCase and not UPPERCASE.</li> <li>Use <strong>hyphens</strong> (-) to separate words, not underscores (_).</li> <li>Use <strong>stems of verbs</strong> (e.g., <em>/make-thing</em> rather than <em>/making-thing</em>).</li> <li><strong>Stop words</strong> (“the”, “and”, “in”, “a”) are not needed but won’t hurt SEO.</li> </ul> <h3 id="make-it-logical" tabindex="-1">Make It Logical <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-guidelines-for-better-url-design/#make-it-logical">#</a></h3> <p>People send URLs via email, WhatsApp, or print them in PDFs, so a <strong>logical structure</strong> is key to ensuring they can easily make sense of a URL.</p> <ul> <li>Use logical <strong>hierarchies</strong> that tell a story (e.g., <em>/en/topics/ukraine</em>).</li> <li>Include <strong>dates</strong> for date-specific documents.</li> <li>Multilingual sites need <strong>language-specific subfolders</strong> (e.g., <em>/en/</em>, <em>/fr/</em>, etc.).</li> </ul> <h3 id="make-it-easy-to-type" tabindex="-1">Make It Easy To Type <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-guidelines-for-better-url-design/#make-it-easy-to-type">#</a></h3> <p>Typing <strong>simple words</strong> is easier than typing a string of random characters.</p> <ul> <li><strong>Avoid empty spaces</strong> as <code>/ text/</code> is turned into <code>/%20text/</code>.</li> <li><strong>Avoid special and reserved characters</strong> (e.g., #, ?, &amp;, =, +, %, /).</li> <li><strong>Avoid accent characters</strong> like ü, ö, ß, é (e.g., <code>ü</code> turns into <code>%C3%BC</code> in an URL).</li> <li><strong>Avoid repeating keywords</strong> and complex shorteners.</li> <li><strong>Set up short links</strong> for important pages (e.g., <em>europarl.eu/go/DMA2025</em>).</li> </ul> <h2 id="examples-of-good-url-design" tabindex="-1">Examples Of Good URL Design <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-guidelines-for-better-url-design/#examples-of-good-url-design">#</a></h2> <p>A great <strong>test for the brevity and clarity of URLs</strong> is if you can spell a chosen URL on a mobile phone or write it on a piece of paper. And sometimes, it might be a good idea to set up aliases that people can use — to make the URL more marketable and more memorable.</p> <p>Here are some examples of how we can <strong>tweak an existing URL</strong> to make it more user-friendly:</p> <ul> <li>https://www.un.com/plenary/en/home.html → <code>live.un.com/plenary</code></li> <li>/about-our-company/ → <code>company.com/about</code></li> <li>/frequently-asked-questions/ → <code>company.com/faq</code></li> <li>/locations/us/nebraska/lincoln/havelock → <code>locations/havelock</code></li> <li>/press-releases-announcements/ → <code>company.com/press</code></li> <li>/designing-digital-products/ → <code>/product-design/</code></li> <li>/delivering-new-features/ → <code>/deliver-features/</code></li> </ul> <h2 id="urls-in-times-of-ai" tabindex="-1">URLs In Times Of AI <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-guidelines-for-better-url-design/#urls-in-times-of-ai">#</a></h2> <p>With AI assistants like ChatGPT, Claude, Perplexity, and AI search (including Google’s) on the rise, there is a strong <strong>sentiment that URLs are irrelevant</strong> these days as people don’t navigate to pages any longer. However, the effect isn’t as noticeable as one might think.</p> <p>There is definitely a shift happening, but according to <a href="https://sparktoro.com/blog/new-research-how-often-do-americans-search-google-which-search-verticals-do-they-use/">Rand Fishkin’s research</a>, users perform 126 searches per month on Google (new record!), and <strong>Google has been growing steadily</strong> from year to year, including in 2024.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/ea04c22d-20db-dde9-3b92-e7f5c2279648.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ux-guidelines-for-better-url-design/global-number-of-searches-per-day.png" alt="Global number of searches per day." width="1500" height="844" loading="lazy"> </a> <figcaption><p>In 2024, the number of searches with Google Search was approximately 373 times larger than searches with ChatGPT. (Credit: <a href="https://sparktoro.com/blog/new-research-google-search-grew-20-in-2024-receives-373x-more-searches-than-chatgpt/">Rand Fishkin</a>)</p> </figcaption> </figure> <p>We don’t know how much time is spent clicking through pages and how much reading AI responses. But <strong>it’s wrong to say that AI is troubling Google</strong> — users just search more. As of March 2025, Google’s market share is at 93.57% and ChatGPT is only at 0.25%. So let’s give our URLs a bit of extra love to make them more effective — for our users, but also to boost the SEO of our pages.</p> <h2 id="url-guidelines-in-design-systems" tabindex="-1">URL Guidelines In Design Systems <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-guidelines-for-better-url-design/#url-guidelines-in-design-systems">#</a></h2> <p>Setting up guidelines for URL design is a good idea to ensure everyone on the team follows the same logic. Here are some great examples from how real-world design systems <strong>document their URL standards</strong>.</p> <ul> <li><a href="https://www.forgov.qld.gov.au/information-and-communication-technology/communication-and-publishing/website-and-digital-publishing/website-standards-guidelines-and-templates/url-design-guidelines">Gov.au</a></li> <li><a href="https://design.va.gov/components/url-standards/">VA.gov</a></li> <li><a href="https://op.europa.eu/en/web/webguide/urls">Publications Office EU</a></li> <li><a href="https://usda-fsa.github.io/fsa-design-system//guides/content/urls-and-filenames.html">FPAC</a></li> </ul> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-guidelines-for-better-url-design/#useful-resources">#</a></h2> <ul> <li><a href="https://www.forgov.qld.gov.au/information-and-communication-technology/communication-and-publishing/website-and-digital-publishing/website-standards-guidelines-and-templates/url-design-guidelines/url-design-checklist">URL Design Checklist</a>, by Gov.au</li> <li><a href="https://developers.google.com/search/docs/crawling-indexing/url-structure">Google SEO Guidelines</a></li> <li><a href="https://opus.ing/posts/your-websites-urls-can-should-be-beautiful">Your Website’s URLs Can and Should Be Beautiful</a>, by Jason Morehead</li> <li><a href="https://michaelsoriano.com/the-hidden-ux-mastering-url-design-for-better-user-experience/">The Hidden UX of URLs</a>, by Michael Soriano</li> <li><a href="https://www.semrush.com/blog/what-is-a-url/">A Complete Guide to URL Design</a>, by Christine Skopec, Zach Paruch</li> </ul> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-guidelines-for-better-url-design/#wrapping-up">#</a></h2> <p>A URL might be a small detail and one that easily falls through the cracks given the more obvious user experience challenges that we need to solve in our work every day. However, URLs play a <strong>critical role in providing orientation</strong> for users, simplifying sharing, and serving as SEO for search engines.</p> <p>Luckily, designing better URLs isn’t a big commitment once you’ve understood what to watch out for. We hope that the tips above will inspire you to <strong>take another look at your URLs</strong> and to tweak them if needed to make them even more useful.</p> <hr> Mon, 31 Mar 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/ux-guidelines-for-better-url-design/ How To Argue Against AI-First Research https://smart-interface-design-patterns.com/articles/AI-user-research/ <p>With AI upon us, companies have recently been turning their attention to <strong>“synthetic” user testing</strong> — AI-driven research that replaces UX research. There, questions are answered by AI-generated “customers”, human tasks “performed” by AI agents.</p> <p>However, it’s not just for desk research or discovery that AI is used for; it’s an <em>actual</em> usability testing with “AI personas” that <strong>mimic human behavior</strong> of actual customers within the actual product. It’s like UX research, just... well, without the users.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/68a4e847-c784-3949-20c2-bf1c0a1e0128.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/AI-user-research/user-research-wihout-the-users.jpg" alt="One of the many tools to conduct AI Research, without users." width="1500" height="936" loading="lazy"> </a> <figcaption><p>One of the tools to conduct “synthetic testing”, or AI-generated UX research, without users.</p> </figcaption> </figure> <p>If it sounds worrying, confusing and outlandish, it is — but it doesn’t stop companies from adopting AI “research” to drive business decisions. Unsurprisingly, it’s <strong>dangerous, risky</strong> and expensive — and usually diminishes user value.</p> <h2 id="fast-cheap-easy-and-imaginary" tabindex="-1">Fast, Cheap, Easy... And Imaginary <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/AI-user-research/#fast-cheap-easy-and-imaginary">#</a></h2> <p>Erika Hall <a href="https://medium.com/mule-design/a-three-part-plan-to-save-the-world-98653a20a12f">famously noted</a> that “design is only as human-focused as business model allows for it”. If a company is heavily driven by <strong>hunches, assumptions and strong opinions</strong>, there will be little to no interest in properly done UX research in the first place.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/mule-design/a-three-part-plan-to-save-the-world-98653a20a12f"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/AI-user-research/user-value.jpg" alt="Value exchange" width="1500" height="844" loading="lazy"> </a> <figcaption><p>The opportunity for business value is in delivering user value when users struggle. By <a href="https://medium.com/mule-design/a-three-part-plan-to-save-the-world-98653a20a12f">Erika Hall</a>.</p> </figcaption> </figure> <p>But unlike UX research, AI research (conveniently called <em>synthetic testing</em>) is <strong>fast, cheap and easy</strong> to re-run. It doesn’t raise uncomfortable questions, and it doesn’t flag wrong assumptions. It doesn’t require user recruitment, much time or long-winded debates.</p> <p>And: it can manage <strong>thousands of AI personas</strong> at once. By studying AI-generated output, we can discover common journeys, navigation patterns and common expectations. We can anticipate how people behave and what they would do.</p> <p>Well, that’s the <strong>big promise</strong>. And that’s where we start running into big problems.</p> <h2 id="llms-are-people-pleasers" tabindex="-1">LLMs Are People Pleasers <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/AI-user-research/#llms-are-people-pleasers">#</a></h2> <p>Good UX research has roots in <strong>what actually happened</strong> — not what <em>might</em> have happeend, or what <em>might</em> happen in the future.</p> <p>By nature, LLMs are trained to provide the most <strong>“plausible”</strong>, or most likely output based on patterns captured in its training data. These patterns, however, emerge from expected behaviors by statistically “average” profiles extracted from the content on the web. But these people don’t exist, they never have.</p> <p>By default, user segments are <strong>not scoped and not curated</strong>. They don’t represent the customer base of any product. So to be useful, we must eloquently prompt AI by explaining who users are, what they do and how they behave. Otherwise, the output won’t match user needs, and won’t apply to our users.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.nature.com/articles/d41586-025-00068-5"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/AI-user-research/hallucination-rate.jpg" alt="Value exchange" width="1500" height="1119" loading="lazy"> </a> <figcaption><p>Every LLM hallucinates, but newer models perform better at some tasks, such as summarizing. By <a href="https://www.nature.com/articles/d41586-025-00068-5">Nature.com</a>.</p> </figcaption> </figure> <p>When “producing” user insights, LLMs <a href="https://www.ideo.com/journal/the-case-against-ai-generated-users">can’t generate unexpected things</a> beyond what we’re already asking about.</p> <p>In comparison, researchers are only able to define what’s relevant as the process unfolds. In actual user testing, insights can help <strong>shift priorities</strong> or radically reimagine the problem we’re trying to solve, as well as potential business outcomes.</p> <p>Real insights come from <strong>unexpected behavior</strong>, from reading behavioral clues and emotions, from observing a person doing the opposite of what they said. We can’t replicate it with LLMs.</p> <h2 id="ai-user-research-isnt-better-than-nothing" tabindex="-1">AI User Research Isn’t “Better Than Nothing” <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/AI-user-research/#ai-user-research-isnt-better-than-nothing">#</a></h2> <p>Pavel Samsonov <a href="https://uxdesign.cc/no-ai-user-research-is-not-better-than-nothing-its-much-worse-5add678ab9e7">articulates</a> that things that sound like customers <em>might</em> say them are <strong>worthless</strong>. But things that customers <em>actually</em> have said, done or experienced carry inherent value (although they could be exaggerated). We just need to interpret them correctly.</p> <p>AI user research isn’t “better than nothing”, or “more effective”: it creates an <strong>illusion of customer experiences</strong> that never happened, and are at best good guesses, but at worst misleading and non-applicable. Relying on AI-generated “insights” alone isn’t much different than reading tea leaves.</p> <h2 id="cost-of-mechanical-decisions" tabindex="-1">Cost Of Mechanical Decisions <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/AI-user-research/#cost-of-mechanical-decisions">#</a></h2> <p>We often hear about the breakthrough of automation and knowledge generation with AI. Yet we often forget that automation often comes at a cost — the <strong>cost of mechanical decisions</strong> that are typically indiscriminate, favor uniformity and erode quality.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.nngroup.com/articles/plan-research-ai/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/AI-user-research/multiple-ai-prompts.jpg" alt="Value exchange" width="1500" height="1640" loading="lazy"> </a> <figcaption><p>Some research questions generated by AI could be useful, others useless. By <a href="https://www.nngroup.com/articles/plan-research-ai/">Maria Rosala</a>.</p> </figcaption> </figure> <p>As Maria Rosala and Kate Moran <a href="https://www.nngroup.com/articles/synthetic-users/">write</a>, the problem with AI research is that it most certainly will be <strong>misrepresentative</strong>, and without real research, you won't catch and correct those inaccuracies. Making decisions without talking to real customers is dangerous, harmful and expensive.</p> <p>Beyond that, synthetic testing assumes that people fit in well-defined boxes, which is rarely true. Human behavior is shaped by our experiences, situations, habits that can’t be replicated by text generation alone. AI <strong>strengthens biases, supports hunches</strong> and amplifies stereotypes.</p> <h2 id="triangulate-insights-not-verify-them" tabindex="-1">Triangulate Insights, Not Verify Them <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/AI-user-research/#triangulate-insights-not-verify-them">#</a></h2> <p>Of course AI can provide <strong>useful starting points</strong> to explore erly in the process. But inherently it also invites false impressions and unverified conclusions — presented with an incredible level of confidence and certainty.</p> <p><strong>Starting with human research</strong> is just much more reliable — conducted with real customers using a real product. Then we could apply AI to see if we perhaps missed something critical in user interviews. AI can enhance, but not replace UX research.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.linkedin.com/posts/johnpcutler_whenever-i-see-a-linear-customer-journey-activity-7288764384380624896-P_j6/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/AI-user-research/triangulate-linear-customer-journeys.jpg" alt="The challenge of linear customer journeys" width="1500" height="846" loading="lazy"> </a> <figcaption><p>Triangluate linear customer journeys by layering them on top of each other to identify most frequent areas of use. By <a href="https://www.linkedin.com/posts/johnpcutler_whenever-i-see-a-linear-customer-journey-activity-7288764384380624896-P_j6/">John Cutler</a>.</p> </figcaption> </figure> <p>Also, when we do use AI for desk research, it can be tempting to try to <strong>“validate”</strong> AI “insights” with actual user testing. However, once we plant a seed of insight in our head, it’s easy to recognize its signs everywhere — even if it really isn’t there.</p> <p>Instead, we study actual customers, then <strong>triangulate data</strong>: track clusters, or most heavily trafficked parts of the product. It might be that analytics and AI desk research confirm your hypothesis. That would give you a much stronger standing to move forward in the process.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/AI-user-research/#wrapping-up">#</a></h2> <p>I might sound like a broken record, but I keep wondering why we feel the urgency to replace UX work with automated AI tools. Good design requires a good amount of <strong>critical thinking</strong>, observation and planning observation.</p> <p>To me personally, cleaning up after AI-generated output takes way more time than doing the actual work. There is an <strong>incredible value</strong> in talking to people who actually use your product.</p> <p>I would always choose 1 day with a real customer instead of 1 hour with 1000 synthetic users pretending to be humans.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/AI-user-research/#useful-resources">#</a></h2> <ul> <li><a href="https://www.nngroup.com/articles/synthetic-users/">Synthetic Users</a>, by Maria Rosala, Kate Moran</li> <li><a href="https://uxdesign.cc/synthetic-users-the-next-revolution-in-ux-research-0d43f7111e7f?sk=v2%2F05a1bb3c-4312-4665-bc5f-06339bbb609e">Synthetic Users: The Next Revolution in UX Research?</a>, by Carolina Guimarães</li> <li><a href="https://rbefored.com/ai-users-are-neither-ai-nor-users-c701f32fbbc4">AI Users Are Neither AI Nor Users</a>, by Debbie Levitt 🐦‍🔥</li> <li><a href="https://www.nngroup.com/articles/plan-research-ai/">Planning Research with Generative AI</a>, by Maria Rosala</li> <li><a href="https://blog.uxtweak.com/artificial-participants-and-ai-generated-responses/">Synthetic Testing</a>, by Stéphanie Walter, Nikki Anderson, MA</li> <li><a href="https://www.uxforai.com/p/navigating-the-abyss-the-dark-side-of-synthetic-ai-user-research-tools">The Dark Side of Synthetic AI Research</a>, by Greg Nudelman</li> </ul> Wed, 12 Mar 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/AI-user-research/ Useful Customer Journey Maps (+ Figma & Miro Templates) https://smart-interface-design-patterns.com/articles/customer-journey-blueprints/ <p><strong>User journey maps</strong> are a remarkably effective way to visualize user’s experience for the entire team. Instead of pointing to documents scattered across remote fringes of Sharepoint, we bring key insights together — in one single place.</p> <p>Let’s explore a couple of <strong>helpful customer journey templates</strong> to get started, and how companies use it in practice.</p> <h2 id="airbnb-customer-journey-blueprint" tabindex="-1">AirBnB Customer Journey Blueprint <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/customer-journey-blueprints/#airbnb-customer-journey-blueprint">#</a></h2> <p><a href="https://x.com/bchesky/status/1654137863007612930?lang=en">AirBnB Customer Journey Blueprint</a> (also check <a href="https://drive.google.com/file/d/1yrV0hwS-tKGYzFMgV3bvo20LzXGPpwq4/view?usp=sharing">Google Drive example</a>) is a wonderful practical example of how to visualize the entire customer experience for 2 personas, across 8 touch points, with user policies, UI screens and all interactions with the customer service — <strong>all on one single page</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-activity-7212351266880958464-7Og1"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/customer-journey-blueprints/airbnb-customer-journey-blueprint.jpg" alt="A guide to customer journey mapping" width="1500" height="840" loading="lazy"> </a> <figcaption><p><a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-activity-7212351266880958464-7Og1">AirBnB's Customer Journey Blueprint</a>, mapping policies and customer service against a customer journey. <a href="https://x.com/bchesky/status/1654137863007612930?lang=en">Watch a video preview</a>.</p> </figcaption> </figure> <p>Now, unlike AirBnB, your product might not need a mapping against user policies. However, it might need <strong>other lanes</strong> that would be more relevant for your team. E.g. include relevant findings and recommendations from UX research. List key actions needed for next stage. Relevant UX metrics and unsuccessful touchpoints.</p> <p><strong>Whatever works for you</strong>, works for you — just make sure to avoid assumptions and refer to facts and insights from research.</p> <h2 id="spotify-customer-journey-map" tabindex="-1">Spotify Customer Journey Map <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/customer-journey-blueprints/#spotify-customer-journey-map">#</a></h2> <p><a href="https://images.ctfassets.net/c1zhnszcah7h/6dlIZwMTFlRm07vH0fUquI/b21cc6c086ff01572ad2580c8d75dc31/Inline_-_Personas_2x__1_.png">Spotify Customer Journey Blueprint</a> (high resolution) breaks down customer experiences by <strong>distinct user profiles</strong>, and for each includes mobile and desktop views, pain points, thoughts and actions. Also, notice <strong>branches</strong> for customers who skip authentication or admin tasks.</p> <figure class="c-article__image u-flow--xs"> <a href="https://spotify.design/article/from-web-page-to-web-player-how-spotify-designed-a-new-homepage-experience"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/customer-journey-blueprints/spotify-customer-journey-blueprint.jpg" alt="A guide to customer journey mapping" width="1500" height="898" loading="lazy"> </a> <figcaption><p><a href="https://spotify.design/article/from-web-page-to-web-player-how-spotify-designed-a-new-homepage-experience">Spotify Customer Journey Blueprint</a>, mapping mobile and desktop screens against a customer journey. <a href="https://images.ctfassets.net/c1zhnszcah7h/6dlIZwMTFlRm07vH0fUquI/b21cc6c086ff01572ad2580c8d75dc31/Inline_-_Personas_2x__1_.png?w=2000&amp;h=1177&amp;q=96&amp;fm=webp">Large preview</a>.</p> </figcaption> </figure> <h2 id="getting-started-with-journey-maps" tabindex="-1">Getting Started With Journey Maps <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/customer-journey-blueprints/#getting-started-with-journey-maps">#</a></h2> <p>To <a href="https://stephaniewalter.design/blog/an-introduction-to-user-journey-map-pdf-templates/">get started with user journey maps</a>, we first <strong>choose a lens</strong>: are we reflecting the current state or projecting a future state? Then, we choose a <strong>customer who experiences the journey</strong> — and we capture the situation/goals that they are focusing on.</p> <figure class="c-article__image u-flow--xs"> <a href="https://stephaniewalter.design/blog/an-introduction-to-user-journey-map-pdf-templates/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/customer-journey-blueprints/guide-with-miro-figma.jpg" alt="A guide to customer journey mapping" width="1500" height="978" loading="lazy"> </a> <figcaption><p><a href="https://stephaniewalter.design/blog/an-introduction-to-user-journey-map-pdf-templates/">A practical guide to customer journey mapping</a>, with free Miro/Figma templates by Steph Walter.</p> </figcaption> </figure> <p>Next, we <strong>list high-level actions</strong> users are going through. We start by defining first and last stage, and fill in-between. Don’t get too granular: list key actions needed for next stage. Add user’s thoughts, feelings, sentiment, emotional curves.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/ultimate-guide-to-customer-journey-mapping-ux-tools-series-b973ca442213"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/customer-journey-blueprints/customer-journey-mapping.jpg" alt="A guide to customer journey mapping" width="1500" height="839" loading="lazy"> </a> <figcaption><p><a href="https://uxdesign.cc/ultimate-guide-to-customer-journey-mapping-ux-tools-series-b973ca442213">A guide to customer journey mapping</a>, a practical guide by Taras Bakusevych.</p> </figcaption> </figure> <p>Eventually, add <strong>user’s key touchpoints with people, services, tools</strong>. Map user journey across mobile and desktop screens. Transfer insights from other research (e.g. customer support). Fill in stage after stage until the entire map is complete.</p> <p>Then, <strong>identify pain</strong> points and highlight them with red dots. Add relevant jobs-to-be-done, metrics, channels if needed. Attach links to quotes, photos, videos, prototypes, Figma files. Finally, explore ideas and opportunities to address pain points.</p> <h2 id="free-customer-journey-maps-templates-miro-figma" tabindex="-1">Free Customer Journey Maps Templates (Miro, Figma) <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/customer-journey-blueprints/#free-customer-journey-maps-templates-miro-figma">#</a></h2> <p>You don’t have to reinvent the wheel from scratch. Below you will find a few <strong>useful starter kits</strong> to get up and running fast. However, please make sure to <strong>customize</strong> these templates for your needs as every product will require its own specific details, dependencies and decisions.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.figma.com/community/file/1133964686200054485/user-journey-map-template"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/customer-journey-blueprints/user-journey-map-template.png" alt="A guide to customer journey mapping" width="1500" height="843" loading="lazy"> </a> </figure> <ul> <li><a href="https://www.figma.com/community/file/1133964686200054485/user-journey-map-template">User Journey Map Template</a> (Figma), by Estefanía Montaña B.</li> <li><a href="https://uxdesign.cc/ultimate-guide-to-customer-journey-mapping-ux-tools-series-b973ca442213">Customer Journey Mapping</a> (PDF), by Taras Bakusevych</li> <li><a href="https://www.figma.com/community/file/1225500193035347266/fashion-app-experience-map-by-turtle-design">End-To-End User Experience Map</a> (Figma), by Justin Tan</li> <li><a href="https://www.figma.com/community/file/1270404244780781982/customer-journey-map">Customer Journey Map Template</a> (Figma), by Ed Biden</li> <li><a href="https://miro.com/miroverse/2d-customer-journey-map-workshop/">Customer Journey Map Template</a> (Miro), by Matt Anderson</li> <li><a href="https://miro.com/miroverse/customer-journey-map-4/">Customer Journey Map</a> (Miro), by Hustle Badger</li> <li><a href="https://miro.com/miroverse/journey-map/">Customer Experience Map Template</a> (Miro), by Essense</li> <li><a href="https://miro.com/miroverse/epic-customer-journey/">The Customer Journey Map</a> (Miro), by RSPRINT</li> </ul> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/customer-journey-blueprints/#wrapping-up">#</a></h2> <p>Keep in mind that <strong>customer journeys are often non-linear</strong>, with unpredictable entry points, and integrations way beyond the final stage of a customer journey map. It’s in those moments when things leave a perfect path that a product’s UX is actually customer-journey-blueprints tested.</p> <p>So consider mapping <strong>unsuccessful touchpoints</strong> as well — failures, error messages, conflicts, incompatibilities, warnings, connectivity issues, eventual lock-outs and frequent log-outs, authentication issues, outages and urgent support inquiries.</p> <p>Also, make sure to <strong>question assumptions and biases early</strong>. Once they live in your UX map, they grow roots — and it might not take long until they are seen as the foundation of everything, which can be remarkably difficult to challenge or question later. Good luck, everyone!</p> Mon, 10 Mar 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/customer-journey-blueprints/ How To Build Confidence In Your UX Work https://smart-interface-design-patterns.com/articles/confidence/ <p>When I start any UX project, typically there is very little confidence in the successful outcome of my UX initiatives. In fact, there is quite a lot of <strong>reluctance and hesitation</strong>, especially from teams that have been burnt by empty promises and poor delivery in the past.</p> <p>Good UX has a huge impact on business. But often we need to build up confidence in our upcoming UX projects. For me, an effective way to do that is to <strong>address critical bottlenecks</strong> and <strong>uncover hidden deficiencies</strong> — the ones that affect the people I’ll be working with.</p> <p>Let’s take a closer look at what this can look like.</p> <h2 id="ux-doesnt-disrupt-it-solves-problems" tabindex="-1">UX Doesn’t Disrupt, It Solves Problems <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/confidence/#ux-doesnt-disrupt-it-solves-problems">#</a></h2> <p><strong>Bottlenecks</strong> are usually the most disruptive part of any company. Almost every team, every unit, and every department has one. It’s often well-known by employees as they complain about it, but it <strong>rarely finds its way to senior management</strong> as they are detached from daily operations.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.linkedin.com/posts/ferraroroberto_management-humility-questions-activity-7215935187887521792-PM-C/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/confidence/the-onion-layers.jpg" alt="The Onion Layers" width="1500" height="1375" loading="lazy"> </a> <figcaption><p><a href="https://www.linkedin.com/posts/ferraroroberto_management-humility-questions-activity-7215935187887521792-PM-C/">The Iceberg of Ignorance</a>: Sidney Yoshida discovered that leadership is usually unaware of the organization's real problems.</p> </figcaption> </figure> <p>The bottleneck can be the only senior developer on the team, or a broken legacy tool, or a confusing flow that throws errors left and right — there’s always a bottleneck, and it’s usually the reason for <strong>long waiting times</strong>, delayed delivery, and cutting corners in all the wrong places.</p> <p>We might not be able to fix the bottleneck. But for a smooth flow of work, we need to ensure that non-constraint resources <strong>don’t produce more</strong> than the constraint can handle. All processes and initiatives must be aligned to support and maximize the efficiency of the constraint.</p> <p>So before doing any UX work, look out for things that slow down the organization. Show that it’s not UX work that disrupts work, but it’s <strong>internal disruptions that UX can help with</strong>. And once you’ve delivered even a tiny bit of value, you might be surprised how quickly people will want to see more of what you have in store for them.</p> <h2 id="the-work-is-never-just-the-work" tabindex="-1">The Work Is Never Just “The Work” <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/confidence/#the-work-is-never-just-the-work">#</a></h2> <p>Meetings, reviews, experimentation, pitching, deployment, support, updates, fixes — unplanned work blocks other work from being completed. Exposing the <strong>root causes of unplanned work</strong> and finding critical bottlenecks that slow down delivery is not only the first step we need to take when we want to improve existing workflows but it is also a good starting point for showing the value of UX.</p> <figure class="c-article__image u-flow--xs"> <a href="https://davestewart.co.uk/blog/the-work-is-never-just-the-work/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/confidence/why-it%E2%80%99s-never-just-the-work.png" alt="Why it’s never just the work." width="1500" height="2220" loading="lazy"> </a> <figcaption><p>The work is never just “the work.” In every project — as well as before and after it — there is a lot of invisible, and often unplanned, work going on. (Credit: <a href="https://davestewart.co.uk/blog/the-work-is-never-just-the-work/">Dave Stewart</a>)</p> </figcaption> </figure> <p>To learn more about the points that create friction in people’s day-to-day work, <strong>set up 1:1s with the team</strong> and ask them what slows them down. Find a problem that affects everyone. Perhaps there is too much work in progress that results in late delivery and low quality? Or lengthy meetings stealing precious time?</p> <p>One frequently overlooked detail is that we can’t manage work that is invisible. That’s why it is so important that we <strong>visualize the work first</strong>. Once we know the bottleneck, we can <strong>suggest ways to improve it</strong>. It could be to introduce 20% idle times if the workload is too high, for example, or to make meetings slightly shorter to make room for other work.</p> <h2 id="the-theory-of-constraints" tabindex="-1">The Theory Of Constraints <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/confidence/#the-theory-of-constraints">#</a></h2> <p>The idea that the work is never just “the work,” is deeply connected to the Theory of Constraints discovered by Dr. Eliyahu M. Goldratt. It showed that any <strong>improvements made anywhere beside the bottleneck are an illusion</strong>.</p> <p>Any improvement after the bottleneck is <strong>useless</strong>, because it will always remain starved, waiting for work from the bottleneck. And any improvements made before the bottleneck results in more work <strong>piling up</strong> at the bottleneck.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.nngroup.com/articles/ux-strategy/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/confidence/components-of-UX-strategy.png" alt="Components of UX strategy" width="1500" height="1058" loading="lazy"> </a> <figcaption><p><a href="https://www.nngroup.com/articles/ux-strategy/">Components of UX Strategy</a>: it’s difficult to build confidence in your UX work without preparing a proper UX strategy ahead of time.</p> </figcaption> </figure> <h3 id="wait-time-busy-idle" tabindex="-1">Wait Time = Busy ÷ Idle <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/confidence/#wait-time-busy-idle">#</a></h3> <p>To improve flow, sometimes we need to freeze the work and bring focus to one single project. Just as important as throttling the <strong>release of work</strong> is managing the <strong>handoffs</strong>. The wait time for a given resource is the percentage that resource is busy, divided by the percentage it’s idle. If a resource is 50% utilized, the wait time is 50/50, or 1 unit.</p> <p>If the resource is 90% utilized, the wait time is 90/10, or 9 times longer. And if it’s 99% of time utilized, it’s 99/1, so 99 times longer than if that resource is 50% utilized. The critical part is to <strong>make wait times visible</strong>, so you know when your work spends days sitting in someone’s queue.</p> <p>The exact times don’t matter, but if a resource is busy 99% of the time, the wait time will explode.</p> <h3 id="avoid-100percent-occupation" tabindex="-1">Avoid 100% Occupation <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/confidence/#avoid-100percent-occupation">#</a></h3> <p>Our goal is to maximize flow: that means exploiting the constraint but <strong>creating idle times for non-constraint</strong> to optimize system performance.</p> <p>One surprising finding for me was that any attempt to maximize the utilization of all resources — <strong>100% occupation</strong> across all departments — can actually be <strong>counterproductive</strong>. As Goldratt noted, “An hour lost at a bottleneck is an hour out of the entire system. An hour saved at a non-bottleneck is worthless.”</p> <h3 id="recommended-read-the-phoenix-project" tabindex="-1">Recommended Read: “The Phoenix Project” <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/confidence/#recommended-read-the-phoenix-project">#</a></h3> <figure class="c-article__image u-flow--xs"> <a href="https://itrevolution.com/product/the-phoenix-project/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/confidence/The-Phoenix-Project.png" alt="The Phoenix Project" width="1500" height="984" loading="lazy"> </a> <figcaption><p>“<a href="https://itrevolution.com/product/the-phoenix-project/">The Phoenix Project</a>” by Gene Kim, Kevin Behr, and George Spafford is a wonderful novel about the struggles of shipping.</p> </figcaption> </figure> <p>I can only wholeheartedly recommend <a href="https://itrevolution.com/product/the-phoenix-project/"><em>The Phoenix Project</em></a>, an absolutely incredible book that goes into all the <strong>fine details of the Theory of Constraints</strong> described above.</p> <p>It’s not a design book, but a great book for designers who want to be more strategic about their work. It’s a delightful and very real read about the <strong>struggles of shipping</strong> (albeit on a more technical side).</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/confidence/#wrapping-up">#</a></h2> <p>People don’t like sudden changes and uncertainty, and UX work often disrupts their usual ways of working. Unsurprisingly, most people tend to block it by default. So before we introduce big changes, we need to get their support for our UX initiatives.</p> <p>We need to build confidence and <strong>show them the value that UX work can have</strong> — for <em>their</em> day-to-day work. To achieve that, we can work together with them. <strong>Listening</strong> to the pain points they encounter in their workflows, to the things that slow them down.</p> <p>Once we’ve uncovered <strong>internal disruptions</strong>, we can tackle these critical bottlenecks and suggest steps to make existing workflows more efficient. That’s the foundation to gaining their <strong>trust</strong> and showing them that UX work doesn’t disrupt but that it’s here to solve problems.</p> Sat, 08 Mar 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/confidence/ T-Shaped vs. V-Shaped Designers https://smart-interface-design-patterns.com/articles/v-shaped-employees/ <p>Many <strong>job openings in UX</strong> assume very specific roles with very specific skills. Product designers should be skilled in Figma. Researchers should know how to conduct surveys. UX writers must be able to communicate brand values.</p> <h2 id="the-many-roles-in-ux" tabindex="-1">The Many Roles In UX <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/v-shaped-employees/#the-many-roles-in-ux">#</a></h2> <p>Successful candidates must neatly fit within <strong>established roles</strong>, and excel at tools and workflows that are perceived as the best practice in the industry — from user needs to business needs, and from the problem space to the solution space.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/which-of-the-million-ux-roles-suits-you-best-a-personality-type-analysis-a5c8998e0864"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/v-shaped-employees/which-of-the-millions-ux-roles-suits-you-best.png" alt="Which of the millions UX roles suits you best?" width="1500" height="1101" loading="lazy"> </a> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/which-of-the-million-ux-roles-suits-you-best-a-personality-type-analysis-a5c8998e0864"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/v-shaped-employees/which-of-the-millions-ux-roles-suits-you-best-2.png" alt="Which of the millions UX roles suits you best?" width="1500" height="1108" loading="lazy"> </a> <figcaption><p>Depending on where your strengths are, you’ll be finding yourself between business, user, problem and solution spaces. By <a href="https://uxdesign.cc/which-of-the-million-ux-roles-suits-you-best-a-personality-type-analysis-a5c8998e0864">Bas Wallet</a>.</p> </figcaption> </figure> <p>There is nothing wrong with that, of course. However, many companies <strong>don’t exactly know</strong> what expertise they actually need until they find the right person who actually has it. But: too often job openings don’t allow for any flexibility unless the candidate checks off the right boxes.</p> <p>In fact, typically UX roles have to fit into some of those <a href="https://uxdesign.cc/which-of-the-million-ux-roles-suits-you-best-a-personality-type-analysis-a5c8998e0864">rigorously defined and refined boxes</a>:</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/which-of-the-million-ux-roles-suits-you-best-a-personality-type-analysis-a5c8998e0864"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/v-shaped-employees/which-of-the-millions-ux-roles-suits-you-best-3.png" alt="Which of the millions UX roles suits you best?" width="1500" height="705" loading="lazy"> </a> <figcaption><p>The many roles and “boxes” in UX, illustrated by <a href="https://uxdesign.cc/which-of-the-million-ux-roles-suits-you-best-a-personality-type-analysis-a5c8998e0864">Bas Wallet</a>.</p> </figcaption> </figure> <h2 id="v-shaped-designers-dont-fit-into-boxes" tabindex="-1">“V”-Shaped Designers Don’t Fit Into Boxes <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/v-shaped-employees/#v-shaped-designers-dont-fit-into-boxes">#</a></h2> <p>Job openings typically cast a very restrictive frame for candidates. It comes with a long list of expectations and requirements, mostly aimed at <strong>T-shaped designers</strong> — experts in one area of UX, with a high-level understanding of adjacent areas, and perhaps a dash of expertise in business and operations.</p> <p>But as Brad Frost <a href="https://bradfrost.com/blog/post/job-title-its-complicated/">noted</a>, people <strong>don’t always fit squarely</strong> into a specific discipline. Their value comes not from staying within the boundaries of their roles, but from intentionally crossing these boundaries. They are <strong>“V”-shaped</strong> — experts in one or multiple areas, with a profound understanding and immense curiosity in adjacent areas.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/7eba3287-6a62-34dd-b4ff-2d4d6162c80e.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/v-shaped-employees/t-shaped-employee-vs-v-shaped-employee.png" alt="T-shaped employee vs. V-shaped employee, a visual representation, with both letters in the foreground, highlighting the difference in gradually broadening knowledge in adjacent areas for V-shaped employees compared to shallow knowledge in a broad range of areas for t-shaped employees." width="1500" height="938" loading="lazy"> </a> <figcaption><p>T-shaped employee vs. V-shaped employee, illustrated by <a href="https://www.linkedin.com/posts/jeroenkraaijenbrink_employeedevelopment-teammanagement-growthmindset-activity-7181666880452018177-BHBU/">Jeroen Kraaijenbrink</a>.</p> </figcaption> </figure> <p>In practice, they excel at <strong>bridging the gaps</strong> and connecting the dots. They establish design KPIs and drive accessibility efforts. They streamline handoff and scale design systems. But to drive success, they need to rely on specialists, their T-shaped colleagues.</p> <h2 id="shaping-your-own-boxes" tabindex="-1">Shaping Your Own Boxes <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/v-shaped-employees/#shaping-your-own-boxes">#</a></h2> <p>I sincerely wish more companies would encourage their employees to shape their own boxes <strong>instead of defining confined boxes</strong> for them — their own, unique boxes of any form and shade and color and size employees desire, along with deliverables that other teams would benefit from and could build upon.</p> <p>🏔️ <strong>Hiring?</strong> → Maybe replace a long list of mandatory requirements with an open invitation to apply, even if it’s not a 100% match — as long as a candidate believes they can do their best work for the job at hand.</p> <p>🎢 <strong>Seek a challenge?</strong> → Don’t feel restricted by your current role in a company. Explore where you drive the highest impact, shape this role and suggest it.</p> <p>✅ <strong>Searching for a job?</strong> → Don’t get discouraged if you don’t tick all the boxes in a promising job opening. <strong>Apply!</strong> Just explain in fine detail what you bring to the table.</p> <p>You’ve got this — and good luck, everyone! ✊🏽</p> Thu, 06 Mar 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/v-shaped-employees/ Decision Trees For UI Components https://smart-interface-design-patterns.com/articles/decision-trees/ <p>How do you know what UI component to choose? <strong>🌳 Decision trees</strong> offer a systematic approach for design teams to document their design decisions. Once we’ve decided what UI components we use and when, we can avoid never-ending discussions, confusion and misunderstanding.</p> <p>Let’s explore a few examples of <strong>decision trees for UI components</strong>, and how we can get the most out of them.</p> <figure class="c-article__image u-flow--xs"> <a href="https://oxygen.doctolib.design/60b411768/p/70925f-choosing-form-components"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/decision-trees/decision-trees-for-UI-components.jpg" alt="Decision trees for UI components" width="1500" height="2050" loading="lazy"> </a> <figcaption><p>A fantastic example of a form design component decision trees comes from the <a href="https://oxygen.doctolib.design/60b411768/p/70925f-choosing-form-components">Doctolib team</a>.</p> </figcaption> </figure> <h2 id="b2b-navigation-and-help-components-doctolib" tabindex="-1">B2B Navigation and Help Components: Doctolib <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/decision-trees/#b2b-navigation-and-help-components-doctolib">#</a></h2> <p><a href="https://oxygen.doctolib.design/60b411768/p/77fd2d-oxygen">Doctolib Design System</a> is a very impressive design system with decision trees, B2B navigation paths, photography, PIN input, UX writing and SMS notifications — and thorough guides on <strong>how to choose UI components</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://oxygen.doctolib.design/60b411768/p/962135-b2b-navigation-patterns"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/decision-trees/onboarding-selection-UI-toolkit.png" alt="Onboarding selection UI toolkit" width="1500" height="1089" loading="lazy"> </a> <figcaption><p>One of the many <a href="https://oxygen.doctolib.design/60b411768/p/962135-b2b-navigation-patterns">decision trees on Doctolib</a>: from B2B navigation to help components.</p> </figcaption> </figure> <ul> <li><a href="https://oxygen.doctolib.design/60b411768/p/962135-b2b-navigation-patterns">B2B Navigation Patterns Decision Tree</a></li> <li><a href="https://oxygen.doctolib.design/60b411768/p/70925f-choosing-form-components">Form Components Decision Tree</a></li> <li><a href="https://oxygen.doctolib.design/60b411768/p/7334c9-choosing-actions">Actions and Calls To Actions Decision Tree</a></li> <li><a href="https://oxygen.doctolib.design/60b411768/p/8918c1-designing-better-errors/b/20a65e">Error Design Decision Tree</a></li> <li><a href="https://oxygen.doctolib.design/60b411768/p/704279-choosing-a-help-component">Help Component Decision Tree</a></li> </ul> <p>I love how practical these decision trees are. Each shows an example of what a component look like, but I would also add <strong>references to real-life UI examples and flows</strong> of where and how these components are used. A fantastic starting point that documents design decisions better than any guide would.</p> <h2 id="decision-trees-for-ui-components-workday" tabindex="-1">Decision Trees For UI Components: Workday <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/decision-trees/#decision-trees-for-ui-components-workday">#</a></h2> <p>The team behind <a href="https://canvas.workday.com/">Workday’s Canvas design system</a> created a fantastic set of design decision trees for notifications, errors and alerts, loading patterns, calls to action, truncation and overflow — with <strong>guidelines, examples and use cases</strong>, which can now only be retrieved from the archive:</p> <figure class="c-article__image u-flow--xs"> <a href="https://web.archive.org/web/20230629075654im_/https://canvas.workday.com/static/ed85f63d5aa360f3db4328c1c586519b/ae94e/button-decision-tree.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/decision-trees/decision-trees-for-UI-components-2.png" alt="Decision trees for UI components" width="1500" height="791" loading="lazy"> </a> <figcaption><p>Design never exists in isolation — it must fit user’s context and their expectations to do its job. (Image credit: <a href="https://seabits.com/engine-and-power-dashboards/">Engine And Power Dashboard</a>)</p> </figcaption> </figure> <ul> <li><a href="https://web.archive.org/web/20240118144833/https://canvas.workday.com/patterns/notifications/#tab=usage">Notifications Decision Tree</a></li> <li><a href="https://web.archive.org/web/20240229153559/https://canvas.workday.com/patterns/errors-and-alerts/#tab=usage">Errors and Alerts Decision Tree</a></li> <li><a href="https://web.archive.org/web/20240118144613/https://canvas.workday.com/patterns/loading/#tab=usage">Loading UX Decision Tree</a></li> <li><a href="https://web.archive.org/web/20240118144311/https://canvas.workday.com/patterns/calls-to-action/#tab=usage">Calls to Action Decision Tree</a></li> <li><a href="https://web.archive.org/web/20240118144316/https://canvas.workday.com/patterns/overflow/#tab=usage">Truncation and Overflow Decision Tree</a></li> </ul> <p>For each decision tree, the Workday team has put together a few <strong>context-related questions</strong> to consider first when making a decision, before even jumping into the decision tree. Plus, there are thorough examples for each option available as well and a very detailed alternative text for every image.</p> <h2 id="form-components-decision-tree-lyft" tabindex="-1">Form Components Decision Tree: Lyft <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/decision-trees/#form-components-decision-tree-lyft">#</a></h2> <p>A choice of a <strong>form component</strong> can often be daunting. When to use radio buttons, checkboxes or dropdowns? Runi Goswami from Lyft has <a href="https://medium.com/tap-to-dismiss/a-better-segmented-control-9e662de2ef57">shared</a> a detailed form components decision tree that helps their team choose between form controls.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/tap-to-dismiss/a-better-segmented-control-9e662de2ef57"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/decision-trees/decision-trees-for-UI-components-3.png" alt="Decision trees for UI components" width="1500" height="1002" loading="lazy"> </a> <figcaption><p>A decision tree for <a href="https://medium.com/tap-to-dismiss/a-better-segmented-control-9e662de2ef57">form controls</a>: notably, use dropdown as a method of last resort, with many long options. (<a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/7154464b-d11d-ab63-1136-5c91771bc024.png">Large preview</a>)</p> </figcaption> </figure> <p>We start by exploring if a user can <strong>select more than one option</strong> in our UI. If it’s indeed multi-select, we use toggles for short options and checkboxes for longer ones.</p> <p>If only one option can be selected, then we use tabs for filtering, <strong>radios for shorter options</strong>, switch for immediately applicable options, and checkbox if only one option can be selected. Dropdowns are used as a method of last resort.</p> <h2 id="choosing-onboarding-components-newskit" tabindex="-1">Choosing Onboarding Components: NewsKit <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/decision-trees/#choosing-onboarding-components-newskit">#</a></h2> <p>Onboarding comes in various forms and shapes. Depending on how <strong>subtle or prominent</strong> we want to highlight a particular feature, we can use popovers, badges, hints, flags, toasts, feature cards or design a better empty state. The Newskit team has put together a <a href="https://www.figma.com/community/file/1154730991789332817/choosing-onboarding-methods-and-components">Onboarding Selection Prototype in Figma</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.figma.com/community/file/1154728777780695374"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/decision-trees/onboarding-selection-UI-toolkit-2.png" alt="Onboarding selection UI toolkit" width="1500" height="1057" loading="lazy"> </a> <figcaption><p><a href="https://www.figma.com/community/file/1154728777780695374">A decision toolkit for onboarding UX</a>: the more integrated the onboarding is, the more effective it is.</p> </figcaption> </figure> <p>The choice depends on whether we want to <strong>interrupt</strong> the users to display details (usually isn’t very effective), <strong>show</strong> a feature subly during the the experience (more effective), or <strong>enable discovery</strong> by highlighting a feature within the context of a task a user tries to accomplish.</p> <p>The toolkit asks a designer a couple of questions about the <strong>intent of onboarding</strong>, and then suggests options that are likely to perform best. A fantastic little helper for streamlined onboarding decision.</p> <h2 id="design-system-process-flowcharts-nucleus" tabindex="-1">Design System Process Flowcharts: Nucleus <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/decision-trees/#design-system-process-flowcharts-nucleus">#</a></h2> <p>How do you decide to add new component to a design system or rather extend an existing one? What’s the process for contributions, maintenance and the overall design process? Some design teams <strong>codify their design decisions</strong> as design system process flowcharts, as shown below.</p> <figure class="c-article__image u-flow--xs"> <a href="https://britishgas.design/guidelines/process/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/decision-trees/onboarding-selection-UI-toolkit-3.jpg" alt="Onboarding selection UI toolkit" width="1500" height="893" loading="lazy"> </a> <figcaption><p>The design system maintenance process by <a href="https://britishgas.design/guidelines/process/">British Gas design system</a>. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/7eff1276-e34f-fe6a-4018-30940ddfb653.jpg">Large view</a>.</p> </figcaption> </figure> <ul> <li><a href="https://britishgas.design/guidelines/process/">Contribution Process at British Gas</a></li> <li><a href="https://nordhealth.design/contributing/">Contributing Guidelines at Nordhealth</a></li> <li><a href="https://standards.aviva.com/ion/start-your-project/processes.html">Processes at Aviva</a></li> <li><a href="https://docs.opencollective.com/help/contributing/design/contribution-guidelines">Contribution Process at OpenCollective</a></li> <li><a href="https://medium.com/zalando-design/zalandos-design-system-contribution-model-73ab36f8591e">Contribution Process at Zalando</a></li> </ul> <p>And here are helpful decision trees for <strong>adding new components</strong> to a design system:</p> <ul> <li><a href="https://miro.com/app/board/uXjVNZBdYuA=/">New Component Decision Tree at Boston Scientific</a></li> <li><a href="https://primer.style/guides/contribute/handling-new-patterns">Handling New Patterns at GitHub</a></li> <li><a href="https://bradfrost.com/blog/post/a-design-system-governance-process/">Design System Governance Process</a> by Brad Frost</li> <li><a href="https://www.figma.com/community/file/989121626983620108/new-component-decision-tree">New Component Decision Tree</a> by Louis Ouriach</li> <li><a href="https://www.figma.com/community/file/1026922247130382011">Design System Contribution Template</a> by Chad Bergman</li> <li><a href="https://medium.com/razorpay-design/behind-the-scenes-of-designing-a-design-system-component-7969636fabf4">How To Launch A New Component</a> + <a href="https://www.figma.com/community/file/1042406919054488163">Figma template</a>, by Rama Krushna Behera</li> </ul> <h2 id="make-decision-trees-visible" tabindex="-1">Make Decision Trees Visible <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/decision-trees/#make-decision-trees-visible">#</a></h2> <p>What I absolutely love about the decision tree approach is not only that it beautifully visualizes design decisions, but that it also serves as a <strong>documentation</strong>. It establishes shared standards across teams and includes examples to follow, with incredible value for new hires.</p> <p>Of course, exceptions happen. But once you have codified the ways of working for design teams as a decision tree and made it front and center of your design work, it <strong>resolves never-ending discussions</strong> about UI decisions for good.</p> <figure class="c-article__image u-flow--xs"> <a href="https://primer.style/guides/contribute/handling-new-patterns/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/decision-trees/handling-new-patterns-at-Github.png" alt="Handling new patterns at Github" width="1500" height="1200" loading="lazy"> </a> <figcaption><p>The entire process at GitHub summarized as a flowchart. <a href="https://primer.style/guides/contribute/handling-new-patterns/">Large view</a>.</p> </figcaption> </figure> <p>So whenever a debate comes up, document your decisions in a decision tree. Turn them into posters. Place them in kitchen areas and developer’s and QA workspaces. Put them in design critique rooms. <strong>Make them visible</strong> where design work happens and where code is being written.</p> <p>It’s worth mentioning that every project will need its own custom trees, so please see the examples above as an <strong>idea to build upon</strong> and customize away for your needs.</p> <p>Happy decision planting, everyone! 🎉🥳</p> Thu, 06 Mar 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/decision-trees/ Designing For Stress and Emergency https://smart-interface-design-patterns.com/articles/stress/ <p>You can find more details on <strong>design patterns and UX strategy</strong> in <a href="https://measure-ux.com/">How To Measure UX</a> 🍣 — with a live UX training coming up this year. <a href="https://www.youtube.com/watch?v=uvqdSShM8eQ">Free preview</a>.</p> <p>No design exists in isolation. As designers, we often imagine specific situations in which people will use our product. It might be indeed quite common — but there will also be other — <strong>urgent, frustrating, stressful situations</strong>. And they are the ones that we rarely account for.</p> <p>So how do we account for such situations? How can we help people <strong>use our products while coping with stress</strong> — without adding to their cognitive load? Let’s take a closer look.</p> <h2 id="study-where-your-product-fits-into-peoples-lives" tabindex="-1">Study Where Your Product Fits Into People’s Lives <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/stress/#study-where-your-product-fits-into-peoples-lives">#</a></h2> <p>When designing digital products, sometimes we get a bit too attached to our <strong>shiny new features and flows</strong> — often forgetting the messy reality in which these features and flows have to neatly fit. And often it means 10s of other products, 100s of other tabs and 1000s of other emails.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/5473383e-ecc4-a8af-e89b-6c300ac1ba8a.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/stress/split-screen.jpg" alt="An example of a split screen with two power consumption dashboards on a 22 inch screen." width="1500" height="1125" loading="lazy"> </a> <figcaption><p>Design never exists in isolation — it must fit user’s context and their expectations to do its job. (Image credit: <a href="https://seabits.com/engine-and-power-dashboards/">Engine And Power Dashboard</a>)</p> </figcaption> </figure> <p>If your customers have to use a <strong>slightly older machine</strong>, with a <em>smallish</em> 22&quot; screen and a lot of background noise, they might use your product differently than you might have imagined — e.g. splitting the screen into halves to see both views at the the same time (as displayed above).</p> <p>Chances are high that our customers will use our product <strong>while doing something else</strong>, often with very little motivation, very little patience, plenty of urgent (and way more important) problems and an unhealthy dose of stress. And that’s where out product must do its job well.</p> <h2 id="what-is-stress" tabindex="-1">What Is Stress? <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/stress/#what-is-stress">#</a></h2> <p>What exactly do we mean when we talk about “stress”? As <a href="https://medium.com/designing-services/designing-for-stressed-out-users-part-1-4489793dbe41">H Locke noted</a>, stress is the <strong>body’s response to a situation it cannot handle</strong>. There is a mismatch between what people can control, their own skills, and the challenge in front of them.</p> <p>If the situation seems unmanageable and the goal they want to achieve moves further away, it creates an enormous sense of <strong>failing</strong>. It can be extremely frustrating and demotivating.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/09687abd-5e6a-28ed-8e6f-562904f94bf3.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/stress/stress-level.jpg" alt="SOS Emergency System" width="1500" height="1508" loading="lazy"> </a> <figcaption><p>Stress has many levels. The key is to not let it spiral into dangerous zones. (Image credit: <a href="https://alypain.com/5-apps-to-reduce-stress-in-teens/">Alypain</a>)</p> </figcaption> </figure> <p>Some failures have local scope, but many have a <strong>far-reaching impact</strong>. Some people can’t choose the products they use for work, so when a tool fails repeatedly, it affects the worker, the work, the colleagues and processes within the organization. Fragility has a high cost — and so does <strong>frustration</strong>.</p> <h2 id="how-stress-influences-user-interactions" tabindex="-1">How Stress Influences User Interactions <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/stress/#how-stress-influences-user-interactions">#</a></h2> <p>Stress disrupts attention, memory, cognition, and decision-making, making it difficult to prioritize and draw logical conclusions. In times of stress, we <strong>rely on fast, intuitive judgments</strong>, not reasoning. Typically it leads to instinctive responses based on established habits.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/df253ff3-02d5-1667-02c7-a4ba18c070d4.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/stress/poorly-design-products.png" alt="Designing For Stress And Emergency" width="1500" height="1004" loading="lazy"> </a> <figcaption><p>Poorly designed products can add to the cognitive load and lead to mistakes.</p> </figcaption> </figure> <p>Under pressure, people often make decisions hastily, while others get entirely paralyzed. Either way is a likely <strong>path to mistakes</strong> — often irreversible ones and often without time for extensive deliberations.</p> <p>Ideally, these decisions would be made way ahead of time — and then suggested when needed. But in practice, it’s not always possible. As it turns out, a good way to help people deal with stress is by <strong>providing order</strong> around how they manage it.</p> <h2 id="single-tasking-instead-of-multi-tasking" tabindex="-1">Single-Tasking Instead Of Multi-Tasking <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/stress/#single-tasking-instead-of-multi-tasking">#</a></h2> <p>People can’t <em>really</em> multi-task, especially in very stressful situations or emergencies. That’s why more simpler pages might work better than one complex page.</p> <p>Order means giving users a <strong>clear plan of action</strong> to complete a task. No distractions, no unnecessary navigation. We ask simple questions and <strong>prompt simple actions</strong>, one after another, one thing at a time.</p> <figure class="c-article__image u-flow--xs"> <a href="https://designnotes.blog.gov.uk/2017/04/04/weve-published-the-task-list-pattern/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/stress/poorly-design-products-2.png" alt="Designing For Stress And Emergency" width="1500" height="1139" loading="lazy"> </a> <figcaption><p>Poorly designed products can add to the cognitive load and lead to mistakes.</p> </figcaption> </figure> <p>An example of the plan is the <a href="https://designnotes.blog.gov.uk/2017/04/04/weve-published-the-task-list-pattern/">Task List Pattern</a>, invented by fine folks at Gov.uk. We break a task into a <strong>sequence of sub-tasks</strong>, describe them with actionable labels, assign statuses and track progress.</p> <p>To support accuracy, we revise <strong>default settings</strong>, values, presets, and actions. Also, the <strong>order of actions</strong> and buttons matters, so we put high-priority things first to make them easier to find. Then we add built-in safeguards (e.g., Undo feature) to prevent irreversible errors.</p> <h2 id="supporting-in-emergencies" tabindex="-1">Supporting In Emergencies <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/stress/#supporting-in-emergencies">#</a></h2> <p>The most effective help during emergencies is to help people deal with the situation in a well-defined and effective way. That means being prepared for and designing an <strong>emergency mode</strong>. E.g. to activate instant alerts on emergency contacts, distribute pre-assigned tasks and establish line of communication.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.redcross.org.au/emergencies/prepare/get-prepared-app/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/stress/rediplan.jpg" alt="Designing For Stress And Emergency" width="1500" height="1596" loading="lazy"> </a> <figcaption><p><a href="https://www.redcross.org.au/emergencies/prepare/get-prepared-app/">Rediplan App</a> to prepare and act in case of emergencies.</p> </figcaption> </figure> <p><a href="https://www.redcross.org.au/emergencies/prepare/get-prepared-app/">Rediplan App</a> by Australian Red Cross is an emergency plan companion that encourages citizens to <strong>prepare their documents and belongings</strong> with a few checklists and actions — including key contracts, meeting places and medical information, all in one place.</p> <h2 id="just-enough-friction" tabindex="-1">Just Enough Friction <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/stress/#just-enough-friction">#</a></h2> <p>Not all stress is equally harmful though. As <a href="https://www.kryshiggins.com/optimal-onboarding-zone/">Krystal Higgins points out</a>, if there is not enough friction when onboarding new users and the experience is <strong>too passive</strong> or users are hand-held even through the most basic tasks, you risk that they won’t realize the <strong>personal value</strong> they gain from the experience and, ultimately, lose interest.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/0f262ec0-d0b4-c230-a24f-92ae8e353037.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/stress/optimal-user-onboarding-zone.png" alt="Bell Curve For Optimal User Onboarding" width="1500" height="861" loading="lazy"> </a> <figcaption><p>We need to find the sweet spot between value realization and friction to create experiences that keep users engaged. (Image credit: <a href="https://www.kryshiggins.com/optimal-onboarding-zone/">Krystal Higgins</a>)</p> </figcaption> </figure> <h2 id="design-and-test-for-stress-cases" tabindex="-1">Design And Test For Stress Cases <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/stress/#design-and-test-for-stress-cases">#</a></h2> <p><strong>Stress cases aren’t edge cases</strong>. We can’t predict the emotional state in which a user comes to our site or uses our product. A person looking for specific information on a hospital website or visiting a debt management website, for example, is most likely already stressed. Now, if the interface is overwhelming, it will only add to their cognitive load.</p> <p>Stress-testing your product is key to preventing this from happening. Set up an annual day to <strong>stress test your product</strong> and refine emergency responses. To check if fallbacks work as expected and if the current UX of the product helps people manage failures and exceptional situations well enough.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/stress/#wrapping-up">#</a></h2> <p>Emergencies will happen eventually — it’s just a matter of time. With good design, we can help <strong>mitigate risk and control damage</strong>, and make it hard to make irreversible mistakes. At its heart, that’s what good UX is exceptionally good at.</p> <h2 id="key-takeaways" tabindex="-1">Key Takeaways <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/stress/#key-takeaways">#</a></h2> <p>People can’t multi-task, especially in very stressful situations.</p> <ul> <li>Stress <strong>disrupts attention</strong>, memory, cognition, decision-making.</li> <li>Also, it’s <strong>difficult to prioritize</strong> and draw logical conclusions.</li> <li>Under stress, we rely on fast, intuitive judgments — not reasoning.</li> <li>It leads to instinctive responses based on <strong>established habits</strong>.</li> </ul> <p>Goal: Design flows that support focus and high accuracy.</p> <ul> <li>Start with better default settings, values, presets, actions.</li> <li><strong>High-priority first</strong>: order of actions and buttons matters.</li> <li>Break complex tasks down into a series of simple steps (10s–30s each).</li> <li>Add built-in <strong>safeguards</strong> to prevent irreversible errors (Undo).</li> </ul> <p>Shift users to single-tasking: ask for one thing at a time.</p> <ul> <li><strong>More simpler pages</strong> might work better than one complex page.</li> <li>Suggest a <strong>step-by-step plan of action</strong> to follow along.</li> <li>Consider, design and test flows for emergency responses ahead of time.</li> <li>Add emergency mode for <strong>instant alerts</strong> and task assignments.</li> </ul> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/stress/#useful-resources">#</a></h2> <ul> <li><a href="https://medium.com/design-bootcamp/ux-case-study-standby-17000867133c">Designing The SOS Emergency System</a>, by Ritik Jayy</li> <li><a href="https://medium.com/net-magazine/designing-for-crisis-9cab10b4c519">Designing For Crisis</a>, by Eric Meyer</li> <li><a href="https://medium.com/designing-services/designing-for-stressed-out-users-part-1-4489793dbe41">Designing For Stressed Out Users</a> (Series), by H Locke</li> <li><a href="https://uxpodcast.com/293-life-death-design-katie-swindler/">Designing For Stress</a> (Podcast), by Katie Swindler</li> <li><a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-activity-7167433494200066048-trWE">Designing For Edge Cases and Exceptions</a>, by yours truly</li> <li><a href="https://dfrlbook.com/">Design For Real Life</a>, by Sara Wachter-Boettcher, Eric Meyer</li> <li><a href="https://www.kryshiggins.com/optimal-onboarding-zone/">Optimal Stress Levels For Onboarding</a>, by Krystal Higgins</li> </ul> Thu, 20 Feb 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/stress/ How To Test And Measure Content In UX https://smart-interface-design-patterns.com/articles/content-testing/ <p>The goal of the content design is to <strong>reduce confusion and improve clarity</strong>. Yet often it’s difficult to pin point a problem as user feedback tends to be not specific enough. But: we can use a few simple techniques to assess how users understand and perceive content. Let’s take a look.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/b601c902-5d79-8cdb-a963-9deb1a55b846.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/content-testing/how-to-test-and-measure-content-ux.jpg" alt="Address doubts and concerns before they even happen" width="1500" height="1510" loading="lazy"> </a> <figcaption><p>As designers, we need to address doubts and concerns before they even happen. Perhaps even without FAQ. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/b601c902-5d79-8cdb-a963-9deb1a55b846.jpg">Quick mock-up</a>.</p> </figcaption> </figure> <p><strong>Content testing</strong> is a simple way to test clarity and understanding of the content on a page — be it a paragraph of text, a user flow, a dashboard, or anything in-between. Our goal is to understand how well users actually perceive the content that we present to them.</p> <p>It’s not only about being confused or not finding the right answer on a page, but also if our content <strong>clearly and precisely articulates</strong> what we actually want to communicate.</p> <h2 id="banana-testing" tabindex="-1">🍌 Banana Testing <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/content-testing/#banana-testing">#</a></h2> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/6c237a71-0d79-350a-6a8d-d224847cf25a.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/content-testing/banana-testing.jpg" alt="Banana Testing" width="1500" height="957" loading="lazy"> </a> <figcaption><p><a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/6c237a71-0d79-350a-6a8d-d224847cf25a.jpg">Banana testing</a>: replace all key actions with the word “Banana”, then ask users to suggest what it could be.</p> </figcaption> </figure> <p>A great way to test how well your design matches user’s <strong>mental model</strong> is the Banana testing. We replace all key actions with the word <em>“Banana”</em>, then ask users to suggest what each action could prompt.</p> <p>Not only does it tell you if key actions are <strong>understood immediately</strong> and if they are in the right place, but also if your icons are helpful, and if interactive elements such as links or buttons are perceived as such.</p> <h2 id="content-heatmapping" tabindex="-1">Content Heatmapping <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/content-testing/#content-heatmapping">#</a></h2> <figure class="c-article__image u-flow--xs"> <a href="https://userresearch.blog.gov.uk/2014/09/02/a-simple-technique-for-evaluating-content/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/content-testing/content-heatmapping.jpg" alt="Content Heatmapping" width="1500" height="1353" loading="lazy"> </a> <figcaption><p><a href="https://userresearch.blog.gov.uk/2014/09/02/a-simple-technique-for-evaluating-content/">Content heatmapping</a>, a simple technique to evaluate content and how well it performs.</p> </figcaption> </figure> <p>One reliable technique to assess content is <a href="https://userresearch.blog.gov.uk/2014/09/02/a-simple-technique-for-evaluating-content/">content heatmapping</a>. The way we would use it is by giving participants a task, then asking them to <strong>highlight things that are clear or confusing</strong>. We could define any other dimensions or style lenses as well: e.g. phrases that bring more confidence and less confidence.</p> <p>Then we map all highlights into a <strong>heatmap</strong> to identify patterns and trends. You could run it with print-outs in-person, but it could also happen in Figjam or in Miro remotely — as long as we have a highlighter feature.</p> <h2 id="run-moderated-testing-sessions" tabindex="-1">Run Moderated Testing Sessions <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/content-testing/#run-moderated-testing-sessions">#</a></h2> <p>These little techniques above help you discover content issues, but it <strong>doesn’t tell you what is missing</strong> in the content, and what doubts, concerns and issues users have with it. For that, we need to better uncover user needs.</p> <p>Too often, users would say that a page is “<strong>clear and well-organized</strong>”, but when asked specific questions, you notice that their understanding is vastly different from what we were trying to bring into spotlight.</p> <p>Such insights rarely surface in unmoderated sessions — it’s much more effective to <strong>observe behavior</strong> and ask questions on spot, in-person or remote.</p> <h2 id="test-concepts-not-words" tabindex="-1">Test Concepts, Not Words <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/content-testing/#test-concepts-not-words">#</a></h2> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/fdfc5235-be62-ed9b-6cb3-49efac147208.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/content-testing/test-concepts-not-words.jpg" alt="Removing doubts and concerns with front-loading" width="1500" height="987" loading="lazy"> </a> <figcaption><p>Removing doubts before they happen with front-loading key details. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/fdfc5235-be62-ed9b-6cb3-49efac147208.jpg">Large view</a>.</p> </figcaption> </figure> <p>Before testing, we need to know what we want to learn. First, write up a plan with goals, customers, questions, script. With them, don’t tweak words alone — broader is better. In the session, avoid speak-aloud as it’s usually not how people consume content. <strong>Ask questions and wait silently</strong>.</p> <p>After the task is completed, ask users to explain a product, flow and concepts to you. But: don’t ask them what they like, prefer, feel or think. And whenever possible, <strong>avoid the word “content”</strong> in testing: users often perceive it differently.</p> <h2 id="choosing-the-right-way-to-test" tabindex="-1">Choosing The Right Way To Test <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/content-testing/#choosing-the-right-way-to-test">#</a></h2> <p>There are plenty of different tests that you could use:</p> <ul> <li><strong>Bananas test</strong> 🍌<br> Replace key actions with “bananas”, ask to explain.</li> <li><strong>Cloze test</strong> 🕳️<br> Remove words from your copy, ask users to fill it in.</li> <li><strong>Reaction cards</strong> 🤔<br> Write up emotions on 25 cards, ask users to choose.</li> <li><strong>Card sorting</strong> 🃏<br> Ask users to group topics into meaningful categories.</li> <li><strong>Highlighting</strong> 🖍️<br> Ask users to highlight helpful or confusing words.</li> <li><strong>Competitive testing</strong> 🥊<br> Ask users to explain competitors’ pages.</li> </ul> <p>When choosing the right way to test, consider the following guidelines:</p> <ul> <li><strong>Do users understand?</strong> 💭<br> Interviews, highlighting, Cloze test</li> <li><strong>Do we match the mental model?</strong><br> Banana testing, Cloze test</li> <li><strong>What word works best?</strong><br> Card sorting, A/B testing, tree testing</li> <li><strong>Why doesn’t it work?</strong><br> Interviews, highlighting, walkthroughs</li> <li><strong>Do we know user needs?</strong><br> Competitive testing, process mapping</li> </ul> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/content-testing/#wrapping-up">#</a></h2> <p>In many tasks, there is rarely anything more impactful than the careful selection of words on a page. However, it’s not only the words alone that are being used, but the <strong>voice and tone</strong> that you choose to communicate to customers.</p> <p>Use the techniques above to test and measure how well people perceive content, but also check how they perceive the <strong>end-to-end experience</strong> on the site.</p> <p>Quite often, right words used wrongly on a key page can convey a wrong message or provide a suboptimal experience. Even although the rest of the product might perform remarkably well, <strong>if a user is blocked</strong> on a critical page, they will be gone before you even blink.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/content-testing/#useful-resources">#</a></h2> <ul> <li><a href="https://contentdesign.intuit.com/foundations/content-testing/">Practical Guide To Content Testing</a>, by Intuit,</li> <li><a href="https://www.nngroup.com/articles/testing-content-websites/">How To Test Content With Users</a>, by Kate Moran</li> <li><a href="https://medium.com/@jsaito/5-fun-ways-to-test-words-f132af5a8456">Five Fun Ways To Test Words</a>, by John Saito</li> <li><a href="https://userresearch.blog.gov.uk/2014/09/02/a-simple-technique-for-evaluating-content/">A Simple Technique For Evaluating Content</a>, by Pete Gale</li> </ul> Wed, 05 Feb 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/content-testing/ How To Design Complex Data Tables (+ Figma Kits) https://smart-interface-design-patterns.com/articles/complex-tables/ <p>Complex data tables are difficult to get right. They always come along with filters, sorting, customization options, batch actions, cell states, pagination, and a huge amount of data. Their purpose is to help people <strong>find insights</strong>, by comparing data points across rows and columns.</p> <p>Yet navigating a table is often <strong>painfully slow</strong> and frustrating, especially on mobile. Let’s explore practical techniques and useful Figma toolkits to help users <strong>find and compare the right data faster</strong>, without relying on endless horizontal scroll.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.linkedin.com/pulse/how-design-complex-data-tables-figma-kits-vitaly-friedman-spaue/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/complex-tables/how-to-design-complex-tables.jpg" alt="The different types of cells, from the (incredible!) Goldman Sachs Design System." width="1500" height="1253" loading="lazy"> </a> <figcaption><p>Architecting a complex data table is quite an adventure. Wonderful work by Goldman Sachs team.</p> </figcaption> </figure> <h2 id="setting-up-the-table-architecture" tabindex="-1">Setting Up The Table Architecture <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-tables/#setting-up-the-table-architecture">#</a></h2> <h3 id="first-design-a-feature-tree" tabindex="-1">✅ First, design a feature tree. <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-tables/#first-design-a-feature-tree">#</a></h3> <p>Before we dive into all the fine details, we need to first understand what features, states, and accessories we actually need. Slava Shestopalov has put together a <a href="https://www.smashingmagazine.com/2019/02/complex-web-tables/">tree of table features</a> — a practical overview of <strong>what can go into complex tables</strong>, along with all features, states, and accessories that might need to be considered in the design process.</p> <figure class="c-article__image u-flow--xs"> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5e56666e-aa1a-4dcf-8cf0-a2c49e466012/complex-web-table-article-table-02.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/complex-tables/tree-of-table-features.png" alt="A comprehensive tree of features for a data table. Neatly put together by Slava Shestopalov." width="1500" height="2053" loading="lazy"> </a> <figcaption><p>A <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5e56666e-aa1a-4dcf-8cf0-a2c49e466012/complex-web-table-article-table-02.png">comprehensive tree of table features</a>. Neatly put together by Slava Shestopalov.</p> </figcaption> </figure> <h3 id="decide-on-the-functionality-you-need" tabindex="-1">✅ Decide on the functionality you need. <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-tables/#decide-on-the-functionality-you-need">#</a></h3> <p>We start by observing, collecting, and prioritizing <strong>user needs</strong>. Based on them, we define a full set of complex functionality — such as <strong>drag-n-drop</strong>, resizing, reshuffling, or multi-sorting. These features will require separate accessibility considerations as all draggable controls must be keyboard-accessible due to <a href="https://intopia.digital/articles/wcag-2-2-is-here/">WCAG 2.2 AA requirements</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://designsystems.surf/design-systems/goldmansachs"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/complex-tables/types-of-cells.jpg" alt="The different types of cells, from the (incredible!) Goldman Sachs Design System." width="1500" height="971" loading="lazy"> </a> <figcaption><p>The different types of cells, from the (incredible!) <a href="https://designsystems.surf/design-systems/goldmansachs">Goldman Sachs Design System</a>.</p> </figcaption> </figure> <h3 id="define-your-table-cells" tabindex="-1">✅ Define your table cells. <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-tables/#define-your-table-cells">#</a></h3> <p>Then, we define the different types of table cells. Some of them will be available to everyone, others will have restrictions applied to them. So we discuss <strong>permissions and logic</strong>, such as read-only, comment-only, or editable.</p> <p>We explore filtering, sorting, and customization features — most notably, showing and hiding columns. We discuss sticky headers and columns. And for each of them, we set <strong>default values</strong>, presets, and templates.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/57dd4a2f-7f05-860a-f191-9f2e155959ef.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/complex-tables/types-of-data-cells.jpg" alt="The different types of data cells in action — from read-only to editable." width="1500" height="1673" loading="lazy"> </a> <figcaption><p>The different types of data cells in action — from read-only to editable.</p> </figcaption> </figure> <h3 id="next-interaction-design-and-accessibility" tabindex="-1">✅ Next, interaction design and accessibility. <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-tables/#next-interaction-design-and-accessibility">#</a></h3> <p>Eventually, we move to the fine little details of the data table design. Things like truncation, wrapping, stretching, and resizing rules. We look at <strong>interaction design</strong> with validation rules and error messages. Some tables might require very long technical titles or localization, so <strong>stress test your design</strong> with very long and very short titles — this might also require compact, comfortable, and condensed modes.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/87d69fa6-b5d4-17b6-3c7a-a259879fb623.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/complex-tables/dedicated-actions.png" alt="Data table designs with a dedicated Actions button might perform better than hover actions." width="1500" height="1142" loading="lazy"> </a> <figcaption><p>Data table designs with a dedicated “Actions” button might perform better than hover actions.</p> </figcaption> </figure> <p>Once we are there, <strong>consider accessibility</strong> — moving within the table with keyboard alone, but also supporting keyboard for drag'n'drop and navigation within the table. And: Whenever possible, you might want to try to <strong>avoid row hover actions</strong>. They often cause errors and rage clicks. Instead, use a standalone button (“Actions”) or few buttons on each row instead.</p> <h3 id="regroup-data-add-a-filter" tabindex="-1">✅ Regroup data, add a filter. <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-tables/#regroup-data-add-a-filter">#</a></h3> <p>For row actions, you might be better off with a <strong>bottom sheet</strong> (edit, delete, move). A helpful way to make the content more accessible is by re-grouping data from columns across <strong>multiple rows</strong> (<em>pivoting</em>).</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/8bd573dc-cc67-03b1-4fa6-1626507036e0.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/complex-tables/overlay-horizontal-stacking.png" alt="For nested filters, you might want to consider an overlay with horizontal stacking, instead of a tree." width="1500" height="902" loading="lazy"> </a> <figcaption><p>For nested filters, you might want to consider an <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/8bd573dc-cc67-03b1-4fa6-1626507036e0.png">overlay with horizontal stacking</a> instead of a tree.</p> </figcaption> </figure> <p>You could also combine columns within vertical accordions (stacked columns) and add a <strong>sticky filter</strong> in each column to help users navigate faster. Finally, if you do use pagination, show it above and below the data list.</p> <h3 id="think-about-data-alone-not-structure" tabindex="-1">✅ Think about data alone, not structure. <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-tables/#think-about-data-alone-not-structure">#</a></h3> <p>An exercise I always dive into is to <strong>think about the data alone</strong>, rather than its tabular structure. We explore how to aggregate data and perhaps span it across fewer columns. We show only what users really need, then <strong>show more on tap</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/9f4d54da-de72-9ffc-178a-aee87d5bcf66.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/complex-tables/context-menu.jpg" alt="Data table designs with a context menu." width="1500" height="1340" loading="lazy"> </a> <figcaption><p>Data table designs with a context menu often has discoverability issues. You will need an indicator or use a select dropdown instead.</p> </figcaption> </figure> <p>While doing so, try to leave out unnecessary data and details and <strong>eliminate repetition</strong>. For example, we could abbreviate dates, long labels, units of measure, and currency. Replace statuses and permissions with icons and badges.</p> <h2 id="adjusting-for-mobile" tabindex="-1">Adjusting For Mobile <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-tables/#adjusting-for-mobile">#</a></h2> <p>We often assume that customers expect data tables to appear exactly the same on mobile and on desktop. That’s not necessarily true. What they do expect is that <strong>features they heavily rely on</strong> for their work exist in all environments — but these features don’t have to work or look exactly the same.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.figma.com/@gs"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/complex-tables/row-column-vs-cards.png" alt="Row-column-data-tables are terribly inefficient on mobile — you might want to consider cards instead. Example: Goldman Sachs Design System." width="1500" height="902" loading="lazy"> </a> <figcaption><p>Row-column data tables are terribly inefficient on mobile — you might want to consider cards instead. Example: Goldman Sachs Design System.</p> </figcaption> </figure> <p>In general, <strong>row-column data tables are terribly inefficient</strong> on mobile — that’s where users often struggle, making mistakes and scrolling back and forth to make sure that they are looking at the right piece of data.</p> <h3 id="design-the-navigation-on-mobile" tabindex="-1">✅ Design the navigation on mobile. <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-tables/#design-the-navigation-on-mobile">#</a></h3> <p>We often assume that users need to rely on the entire data table to make decisions or find insights. But the nature of some tables might require a very different solution. For some tables, users <strong>might not need the entire table</strong> — they need to navigate between a few filtered rows or columns at a time.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/designing-a-complex-table-for-mobile-consumption-nom-7472f7b11fe6"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/complex-tables/support-navigation.png" alt="Allowing users to navigate the cells and rows in a table with a drop-down and cards on mobile" width="1500" height="818" loading="lazy"> </a> <figcaption><p>Support navigation within the cells and rows. By Joe Winter.</p> </figcaption> </figure> <p>In that case, you might need to <strong>support navigation</strong> <em>within</em> the table by helping users explore specificic data points faster. A common way to achieve that is via tabs or dropdown together with cards, as displayed in a <a href="https://uxdesign.cc/designing-a-complex-table-for-mobile-consumption-nom-7472f7b11fe6">case study by Joe Winter</a>.</p> <h3 id="allow-users-to-show-and-hide-columns" tabindex="-1">✅ Allow users to show and hide columns. <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-tables/#allow-users-to-show-and-hide-columns">#</a></h3> <p>It’s worth noting that users rarely navigate through all columns in the table. So let them show and hide columns, for example with a “Columns” button. There, let them also <strong>re-arrange, lock, and reset columns</strong>. You could use tabs above the table to change the view, or use tabs <em>within</em> the table to jump between columns.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/32096f67-39fc-b406-e068-677ac1ea9caf.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/complex-tables/navigate-columns.png" alt="Clever: Use tabs within the data table to navigate its columns. By Netty Konovalova." width="1500" height="890" loading="lazy"> </a> <figcaption><p>Clever: Use tabs within the data table to navigate its columns. By Netty Konovalova</p> </figcaption> </figure> <h2 id="data-tables-figma-kits" tabindex="-1">Data Tables Figma Kits <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-tables/#data-tables-figma-kits">#</a></h2> <p>Designing data tables in Figma from scratch is remarkably tedious and time-consuming. You can <strong>get off the ground with a few helpful kits</strong>, kindly shared and released by the community:</p> <ul> <li><a href="https://www.untitledui.com/blog/create-tables-in-figma">How To Design Data Tables In Figma (+ Figma Kit)</a>, by Jordan Hughes</li> <li><a href="https://www.figma.com/@gs">Goldman Sachs Data Grids UI Kit</a>, by Goldman Sachs</li> <li><a href="https://www.youtube.com/watch?v=Njf_xX0mPWs">Designing Tables In Figma With Real Data</a>, by Christine Vallaure</li> <li><a href="https://www.figma.com/community/plugin/735922920471082658/table-generator">Figma CSV Table Generator Plugin</a></li> <li><a href="https://www.figma.com/community/plugin/885838970710285271/table-creator">Table Creator Figma Plugin</a>, by Gavin McFarland</li> <li><a href="https://www.figma.com/community/plugin/1104128112873973808/table-builder">Table Builder Figma Plugin</a>, by Fabian Nart and Natasha Dudler</li> <li><a href="https://www.figma.com/community/file/1221164364557685509/reusable-tables">Reusable Dynamic Table Components</a>, by Natalia Brochero</li> <li><a href="https://www.figma.com/community/plugin/1137823695947414493/quick-table">Copy-Paste Data From CSV/Excel Figma Plugin</a></li> <li><a href="https://www.figma.com/community/file/1061557188660055783/data-table-v3-interactive">Interactive Data Table Figma Kit</a>, by Alvish Baldha</li> <li><a href="https://www.figma.com/community/file/1055899278824430819/table-design-system">Table Design System Figma Kit</a>, by Valeriya Desire</li> </ul> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-tables/#useful-resources">#</a></h2> <h3 id="designing-data-tables" tabindex="-1">Designing Data Tables <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-tables/#designing-data-tables">#</a></h3> <ul> <li><a href="https://www.smashingmagazine.com/2019/02/complex-web-tables/">Complex Data Table Features Tree</a>, by Slava Shestopalov</li> <li><a href="https://www.figma.com/@gs">Data Grids and Tables Figma Kits</a>, by Goldman Sachs</li> <li><a href="https://carbondesignsystem.com/components/data-table/usage/">Carbon Design System: Data Table</a></li> <li><a href="https://nordhealth.design/components/table/?example=complex">NordHealth Design System: Complex Tables</a></li> <li><a href="https://uxdesign.cc/designing-tables-for-reusability-490a3760533">Designing Tables For Reusability</a>, by Ada Rafalowicz and Havana Nguyen</li> <li><a href="https://coyleandrew.medium.com/designing-tables-79a655ca183f">Complex Tables Design Patterns</a>, by Andrew Coyle</li> <li><a href="https://tink.uk/how-screen-readers-navigate-data-tables/">How Screen Readers Navigate Data Tables</a>, by Léonie Watson</li> <li><a href="https://stephaniewalter.design/blog/essential-resources-design-complex-data-tables/">Enterprise UX: Data Tables</a>, by Stéphanie Walter</li> </ul> <h3 id="designing-data-tables-on-mobile" tabindex="-1">Designing Data Tables On Mobile <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-tables/#designing-data-tables-on-mobile">#</a></h3> <ul> <li><a href="https://edisondesignsystem.com/datagrid?tab=0">Complex Data Tables On Mobile</a>, by GE HealthCare</li> <li><a href="https://uxdesign.cc/designing-a-complex-table-for-mobile-consumption-nom-7472f7b11fe6">Designing A Complex Table For Mobile</a>, by Joe Winter</li> <li><a href="https://web.archive.org/web/20210118110157/https://shawnkelshaw.com/project/enterprise-user-interface-design-standards-complex-data-tables/">AT&amp;T Enterprise Table On Mobile</a>, by Douglas Kelshaw</li> <li><a href="https://medium.com/shopify-ux/lessons-from-building-mobile-friendly-accessible-data-tables-1e05c6924eaf">Shopify Data Tables On Mobile</a>, by Tetsuro Takara</li> <li><a href="https://www.uxmatters.com/mt/archives/2020/07/designing-mobile-tables.php">Designing Mobile Tables</a>, by Steven Hoober</li> </ul> <p>A <strong>huge thank you</strong> to all the contributors, authors, and designers who spend time and effort and energy into making these resources available for everyone to use! 👏🏼👏🏽👏🏾</p> Mon, 03 Feb 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/complex-tables/ Badges vs. Pills vs. Chips vs. Tags https://smart-interface-design-patterns.com/articles/badges-chips-tags-pills/ <p>Sometimes design conversations take slightly more time and effort than needed. One of the frequent conversations is circling around <strong>badges, pills</strong>, chips and tags.</p> <p><strong>How are they different?</strong> What purpose do they serve? Which ones do we need in our design system? And how to choose the right one? Well, let’s find out.</p> <figure class="c-article__image u-flow--xs"> <a href="https://zeroheight.com/6d2425e9f/p/62e25d-tag"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/badges-chips-tags-pills/badges-pills-chips-tags.jpg" alt="Badges vs. Pills vs. Chips vs. Tags" width="1500" height="2042" loading="lazy"> </a> <figcaption><p>A collection of badges and tags from <a href="https://zeroheight.com/6d2425e9f/p/62e25d-tag">Base design system</a>, by Uber.</p> </figcaption> </figure> <h3 id="badges-vs-tags" tabindex="-1">Badges vs. Tags <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/badges-chips-tags-pills/#badges-vs-tags">#</a></h3> <p>We distinguish between <strong>static and interactive</strong> UI components. Some of them communicate and visualize data, while others <strong>prompt actions</strong> — from navigation and selection to input and filtering. While they often appear very similar, to avoid confusion, we need them to be quite distinct, and easy to tell apart.</p> <h3 id="badges-are-static-labels" tabindex="-1">Badges Are Static Labels <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/badges-chips-tags-pills/#badges-are-static-labels">#</a></h3> <p><strong>Badges</strong> are always static components. They <strong>relay status and updates</strong> (e.g. draft, new, pending, -7%↘), they highlight changes and are subtle indicators for main content. As such, they aren’t used for navigation.</p> <figure class="c-article__image u-flow--xs"> <a href="https://zeroheight.com/6d2425e9f/p/62e25d-tag"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/badges-chips-tags-pills/categorized-badges.png" alt="Badges vs. Pills vs. Chips vs. Tags" width="1500" height="2042" loading="lazy"> </a> <figcaption><p>The different shades of badges: categorized by status, propagation, priority, sentiment and other attributes as part of the ongoing effort for <a href="https://medium.com/emplifi-design/badges-small-but-essential-ui-element-16699337948b">Emplifi Design System</a>. By Lukas Vilkus.</p> </figcaption> </figure> <h3 id="tags-can-be-static-or-interactive" tabindex="-1">Tags Can Be Static or Interactive <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/badges-chips-tags-pills/#tags-can-be-static-or-interactive">#</a></h3> <p><strong>Tags</strong>, on the other hand, can be static or interactive. Static tags show topics with keywords and labels (e.g. <em>AI</em>, <em>Accessibility</em>). Interactive tags are often used for links, <strong>filters</strong>, selection and actions.</p> <p>They come in many different flavors:</p> <ul> <li><strong>Display-only tags</strong> ← visually represent categories (keywords, labels, details).</li> <li><strong>Data tags</strong> ← numerical data, reading time, file size (e.g. PDF 262 KB).</li> <li><strong>Filter tags</strong> ← show active filters, with an option to remove and clear.</li> <li><strong>Selection tags</strong> ← filter content and input information (also called <em>chips</em> or <em>pills</em>).</li> </ul> <p><strong>Chips and pills</strong> are merely <strong>visual style conventions</strong> for interactive tags. Their naming comes from their appearance. As it happens, on rare occasions they are static, and that’s where the confusion with badges and static tags comes from.</p> <h2 id="design-systems-only-need-badges-and-tags" tabindex="-1">Design Systems Only Need Badges and Tags <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/badges-chips-tags-pills/#design-systems-only-need-badges-and-tags">#</a></h2> <p>While there is quite a bit of confusion about the difference between all these variants, design systems typically distinguish between 2 of them — <strong>static indicators</strong> (usually badges, pills, data tags) and <strong>interactive links or buttons</strong> (usually action/selection tags, filter tags, chips).</p> <p>For feedback indicators, notification counts and status updates, we use <strong>badges</strong>. For interactive indicators and filters that can be edited or removed, we use <strong>tags</strong> — which are also sometimes called <em>chips</em>. Of course often they function as radio buttons or checkboxes. And most of the time, that’s all you really need.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.linkedin.com/posts/adhamdannaway_designsystem-design-ux-activity-7097222903376613377-EplX/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/badges-chips-tags-pills/badges-tags.jpg" alt="Badges vs. Pills vs. Chips vs. Tags" width="1500" height="1221" loading="lazy"> </a> <figcaption><p>Badges are static, while tags can be static or interactive. <a href="https://www.linkedin.com/posts/adhamdannaway_designsystem-design-ux-activity-7097222903376613377-EplX/">Visualized by Adham Dannaway</a>.</p> </figcaption> </figure> <h2 id="design-distinct-styles-for-both-components" tabindex="-1">Design Distinct Styles For Both Components <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/badges-chips-tags-pills/#design-distinct-styles-for-both-components">#</a></h2> <p>Confusion comes when static and interactive components share the same or <strong>similar visual style</strong>. Don’t design non-interactive components to appear like buttons. And don’t design interactive components to appear similar to static labels.</p> <p>Also, <strong>prefer adjectives</strong> or nouns for non-interactive tags. Use 48×48px as a minimum touch target size on mobile. And ideally use at least 8px spacing between interactive elements to prevent mistaps.</p> <h2 id="avoid-generic-names" tabindex="-1">Avoid Generic Names <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/badges-chips-tags-pills/#avoid-generic-names">#</a></h2> <p>When naming these components, try to be as explicit as possible to avoid confusion down the line. “<strong>Filter tags</strong>” are more obvious than <em>“filters”</em> or generic <em>“tags”</em>.</p> <p>Also, “<strong>Status badges</strong>” are way more obvious than <em>“badges”</em> or <em>“pills”</em>. It should work for everyone — designers, engineers and end users — as long as static labels don’t look like interactive buttons, and the other way around.</p> <h2 id="badges-and-tags-in-design-systems" tabindex="-1">Badges and Tags in Design Systems <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/badges-chips-tags-pills/#badges-and-tags-in-design-systems">#</a></h2> <ul> <li><a href="https://cedar.rei.com/components/chip">Cedar</a> 👍</li> <li><a href="https://eds.gehealthcare.com/filter-tag?tab=0">General Electric</a></li> <li><a href="https://workbench.gusto.com/components/filtertag/">Gusto</a></li> <li><a href="https://www.designsystem.qld.gov.au/components/tags">Queensland</a></li> <li><a href="https://orbit.kiwi/components/information/badge/">Kiwi</a></li> <li><a href="https://horizon.servicenow.com/workspace/components/now-badge">ServiceNow</a> 👍</li> <li><a href="https://flow.skoda-brand.com/d/6aQMrmD6PhWL/web#/components/chip">Skoda</a></li> <li><a href="https://zeroheight.com/6d2425e9f/p/62e25d-tag">Uber</a> 👍</li> </ul> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/badges-chips-tags-pills/#useful-resources">#</a></h2> <ul> <li><a href="https://medium.com/emplifi-design/badges-small-but-essential-ui-element-16699337948b">Designing A System For Badges</a>, by Lukas Vilkus,</li> <li><a href="https://uxdesign.cc/design-system-dilemmas-similar-looks-different-functions-36a2f0e2dcbb">Design System Dilemmas: Badges</a>, by Dean Harrison</li> <li><a href="https://app.uxcel.com/lessons/anatomy-694">Guide To Chips and Badges</a>, by Uxcel</li> </ul> Fri, 31 Jan 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/badges-chips-tags-pills/ Combobox vs. Multiselect vs. Listbox https://smart-interface-design-patterns.com/articles/mastering-selection-combobox-listbox-more/ <p>So what's the difference between combobox, multiselect, listbox and dropdown? While all these UI components might appear similar, they serve different purposes. The choice often comes down to the <strong>number of available options</strong> and their visibility.</p> <p>Let's see how they differ, <strong>what purpose they serve</strong> and how to choose the right one — avoiding misunderstandings and wrong expectations along the way.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/fd22fa84-a2e6-4e4e-d0d7-f0803bc2cc59.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/mastering-selection-combobox-listbox-more/1.jpg" alt="A comparison of UI elements: Listbox, Combobox, Multiselect, and Dual Listbox, showcasing different selection functionalities." width="1500" height="1609" loading="lazy"> </a> <figcaption><p>And the confusion begins: Listbox, Combobox, Multiselect, Dual Listbox.</p> </figcaption> </figure> <h2 id="not-all-list-patterns-are-the-same" tabindex="-1">Not All List Patterns Are The Same <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/mastering-selection-combobox-listbox-more/#not-all-list-patterns-are-the-same">#</a></h2> <p>All the UI components highlighted above have exactly one thing in common — they support user's interactions with lists. However, they do so slightly differently.</p> <p>Let's take a look at each, one by one:</p> <ul> <li><strong>Dropdown</strong> → list is hidden until it's triggered.</li> <li><strong>Combobox</strong> → type to filter + select 1 option.</li> <li><strong>Multiselect</strong> → type to filter + select many options.</li> <li><strong>Listbox</strong> → all list options visible by default (+ scroll).</li> <li><strong>Dual listbox</strong> → move items between 2 listboxes.</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://watson.docplanner.design/latest/watson-web/components/combobox/usage-guidelines-L68K6G51"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/mastering-selection-combobox-listbox-more/2.jpg" alt="Watson design system with grouping inside of its combobox pattern." width="1500" height="1546" loading="lazy"> </a> <figcaption><p>Watson design system with grouping inside of its <a href="https://watson.docplanner.design/latest/watson-web/components/combobox/usage-guidelines-L68K6G51">combobox pattern</a>.</p> </figcaption> </figure> <p>In other words, <em>Combobox</em> combines a text input field with a dropdown list, so users can <strong>type to filter</strong> and select a single option. With <em>Multiselect</em>, users can select many options (often displayed as pills or chips).</p> <p><em>Listboxes</em> display <strong>all list options visible</strong> by default, often with scrolling. It's helpful when users need to see all available choices immediately. <em>Dual listbox</em> (also called <em>transfer list</em>) is a variation of a listbox that allows users to <strong>move items between two listboxes</strong> (left ↔ right), typically for bulk selection.</p> <h2 id="never-hide-frequently-used-options" tabindex="-1">Never Hide Frequently Used Options <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/mastering-selection-combobox-listbox-more/#never-hide-frequently-used-options">#</a></h2> <p>As mentioned above, the choice of the right UI component depends on <strong>2 factors</strong>: how many list options are available, and if all these options need to be visible by default. All lists could have tree structures, nesting and group selection, too.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.mongodb.design/component/combobox/design-docs"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/mastering-selection-combobox-listbox-more/3.jpg" alt="A dropdown menu showing product selection. Compass is selected, and Atlas is selected with two sub-options: Vector Search and Atlas CLI." width="1500" height="1454" loading="lazy"> </a> <figcaption><p><a href="https://www.mongodb.design/component/combobox/live-example">MongoDB design system</a> with nested filters and chips.</p> </figcaption> </figure> <p>There is one principle that I've been following for years for any UI component: <strong>never hide frequently used options</strong>. If users rely on a particular selection frequently, there is very little value in hiding it from them.</p> <p>We could either make it <strong>pre-selected</strong>, or (if there are only 2–3 frequently used options) show them as <a href="https://smart-interface-design-patterns.com/articles/badges-chips-tags-pills/"><strong>chips or buttons</strong></a>, and then show the rest of the list on interaction. In general, it's a good idea to always display popular options — even if it might clutter the UI.</p> <h2 id="how-to-choose-which" tabindex="-1">How To Choose Which? <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/mastering-selection-combobox-listbox-more/#how-to-choose-which">#</a></h2> <p>Not every list needs a complex selection method. For lists with <strong>fewer than 5 items</strong>, simple radio buttons or checkboxes usually work best. But if users need to select from a <strong>large list</strong> of options (e.g. 200+ items), combobox + multiselect are helpful because of the faster filtering (e.g. country selection).</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.nngroup.com/articles/listbox-dropdown/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/mastering-selection-combobox-listbox-more/4.jpg" alt="Matrix of options for multiselect and listboxes." width="1500" height="1353" loading="lazy"> </a> <figcaption><p>A <a href="https://www.nngroup.com/articles/listbox-dropdown/">matrix of options</a>, broken down by single- or multi-selection and static or scrollable view. By Anna Kaley, from NN/g.</p> </figcaption> </figure> <p><strong>Listboxes</strong> are helpful when people need to access <strong>many options at once</strong>, especially if they need to choose many options from that list as well. They could be helpful for frequently used filters.</p> <figure class="c-article__image u-flow--xs"> <a href="https://v5.mantine.dev/core/transfer-list/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/mastering-selection-combobox-listbox-more/5.png" alt="Dual list box used to transfer items from one place to another." width="1500" height="875" loading="lazy"> </a> <figcaption><p>Dual listbox in action: it can be very helpful when assigning tasks or permissions. That's why it's 'Transfer List'. Example from <a href="https://v5.mantine.dev/core/transfer-list/">Mantine</a>.</p> </figcaption> </figure> <p><strong>Dual listbox</strong> is often overlooked and ignored. But it can be very helpful for complex tasks, e..g bulk selection, or assigning roles, tasks, responsibilities. It's the only UI component that allows users to review their full selection list side-by-side with the source list before committing (also called <em>&quot;Transfer list&quot;</em>).</p> <p>In fact, dual listbox is often faster, more accurate and more accessible than <a href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/">drag-and-drop</a>.</p> <h2 id="usability-considerations" tabindex="-1">Usability Considerations <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/mastering-selection-combobox-listbox-more/#usability-considerations">#</a></h2> <p>One important note to keep in mind is that all list types need to support <strong>keyboard navigation</strong> (e.g., ↑/↓ arrow keys) for accessibility. Some people will almost always rely upon keyboard to select options once they start typing.</p> <figure class="c-article__image u-flow--xs"> <a href="https://watson.docplanner.design/latest/watson-web/components/combobox/usage-guidelines-L68K6G51"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/mastering-selection-combobox-listbox-more/6.jpg" alt="Keyboard navigation often in use with any type of lists." width="1500" height="1225" loading="lazy"> </a> <figcaption><p>Keyboard navigation is often in use with any kind of lists. Example: <a href="https://watson.docplanner.design/latest/watson-web/components/combobox/usage-guidelines-L68K6G51">Watson</a>.</p> </figcaption> </figure> <p>Beyond that:</p> <ul> <li>For lists with <strong>7+ options</strong>, consider adding &quot;<em>Select All</em>&quot; and &quot;<em>Clear All</em>&quot; functionalities to streamline user interaction.</li> <li>For lengthy lists with a combobox, <strong>expose all options</strong> to users on click / tap as otherwise they might never be seen,</li> <li>Most important, <strong>don't display non-interactive elements as buttons</strong> to avoid confusion — and don't display interactive elements as static labels.</li> </ul> <h2 id="wrapping-up-not-everything-is-a-dropdown" tabindex="-1">Wrapping Up: Not Everything Is A Dropdown <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/mastering-selection-combobox-listbox-more/#wrapping-up-not-everything-is-a-dropdown">#</a></h2> <p>Names matter. A <strong>vertical list of options</strong> is typically described as a &quot;dropdown&quot; — but often it's a bit too generic to be meaningful. <em>&quot;Dropdown&quot;</em> hints that the list is hidden by default. <em>&quot;Multiselect&quot;</em> implies multi-selection (checkbox) within a list. <em>&quot;Combobox&quot;</em> implies text input. And &quot;Listbox&quot; is simply a list of selectable items, visible at all times.</p> <p>The goal isn't to be consistent with the definitions above for the sake of it. But rather to <strong>align intentions</strong> — speak the same language when deciding on, designing, building and then using these UI components.</p> <p>It <strong>should work for everyone</strong> — designers, engineers and end users — as long as static labels don't look like interactive buttons, and radio buttons don't act like checkboxes.</p> <hr> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/mastering-selection-combobox-listbox-more/#useful-resources">#</a></h2> <ul> <li><a href="https://smart-interface-design-patterns.com/articles/autocomplete-ux/">Autocomplete: UX Guidelines</a>, by Vitaly Friedman</li> <li><a href="https://playbook.ebay.com/design-system/components/combobox">Combobox</a>, by eBay 👍</li> <li><a href="https://eui.elastic.co/docs/components/forms/selection/combo-box/">Combobox</a>, by Elastic</li> <li><a href="https://designsystem.elisa.fi/9b207b2c3/p/082dd3-combobox">Combobox</a>, by Elisa</li> <li><a href="https://www.mongodb.design/component/combobox/live-example">Combobox</a>, by MongoDB 👍</li> <li><a href="https://design.visa.com/components/combobox/">Combobox</a>, by Visa 👍</li> <li><a href="https://watson.docplanner.design/latest/watson-web/components/combobox/usage-guidelines-L68K6G51">Combobox</a>, by Watson (Docplanner)</li> <li><a href="https://doc.wikimedia.org/codex/latest/components/demos/combobox.html">Combobox</a>, by Wikimedia</li> <li><a href="https://garden.zendesk.com/components/combobox">Combobox</a>, by Zendesk</li> <li><a href="https://www.mongodb.design/component/combobox/design-docs">Multiselect (MongoDB Combobox Design Docs)</a>, by MongoDB 👍</li> <li><a href="https://doc.wikimedia.org/codex/latest/components/demos/multiselect-lookup.html">Multiselect Lookup</a>, by Wikimedia</li> <li><a href="https://vaadin.com/docs/latest/components/multi-select-combo-box">Multi-select Combo Box</a>, by Vaadin</li> <li><a href="https://design.visa.com/components/multiselect/">Multiselect</a>, by Visa</li> <li><a href="https://ant.design/components/transfer">Transfer (Listbox example)</a>, by Ant Design</li> <li><a href="https://hopper.workleap.design/components/Listbox">Listbox</a>, by Hopper</li> <li><a href="https://vaadin.com/docs/latest/components/list-box">List Box</a>, by Vaadin</li> <li><a href="https://design.visa.com/components/listbox/">Listbox</a>, by Visa</li> <li><a href="https://www.patternfly.org/components/dual-list-selector">Dual List Selector</a>, by Red Hat (PatternFly)</li> <li><a href="https://www.lightningdesignsystem.com/2e1ef8501/p/763763-dual-listbox">Dual Listbox</a>, by Salesforce (Lightning Design System)</li> <li><a href="https://v5.mantine.dev/core/transfer-list/">Transfer List</a>, by Mantine</li> <li><a href="https://dashlite.net/demo1/components/misc/dual-listbox.html">Dual Listbox</a>, by Dashlite</li> <li><a href="https://smart-interface-design-patterns.com/articles/badges-chips-tags-pills/">Badges vs. Pills vs. Chips vs. Tags</a>, by Vitaly Friedman</li> <li><a href="https://www.nngroup.com/articles/listbox-dropdown/">Listboxes vs. Dropdown Lists</a>, by Anna Kaley (NN/g)</li> </ul> Wed, 15 Jan 2025 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/mastering-selection-combobox-listbox-more/ Avoid Newsletter Pop-Ups, And What To Do Instead https://smart-interface-design-patterns.com/articles/harmful-newsletter-pop-ups/ <p><strong>Newsletter pop-ups</strong> are everywhere. You’ve just landed on a website, yet here it is, a shiny newsletter pop-up, asking for your email address for reminders, updates or an exclusive 15% coupon code. People hate it, businesses love it. But does it work? As it turns out, it’s complicated.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/time-to-kill-the-annoying-popups-c7430cf10c29?sk=v2%2F563cef7c-2e7d-45e8-9240-5f6a84b594cf"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/harmful-newsletter-pop-ups/time-to-remove-newsletter-pop-ups.jpg" alt="Time to remove newsletter pop-ups" width="1500" height="1440" loading="lazy"> </a> <figcaption><p>Often newsletter pop-ups are highly ineffective for businesses and frustrating to customers. By <a href="https://uxdesign.cc/time-to-kill-the-annoying-popups-c7430cf10c29?sk=v2%2F563cef7c-2e7d-45e8-9240-5f6a84b594cf">Michal Malewicz</a>.</p> </figcaption> </figure> <h2 id="the-many-shades-of-emails" tabindex="-1">The Many Shades Of Emails <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/harmful-newsletter-pop-ups/#the-many-shades-of-emails">#</a></h2> <p>According to <a href="https://venngage.com/blog/email-stats/">email statistics</a>, on average people have <strong>1.7–1.9 different email accounts</strong>. Some people have even more than 3 email accounts, ranging from private and work accounts to emails for newsletters and shopping.</p> <figure class="c-article__image u-flow--xs"> <a href="https://venngage.com/blog/email-stats/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/harmful-newsletter-pop-ups/best-time-to-send-newsletters-is-on-tuesdays.png" alt="Best time to send newsletters is on Tuesdays" width="1500" height="844" loading="lazy"> </a> <figcaption><p><a href="https://venngage.com/blog/email-stats/">Apparently</a>, best time to send email is on Tuesdays. Let’s see: I’'ve decided to break the rule for this one. <a href="https://venngage.com/blog/email-stats/">Large view</a>.</p> </figcaption> </figure> <p>They all <strong>differ significantly in opening rates</strong> and attention spans. And especially when it comes to private accounts, users tend to be more cautious and protective to avoid spam, scam and annoying promotional emails.</p> <p>That’s why for businesses, it’s remarkably difficult to get a <strong>first-class email address</strong> from customers unless they’ve developed at least <em>some</em> trust and confidence towards that brand.</p> <h2 id="disposable-and-temporary-emails" tabindex="-1">Disposable and Temporary Emails <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/harmful-newsletter-pop-ups/#disposable-and-temporary-emails">#</a></h2> <p>Of course the reason why businesses show a newsletter pop-up in the first place is to get leads. But what they are ultimately after isn’t just random email accounts, but rather <strong>getting first-class leads</strong> — email accounts that have high delivery rates, high opening rates, low bounce rates and high conversion.</p> <figure class="c-article__image u-flow--xs"> <a href="https://temp-mail.org/en/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/harmful-newsletter-pop-ups/temporary-disposable-email-service-TempMail.jpg" alt="Temporary, disposable email service TempMail" width="1500" height="1229" loading="lazy"> </a> <figcaption><p>One of the many: <a href="https://temp-mail.org/en/">TempMail</a> is a popular disposable email service.</p> </figcaption> </figure> <p>Most of the time, that’s the exact opposite of what newsletter pop-ups bring. Many people are hesistant to give away a “good” email address, so they leave an email that they hardly ever use. And some audiences always use <strong>temporary or disposable</strong> email services like <a href="https://temp-mail.org/">Temp-Mail.org</a> — just to get a coupon code and avoid all the marketing emails.</p> <p>The outcome is not very surprising: many email lists are overflown with <strong>fake, disposable, unusable leads</strong>. Even worse, at a certain scale, they are expensive to keep, and due to high bounce crates, can decrease email deliverability.</p> <h2 id="ask-for-email-when-it-matters-to-users" tabindex="-1">Ask For Email When It Matters To Users <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/harmful-newsletter-pop-ups/#ask-for-email-when-it-matters-to-users">#</a></h2> <p>How do we solve it? When it comes to newsletters, our task is to <strong>find the right timing</strong> when customers care <strong>most</strong> about the quality and accuracy of their email address. It never happens on the homepage, and rarely on category pages. It never happens on search results pages or support pages either.</p> <p>For users to care, they must feel at least somewhat invested in whatever the company is offering. And, most importantly, they should recognize the value that leaving a <em>“good”</em> email address would bring to them.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/ab057f83-932d-d52c-6670-778b604fc202.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/harmful-newsletter-pop-ups/time-to-remove-newsletter-pop-ups-2.jpg" alt="Time to remove newsletter pop-ups" width="1500" height="878" loading="lazy"> </a> <figcaption><p>An example of integrated newsletter box on a product page. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/ab057f83-932d-d52c-6670-778b604fc202.jpg">Large view</a>.</p> </figcaption> </figure> <p>Typically it happens on 5 types of pages:</p> <p>📣 <strong>Promotion pages</strong><br> “We’ll send a confirmation message to that email”.</p> <p>🍎 <strong>Product pages</strong><br> “Leave email and check out with coupon applied”.</p> <p>🎟️ <strong>Sales page</strong><br> “Get notified about sales and re-stocked items”.</p> <p>💳 <strong>Final checkout step</strong><br> “Review your address for confirmation email.”</p> <p>🎉 <strong>Purchase confirmation page</strong><br> “Didn’t get a confirmation? Edit your email.”</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/harmful-newsletter-pop-ups/#wrapping-up">#</a></h2> <p>Sprinkle newsletter boxes across these pages and measure impact. Track not just the list growth, but bounce rates, opening rates and conversion. Your goal is to be at least close to the email <a href="https://mailchimp.com/resources/email-marketing-benchmarks/">opening rate of 28–35%</a>, which is a standard goal across industries.</p> <p>Don’t forget to <strong>clean up temporary emails from your list</strong> — some businesses aren’t aware how expensive non-existent leads can be. You might be surprised how effective a simple change like that can be.</p> <p>It’s <strong>great for customers and for businesses</strong> — without all the frustrations newsletter sign-up pop-ups bring along.</p> Tue, 18 Jun 2024 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/harmful-newsletter-pop-ups/ 2-Page Login Pattern, And How To Fix It https://smart-interface-design-patterns.com/articles/2-page-login-pattern/ <p>Why do we see <strong>login forms split into multiple screens</strong> everywhere? Instead of typing email and password, we have to type email, move to the next page, and then type password there. This seems to be inefficient, to say the least.</p> <p>Let’s see why login forms are split across screens, what problem it solves and how to design a better experience for <a href="https://www.youtube.com/watch?v=3mwZztmGgbE">better authentication UX</a> (video).</p> <h2 id="the-problem-with-login-forms" tabindex="-1">The Problem With Login Forms <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/2-page-login-pattern/#the-problem-with-login-forms">#</a></h2> <p>If there is one thing we’ve learned over the years in UX, it’s that designing for people is hard. This applies to login forms as well. <strong>People are remarkably forgetful</strong>. They often forget what email they signed up with, or what service the signed in with last time (Google, Twitter, Apple etc.)</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/static/img/blog/2-page-login-pattern/login-options.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/2-page-login-pattern/login-options.png" alt="Login options are numerous" width="1500" height="1531" loading="lazy"> </a> <figcaption><p>One of the many: plenty of login options to choose from, and people usually don't remember their last choice.</p> </figcaption> </figure> <p>One idea is to remind customers what they've signed in with last time, and perhaps make it a <strong>default option</strong> — however, it reveals directly what user’s account was, which might be a privacy or security issue:</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/static/img/blog/2-page-login-pattern/spectrum.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/2-page-login-pattern/spectrum.jpg" alt="Login options are numerous" width="1500" height="885" loading="lazy"> </a> <figcaption><p>Highlighting what a user has signed in with last time. An example from Spectrum (no longer available). <a href="https://smart-interface-design-patterns.com/articles/2-page-login-pattern/2-page-login-pattern/spectrum.jpg">Large view</a>.</p> </figcaption> </figure> <p>What if instead of showing <em>all</em> options to all customers all the time, we <strong>ask for email first</strong>, and then look up what service they used las time, and redirect customers to the right place automatically? Well, that’s exactly the idea behind <strong>2-page logins</strong>.</p> <h2 id="meet-2-page-logins" tabindex="-1">Meet 2-Page-Logins <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/2-page-login-pattern/#meet-2-page-logins">#</a></h2> <p>You might have seen them already. If a few years ago most login forms asked for email and password on one page, these days it’s more common to ask <strong>only for email first</strong>. When the user chooses to continue, the form will ask for password, in a separate step. Brad <a href="https://bradfrost.com/blog/post/dont-get-clever-with-login-forms/">explores some problems</a> of this pattern.</p> <figure class="c-article__image u-flow--xs"> <a href="https://bradfrost.com/blog/post/dont-get-clever-with-login-forms/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/2-page-login-pattern/shopify.png" alt="Shopify login, asking only for email" width="1500" height="1500" loading="lazy"> </a> <figcaption><p>2-page-login at Shopify: email first, the rest later. Image source: <a href="https://bradfrost.com/blog/post/dont-get-clever-with-login-forms/">Brad Frost</a></p> </figcaption> </figure> <p>A common reason for splitting login form across pages is <strong>Single Sign-On (SSO) authentication</strong>. Large companies typically use SSO for corporate sign-ins of their employees. With it, employees only log in once every day and only use one set of credentials, which improves enterprise security.</p> <h2 id="the-ux-intricacies-of-single-sign-on-sso" tabindex="-1">The UX Intricacies of Single Sign-On (SSO) <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/2-page-login-pattern/#the-ux-intricacies-of-single-sign-on-sso">#</a></h2> <p>SSO also helps with <strong>regulatory compliance</strong>, and it’s much easier to provision users with appropriate permissions, and revoke them later at once. So if an employee leaves, all their accounts and data can be deleted at once.</p> <p>To <strong>support both business customers and private customers</strong>, companies use 2-step-login. Users need to type in their email first, then the validator checks what provider the email is associated with, and redirects users there.</p> <p><a href="https://joshwayne.com/posts/two-page-login/">Users rarely love this experience</a>. Sometimes they have multiple accounts (private and business) with one service. Also, 2-step-logins often <strong>break autofill and password managers</strong>. And for most users, login/pass is way faster than 2-step-login.</p> <p>Of course typically there are <strong>dedicated corporate login pages</strong> for employees to sign in, but they often head directly to Gmail, Figma etc. instead, and try to sign in there. However, they won’t be able to log in as they must sign in through SSO.</p> <p>Bottom line: the pattern works well for SSO users, but for non-SSO users it results in a <strong>frustrating UX</strong>.</p> <h2 id="alternative-conditional-reveal-of-sso" tabindex="-1">Alternative: Conditional Reveal of SSO <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/2-page-login-pattern/#alternative-conditional-reveal-of-sso">#</a></h2> <p>There is a <strong>way to work around</strong> these challenges (see the image below). We could use a <strong>single page look-up</strong> with email and password input fields as a default. Once a user has typed in their email, we detect if the SSO authentication is enabled.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-activity-7203698969481265152-ztv3"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/2-page-login-pattern/sso-enabled.png" alt="An alternative: show email and password by default at first." width="1500" height="1548" loading="lazy"> </a> <figcaption><p>An alternative: show email and password by default at first. <a href="https://smart-interface-design-patterns.com/static/img/blog/2-page-login-pattern/sso-enabled.png">Large view</a> (+ <a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-activity-7203698969481265152-ztv3">video preview</a>).</p> </figcaption> </figure> <p>If Single Sign-On (SSO) is <strong>enabled for that email</strong>, we show a Single Sign-On option and default to it. We could also make the the password field optional or disabled.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-activity-7203698969481265152-ztv3"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/2-page-login-pattern/sso-disabled.png" alt="An alternative: show email and password by default at first." width="1500" height="1750" loading="lazy"> </a> <figcaption><p>An alternative: show email and password by default at first. <a href="https://smart-interface-design-patterns.com/static/img/blog/2-page-login-pattern/sso-disabled.png">Large view</a> (+ <a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-activity-7203698969481265152-ztv3">video preview</a>).</p> </figcaption> </figure> <p>If <strong>SSO isn’t enabled</strong> for that email, we proceed with the regular email/password login. Not much hassle, but saves trouble both for private and business accounts.</p> <h2 id="key-takeaways" tabindex="-1">Key Takeaways <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/2-page-login-pattern/#key-takeaways">#</a></h2> <p>🤔 People often forget what email they signed up with.<br> 🤔 They also forget auth service they signed in with.<br> 🤔 Companies use Single Sign-On (SSO) for corporate sign-in.<br> 🤔 Individual accounts still need email and password for login.<br> ✅ 2-step login: ask for email, then redirect to the right service.</p> <p>✅ 2-step-login replaces “social” sign-in for repeat users.<br> ✅ It directs users, rather than giving them roadblocks.<br> 🤔 Users still keep forgetting the email they signed in with.<br> 🤔 Sometimes users have multiple accounts with 1 service.<br> 🚫 2-step-logins often break autofill and password managers.<br> 🚫 For most users, login/pass is way faster than 2-step-login.</p> <p>✅ Better: start with one single page with login and password.<br> ✅ As users type their email, detect if SSO is enabled for them.<br> ✅ If it is, reveal an SSO-login option, and set a default to it.<br> ✅ Otherwise proceed with the regular password login.<br> ✅ If users must use SSO, disable password field — don’t hide it.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/2-page-login-pattern/#wrapping-up">#</a></h2> <p>Personally I haven’t tested the approach but it might be a <strong>good alternative to 2-page logins</strong> — both for SSO and non-SSO users. Keep in mind though that SSO authentication <em>might</em> or <em>might not</em> require a password, as sometimes login happens via Yubikey or Touch-ID or third parties (e.g. OAuth).</p> <p>Also, eventually users will be locked out: it’s just a matter of time. So do use <strong>magic links</strong> for password recovery or access recovery, but don’t mandate it as a regular login option. Switching between applications is slow and causes mistakes. Instead, nudge users to enable 2FA: it’s both usable and secure.</p> <p>And most importantly: <strong>test your login flow</strong> with the tools that your customers rely on. You might be surprised how broken their experience is if they rely on password managers or security tools to log in. Good luck, everyone!</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/2-page-login-pattern/#useful-resources">#</a></h2> <ul> <li><a href="https://joshwayne.com/posts/two-page-login/">When To Use A Two-Page Login</a>, by Josh Wayne</li> <li><a href="https://bradfrost.com/blog/post/dont-get-clever-with-login-forms/">Don’t Get Clever With Login Forms</a>, by Brad Frost</li> <li><a href="https://www.twilio.com/en-us/blog/why-username-and-password-on-two-different-pages">Why Are Email And Password On Two Different Pages?</a>, by Kelley R.</li> <li><a href="https://www.linkedin.com/pulse/six-simple-steps-better-authentication-ux-vitaly-friedman/">Six Simple Steps To Better Authentication UX</a>, by yours truly</li> </ul> Tue, 11 Jun 2024 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/2-page-login-pattern/ Hidden vs. Disabled In UX https://smart-interface-design-patterns.com/articles/hidden-vs-disabled/ <p>Both <strong>hiding and disabling features can be utterly confusing</strong> to users. And for both, we need very, very good reasons. Let’s take a closer look at what we need to consider when it comes to hiding and disabling — and possible alternatives that help enhance the UX.</p> <h2 id="show-whats-needed-declutter-the-rest" tabindex="-1">Show What’s Needed, Declutter The Rest <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/hidden-vs-disabled/#show-whats-needed-declutter-the-rest">#</a></h2> <p>You’ve probably been there before: Should you hide or disable a feature? When we hide a feature, we risk <strong>hurting discoverability</strong>. When we disable it without any explanation, we risk that users get frustrated. So, what’s the best way to design for those instances when some options might be irrelevant or unavailable to users?</p> <figure class="c-article__image u-flow--xs"> <a href="https://files.smashing.media/articles/hidden-vs-disabled-ux/1-hidden-vs-disabled.jpeg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/hidden-vs-disabled/hidden-vs-disabled.jpg" alt="Hidden vs. disabled features in UX" width="1500" height="1630" loading="lazy"> </a> <figcaption><p>To hide or not to hide? There are very good reasons for hiding or disabling features and options for a user. But we need to be careful when doing so to not harm the UX.</p> </figcaption> </figure> <p>As a rule of thumb, disable if you want the user to know a feature exists but is unavailable. Hide if the value shown is currently irrelevant and can’t be used. But <strong>never hide buttons or key filters by default</strong> as users expect them to persist.</p> <p>Unlike hidden features, disabled features can help users learn the UI, e.g., to <strong>understand the benefits of an upgrade</strong>. So, instead of removing unavailable options or buttons, consider disabling them and allowing the user to “Hide all unavailable options.” Be sure to explain why a feature is disabled and also how to re-enable it.</p> <p>Another thing to watch out for: When we allow users to switch between showing and hiding a feature, we also need to ensure the switch doesn’t cause any <strong>layout shifts</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://carbondesignsystem.com/patterns/disabled-states/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/hidden-vs-disabled/disabled-state.jpg" alt="Hidden vs. disabled features in UX" width="1500" height="754" loading="lazy"> </a> <figcaption><p><a href="https://carbondesignsystem.com/patterns/disabled-states/">Disabled state</a> in Carbon Design System, with variations for ready-only, default disabled and hidden.</p> </figcaption> </figure> <p>For both hiding and disabling, we need very thorough considerations of available alternatives, e.g., enabled buttons, read-only state, better empty states, hide/reveal accordions, error messages, and customization. We need to <strong>show what’s needed and de-clutter the rest</strong>.</p> <p>Whenever possible, I try to keep buttons and features in their default state — <strong>enabled</strong>, accessible, and legible. When a user interacts with that feature, we can explain why they can’t use it, how to enable it, and how to keep it enabled. Possible exceptions are confirmation codes and loading/processing states.</p> <h2 id="hiding-vs-disabling-roadmap" tabindex="-1">Hiding vs. Disabling Roadmap <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/hidden-vs-disabled/#hiding-vs-disabling-roadmap">#</a></h2> <p>As Sam Salomon <a href="https://solomon.io/hide-or-disable/">suggests</a>, if you’re unsure whether hiding or disabling is the best option for your use case, ask yourself the following question: “<strong>Will a given user ever be able to interact with this element?</strong>” Depending on your answer, follow the steps below.</p> <p><strong>✅ Yes</strong></p> <p>→ <strong>Disable it</strong> (as disabled buttons or read-only state).<br> ↳ For temporary restrictions or filter incompatibility.<br> ↳ When a value or status is relevant but not editable.<br> ↳ When an action isn’t available yet (e.g., “Export in progress…”).</p> <p><strong>🚫 No</strong></p> <p>→ <strong>Hide it</strong> (remove from a toolbar, collapse in accordion).<br> ↳ E.g., due to permissions, access controls, safety, and security.<br> ↳ For inaccessible features: e.g., admin buttons, overrides.<br> ↳ Hide such controls by default and reveal them once a condition is met.</p> <h2 id="key-takeaways" tabindex="-1">Key Takeaways <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/hidden-vs-disabled/#key-takeaways">#</a></h2> <ul> <li><strong>Hiding important features</strong> hurts their discoverability.</li> <li><strong>Disabling features</strong> is frustrating without an explanation.</li> <li>But some options might be <strong>irrelevant/unavailable to users</strong>.</li> <li>Users might expect a feature to exist but won’t find it.</li> <li>We need to show what’s needed and de-clutter the rest.</li> <li>Avoid <strong>disruptive layout shifts</strong> as you show and hide features.</li> <li><strong>Don’t remove unavailable options</strong> or buttons automatically.</li> <li>Instead, disable them and allow it to “Hide all unavailable options.”</li> <li>Allow users to hide sections with a lot of disabled functionality.</li> <li><strong>Explain why a feature is disabled</strong> and how to re-enable it.</li> </ul> <h2 id="hidden-vs-disabled-in-design-systems" tabindex="-1">Hidden vs. Disabled In Design Systems <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/hidden-vs-disabled/#hidden-vs-disabled-in-design-systems">#</a></h2> <p>The design systems below provide useful <strong>real-world examples</strong> of how products design their hidden and disabled states.</p> <ul> <li><a href="https://carbondesignsystem.com/patterns/disabled-states/">Carbon</a> (disabled state)</li> <li><a href="https://carbondesignsystem.com/patterns/read-only-states-pattern/">Carbon</a> (read-only state)</li> <li><a href="https://www.foundations.unity.com/fundamentals/ux-essentials">Unity</a></li> <li><a href="https://dsp.demo.vaadin.com/components/actions/button">Vaadin</a></li> <li><a href="https://experience.sap.com/fiori-design-web/ui-element-states/#hidden">SAP</a></li> <li><a href="https://ux.folio.org/docs/guidelines/ux-patterns/hiding-vs-disabling-elements-ux-pattern/">Motif</a></li> <li><a href="https://soul.emplifi.io/latest/patterns/patterns/disabled-states-NpPW6TcE">Emplifi</a></li> </ul> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/hidden-vs-disabled/#useful-resources">#</a></h2> <ul> <li> <p><a href="https://adamsilver.io/blog/the-problem-with-disabled-buttons-and-what-to-do-instead/">Disabled Buttons And What To Do Instead</a>, by Adam Silver</p> </li> <li> <p><a href="https://uxpsychology.substack.com/p/hidden-vs-disabled-states">Hidden vs. Disabled States</a>, by Maria Panagiotidi</p> </li> <li> <p><a href="https://css-tricks.com/making-disabled-buttons-more-inclusive/">Making Disabled Buttons Inclusive</a>, by Sandrina Pereira</p> </li> <li> <p><a href="https://solomon.io/hide-or-disable/">Hide or Disable</a>, by Sam Solomon</p> </li> <li> <p><a href="https://uxknowledgebase.com/the-disabled-state-in-ui-design-8c091d72868">The Disabled State In UI Design (Sketchnotes)</a>, by Krisztina Szerovay</p> </li> <li> <p><a href="https://www.smashingmagazine.com/2021/08/frustrating-design-patterns-disabled-buttons/">Usability Pitfalls of Disabled Buttons</a>, by yours truly Vitaly Friedman</p> </li> <li> <p><a href="https://uxdesign.cc/why-your-design-team-hates-disabled-features-1c7ef6bfdc03">Alternative Design Patterns For Disabled Features</a>, by Katie Jacquez</p> </li> <li> <p><a href="https://www.smashingmagazine.com/2021/07/frustrating-design-patterns-broken-frozen-filters/">Designing Filters UX That Works</a>, by yours truly Vitaly Friedman</p> </li> <li> <p><a href="https://www.carletondesign.com/2023/06/15/disabled-buttons/">UI Traps: Disabled Buttons and Inputs</a>, by James Carleton</p> </li> </ul> Wed, 29 May 2024 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/hidden-vs-disabled/ Why Designers Aren’t Understood https://smart-interface-design-patterns.com/articles/business-language-vs-ux-language/ <p>As designers, especially in large enterprises, we often might feel <strong>misunderstood and underappreciated</strong>. It might feel like every single day you have to fight for your users, explain yourself and defend your work. It’s unfair, exhausting, painful and frustrating.</p> <p>Let’s explore how to present design work, <strong>explain design decisions</strong> and get stakeholders on your side — and speak the language that other departments understand.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/67fe89f6-0ddd-cf8d-3174-b2130cb9c176.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/business-language-vs-ux-language/business-language-vs-ux-language.jpg" alt="Business language and design language are often misaligned. That’s why designers are often not understood" width="1500" height="1919" loading="lazy"> </a> <figcaption><p>Business language and design language are often misaligned. That’s why designers are often not understood. <a href="https://smart-interface-design-patterns.com/articles/business-language-vs-ux-language/business-language-vs-ux-language/business-language-vs-ux-language.jpg">Large view</a>.</p> </figcaption> </figure> <p>As designers, we might feel slightly frustrated by the language that often dominates business meetings. As Jason Fried <a href="https://www.linkedin.com/posts/jason-fried_corporate-language-is-filled-with-metaphors-activity-7143328615512875008-ceUx/">has noted</a>, corporate language is filled with metaphors of fighting. Companies “conquer” the market, they “capture” mindshare, they “target” customers, they “destroy” the competition, they want to attract more “eye-balls, get users “hooked, and increase “life-time value.</p> <p>Designers, on the other hand, don’t speak in such metaphors. We speak of how to “reduce” friction, “improve” consistency, “empower” users, “enable and help” users, “meet” their expectations, “bridge the gap”, “develop empathy”, understand “user needs, design an “inclusive” experience.</p> <p>In many ways, these words are the direct opposite of the metaphors commonly used in corporate environments and business meetings. So no wonder that our beliefs and principles might feel <strong>misunderstood and underappreciated</strong>. A way to solve is to be deliberate when choosing words you use in the big meeting. In fact, it’s all about speaking the right language.</p> <h2 id="speaking-the-right-language" tabindex="-1">Speaking The Right Language <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/business-language-vs-ux-language/#speaking-the-right-language">#</a></h2> <p>As designers, we often use <strong>design-specific terms</strong>, such as consistency, friction and empathy. Yet to many managers, these attributes don’t map to any business objectives at all, often leaving them utterly confused about the actual real-life impact of our UX work.</p> <p>One way out that changed everything for me is to <strong>leave UX vocabulary at the door</strong> when entering a business meeting. Instead, I try to explain design work through the lens of the business, often rehearsing and testing the script ahead of time.</p> <p>When presenting design work in a big meeting, I try to be <strong>very deliberate and strategic</strong> in the choice of the words I’m using. I won’t be speaking about attracting “eye-balls” or getting users “hooked”. It’s just not me. But I won’t be speaking about reducing “friction” or improving “consistency” either.</p> <p>Instead, <strong>I tell a story</strong>.</p> <p>A story that <strong>visualizes how our work helps the business</strong>. How design team has translated business goals into specific design initiatives. How UX can reduce costs. Increase revenue. Grow business. Open new opportunities. New markets. Increase efficiency. Extend reach. Mitigate risk. Amplify word of mouth.</p> <p>And how we’ll measure all that huge impact of our work.</p> <p>Typically, it’s broken down into eight sections:</p> <p>🎯 <strong>Goals</strong> ← Business targets, KRs we aim to achieve.<br> 💥 <strong>Translation</strong> ← Design initiatives, iterations, tests.<br> 🕵️ <strong>Evidence</strong> ← Data from UX research, pain points.<br> 🧠 <strong>Ideas</strong> ← Prioritized by an impact/effort-matrix.<br> 🕹 <strong>Design work</strong> ← Flows, features, user journeys.<br> 📈 <strong>Design KPIs</strong> ← How we’ll measure/report success.<br> 🐑 <strong>Shepherding</strong> ← Risk management, governance.<br> 🔮 <strong>Future</strong> ← What we believe are good next steps.<br></p> <h2 id="key-takeaways" tabindex="-1">Key Takeaways <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/business-language-vs-ux-language/#key-takeaways">#</a></h2> <p>🤔 Businesses rarely understand the impact of UX.<br> 🤔 UX language is overloaded with <strong>ambiguous terms</strong>.<br> 🤔 Business can’t support confusing initiatives.<br> ✅ Leave UX language and UX jargon at the door.<br> ✅ Explain UX work through the <strong>lens of business goals</strong>.<br></p> <p>🚫 Avoid “consistency”, “empathy”, “simplicity”.<br> 🚫 Avoid “cognitive load”, “universal design”.<br> 🚫 Avoid “lean UX”, “agile”, “archetypes”, “JTBD”.<br> 🚫 Avoid “stakeholder management”, “UX validation”.<br> 🚫 Avoid abbreviations: HMW, IxD, PDP, PLP, WCAG.<br></p> <p>✅ Explain how you’ll measure success of your work.<br> ✅ Speak of <strong>business value, loyalty</strong>, abandonment.<br> ✅ Show risk management, compliance, governance.<br> ✅ Refer to cost reduction, efficiency, growth.<br> ✅ Present accessibility as industry-wide best practice.<br></p> <p>Next time you walk in a meeting, <strong>pay attention to your words</strong>. Translate UX terms in a language that other departments understand. It might not take long until you’ll see support coming from everywhere — just because everyone can now clearly see how your work helps them do their work better.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/business-language-vs-ux-language/#useful-resources">#</a></h2> <ul> <li><a href="https://www.secondwavedive.com/books">Business Thinking For Designers</a>, by Ryan Rumsey</li> <li><a href="https://d.mba/">Business For Designers (d.mba)</a>, by Alen Faljic</li> <li><a href="https://www.linkedin.com/posts/jason-fried_corporate-language-is-filled-with-metaphors-activity-7143328615512875008-ceUx/">Corporate Language Metaphors</a>, by Jason Fried</li> <li><a href="https://twitter.com/jmspool/status/961804803440562176">Five Things That Business Cares About</a>, by Jared Spool</li> <li><a href="https://twitter.com/andybudd/status/1435199755773173761">Direct Impact Of Design Work</a>, by 👨🏻‍💻 Andy Budd</li> <li><a href="https://givegoodux.com/cut-the-bullshit-its-time-to-end-the-tyranny-of-ux-terminology/">It’s Time To End The Tyranny Of UX Terminology</a>, by Joe Natoli</li> <li><a href="https://www.notably.ai/blog/how-to-use-storytelling-in-ux-research-reports">How To Use Storytelling In UX Research</a>, by Allison Grayce Marshall</li> <li><a href="https://smart-interface-design-patterns.com/articles/defend-design-decisions/">How To Defend Your Design Decisions</a>, by Vitaly Friedman</li> </ul> <hr> <p>You can find more details on <strong>UX and usability</strong> in <a href="https://smart-interface-design-patterns.com/">Smart Interface Design Patterns</a> 🍣 — with a live UX training that’s coming up in 2024. Use the code <a href="https://smart-interface-design-patterns.com/">PUMPKIN</a> to <a href="https://smart-interface-design-patterns.com/">save 15% today</a>. <a href="https://www.youtube.com/watch?v=jhZ3el3n-u0">Free preview</a>.</p> Tue, 28 May 2024 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/business-language-vs-ux-language/ Sustainable Design Patterns For UX Designers https://smart-interface-design-patterns.com/articles/sustainable-design-patterns/ <p><strong>Digital sustainability</strong> is often seen as a technical concern for engineers. We speak about optimization of assets, and web performance, and server efficiency. In fact, we rarely explore sustainability from the perspective of design and UX. But what if we did?</p> <p>Let’s explore a few <strong>practical techniques</strong> to reduce waste, focus on what matters and declutter what doesn’t — that you can apply to your work right away.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/67fe89f6-0ddd-cf8d-3174-b2130cb9c176.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/sustainable-design-patterns/checklist-for-sustainability.jpg" alt="Design for sustainability checklist, put together by IBM" width="1500" height="1919" loading="lazy"> </a> <figcaption><p>Design For Sustainability Checklist, a helpful reminder, put together by the IBM team. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/67fe89f6-0ddd-cf8d-3174-b2130cb9c176.jpg">Large view</a>.</p> </figcaption> </figure> <h2 id="the-actual-cost-of-digital" tabindex="-1">The Actual Cost Of Digital <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sustainable-design-patterns/#the-actual-cost-of-digital">#</a></h2> <p>Digital is extraordinarily <strong>material- and waste-intense</strong>. This doesn’t come through usage, but rather through mining and manufacturing of materials that go into devices.</p> <p>On average, a modern smartphone has <strong>60–70 materials</strong>. These materials have to be mined and delivered and processed and pieced together. In fact, for a new phone to be produced, manufacturing requires 60kg of CO2, 300kg of mined toxic waste and approx. 14.000L of water.</p> <p>For comparison, a new laptop costs around 300kg of CO2, 1.200kg of waste and 190.000L of water. Summing up the cost of digital together, we produce 100 billions tons of waste per year. This makes for <strong>half a Mount Everest of toxic waste</strong>, yearly.</p> <p>We put our hopes in efficiency over time, yet in the past <strong>efficiency has never reduced consumption</strong>, but rather increased it. In fact, despite efficiency, data storage grows 28% annually, at the peak today, yet 90% of it is never used.</p> <h2 id="sustainable-design-patterns" tabindex="-1">Sustainable Design Patterns <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sustainable-design-patterns/#sustainable-design-patterns">#</a></h2> <p>How do we address it with our work? Well, most of our environmental impact happens on our user’s devices. So we can help our users by reducing waste and focusing on what matters:</p> <p>✅ Always choose the lightest mode of communication.<br> ✅ Encourage the reuse of <strong>existing templates and presets</strong>.<br> ✅ <strong>Auto-delete</strong> after 365 days what hasn’t been used once.<br> ✅ Discourage users from PDF exports in favor of URLs.<br> ✅ Always provide <strong>audio-only</strong>/transcript for videos.</p> <p>✅ Be intentional with <strong>default settings</strong> for your users.<br> ✅ Highlight key insights to create understanding faster.<br> ✅ Skip unnecessary pages: drive users to results faster.<br> ✅ Establish an <strong>archiving and deletion policy</strong>.<br> ✅ Show filters/presets in autocomplete, not just keywords.</p> <p>✅ Nudge users to delete old files for 10% off that month.<br> ✅ Encourage and reward users for trying out dark mode.<br> ✅ Aim to <strong>reduce session duration</strong> instead of increasing it.<br> ✅ Question font weights, stock photos, parallax, 4K-videos.<br> ✅ Question collected data, if it’s used and when it’s deleted.</p> <h2 id="sustainable-ux-toolkits" tabindex="-1">Sustainable UX Toolkits <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sustainable-design-patterns/#sustainable-ux-toolkits">#</a></h2> <p>As designers, we often are left wondering how to integrate <strong>sustainable design practices</strong> into our design work. The repository on <a href="https://suxnetwork.notion.site/">Sustainable UX Toolkits and Resources</a> provides useful pointers on how to make sustainability default throughout the entire product design process — from strategy and discovery to UI design and testing.</p> <figure class="c-article__image u-flow--xs"> <a href="https://suxnetwork.notion.site/SUX-Network-Resource-Collection-36fe841f898b4fe9a8f37b6636852c49"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/sustainable-design-patterns/sustainable-ux-resources.jpg" alt="An overview of sustainable UX resources" width="1752" height="1262" loading="lazy"> </a> <figcaption><p><a href="https://suxnetwork.notion.site/SUX-Network-Resource-Collection-36fe841f898b4fe9a8f37b6636852c49">Repository of sustainable UX resources</a> — from strategy to implementation. Kindly put together by the SUX network.</p> </figcaption> </figure> <p>It includes toolkits, Figma templates, books, case studies, articles and events on sustainable UX — a wonderful growing repository to make big and small gains to align our work with sustainable design practices. One for the bookmarks!</p> <h2 id="digital-is-physical-and-material" tabindex="-1">Digital Is Physical and Material <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sustainable-design-patterns/#digital-is-physical-and-material">#</a></h2> <p>As <a href="https://gerrymcgovern.com/">Gerry McGovern says</a>, digital is intensely physical and material. It has a severe cost of cooling, mining, water use and toxic waste. So optimize relentlessly. <strong>Help people get things done faster</strong>.</p> <p><strong>Individual actions drive changes at scale</strong>, but they need a momentum. And often that momentum comes through small changes: new default settings, reduced time on task, or showing key insights, rather than all data. That’s also just good usability that can have tangible impact for users and businesses.</p> <p>Most importantly: whenever possible, <strong>hold on to your devices</strong> as long as possible, and encourage your customers to do the same. And if a meeting helps you reduce wasteful work done by 20 people, it’s the time worth taking.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sustainable-design-patterns/#useful-resources">#</a></h2> <ul> <li><a href="https://sustainablewebdesign.org/">Sustainable Web Design Patterns</a></li> <li><a href="https://uxdesign.cc/product-design-for-sustainability-3fffbb2a7f0e">Sustainable Product Design (+ Template)</a>, by Artiom Dashinsky</li> <li><a href="https://developer.mozilla.org/en-US/blog/introduction-to-web-sustainability/">Getting Started With Sustainability</a>, by Michelle Barker</li> <li><a href="https://suxnetwork.notion.site/SUX-Network-Resource-Collection-Event-Calendar-36fe841f898b4fe9a8f37b6636852c49">Sustainable UX</a>, by Thorsten Jonas, SUX</li> <li><a href="https://www.smashingmagazine.com/2023/07/sustainable-design-toolkits-and-resources/">Sustainable Design Toolkits And Frameworks</a>, by Cosima Mielke, Geoff Graham</li> <li><a href="https://www.ibm.com/design/practices/design-for-sustainability/">Design For Sustainability Checklist</a>, by IBM</li> <li><a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-sustainability-activity-7041351002741952512-vBiL/">Sustainable Toolkits For UX Designers</a>, by yours truly</li> </ul> <hr> <p>You can find more details on <strong>UX and usability</strong> in <a href="https://smart-interface-design-patterns.com/">Smart Interface Design Patterns</a> 🍣 — with a live UX training that’s coming up in 2024. Use the code <a href="https://smart-interface-design-patterns.com/">PUMPKIN</a> to <a href="https://smart-interface-design-patterns.com/">save 15% today</a>. <a href="https://www.youtube.com/watch?v=jhZ3el3n-u0">Free preview</a>.</p> Mon, 27 May 2024 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/sustainable-design-patterns/ A Practical Guide To Design For Children https://smart-interface-design-patterns.com/articles/design-guidelines-children/ <p><strong>Children</strong> start interacting with the web when they are 3–5 years old. How do we design for children? What do we need to keep in mind while doing so? And how do we meet the expectations of the <strong>most demanding users</strong> you can possibly find: parents? Well, let’s find out.</p> <h2 id="embrace-playing-encourage-small-wins" tabindex="-1">Embrace Playing, Encourage Small Wins <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-guidelines-children/#embrace-playing-encourage-small-wins">#</a></h2> <p>Designing for children is difficult. Children tend to lose focus and motivation. They quit when they get bored, and they move on if they can’t get anywhere quickly enough. They <strong>need steady achievements</strong>. So as designers, we need to appreciate, reward, and encourage small wins to develop habits and support learning — with progress tracking and gamification.</p> <figure class="c-article__image u-flow--xs"> <a href="https://apps.apple.com/us/app/fiete-math-learning-for-kids/id1052109508"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-guidelines-children/children-fiete-math.jpg" alt="Vibrant, colorful and playful: Fiete Math, a wonderful game for children, designed by Ahoiii." width="470" height="538" loading="lazy"> </a> <figcaption><p>Vibrant, colorful and playful: <a href="https://apps.apple.com/us/app/fiete-math-learning-for-kids/id1052109508">Fiete Math</a>, a well-designed game for children.</p> </figcaption> </figure> <p>As Deb Gelman, author of <em>Design for Kids</em> discovered, children <strong>communicate volumes by how they play</strong>, what they choose to play with, how long they choose to play with it, and when they decide to play with something else. Yet they don’t get as disappointed when something isn’t working. They just choose to browse or play something else.</p> <p>Most importantly, we can’t design for children without testing. Even better: <strong>bring children to co-design their digital experiences</strong>, and bring parents to co-design reliable guardrails. With a fun, smart, and safe product, parents will spread the word about you faster than you ever could.</p> <h2 id="always-focus-on-a-two-year-age-range" tabindex="-1">Always Focus On A Two-Year Age Range <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-guidelines-children/#always-focus-on-a-two-year-age-range">#</a></h2> <p>As designers, we should always keep in mind that <em>“children”</em> represent a very diverse range of behavior and abilities. There are vast <strong>differences between age groups</strong> (3–5, 6–8, and 9–12) — both in terms of how users navigate, but also how we communicate to them.</p> <p>In general, when designing for children focus on a <strong>two-year age range</strong>, max. These days, children start interacting with the web at the age of 3–5. And the very first interactions they learn are swipe, scroll, video controls, and “Home”.</p> <h2 id="getting-parents-on-board" tabindex="-1">Getting Parents On Board <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-guidelines-children/#getting-parents-on-board">#</a></h2> <p>Whenever you are designing for children, you always design for parents as well. In fact, parents are the <strong>most demanding users</strong> you can find. They have <strong>absolutely no mercy</strong> in reviews, requests, complaints and ratings on the stores.</p> <figure class="c-article__image u-flow--xs"> <a href="https://grace-app.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-guidelines-children/grace-parental-control.png" alt="Something that parents need to rely on: Grace, a parental control app" width="470" height="531" loading="lazy"> </a> <figcaption><p>Something that parents need to rely on: <a href="https://grace-app.com/">Grace</a>, a parental control app.</p> </figcaption> </figure> <p>That’s not surprising. Parents need <strong>safety guarantees</strong>, regulations and certifications — a sort of <em>reassurance</em> that you treat their safety and privacy seriously, especially when it comes to third-party integrations or advertising. In fact, they are often willing to pay for apps more just to avoid advertising.</p> <p>Parents often value <strong>reviews from teachers, educators</strong>, doctors, and other parents like themselves. And they need to have <strong>parental controls</strong> to set specific time limits, rules, access and permissions.</p> <p>As <a href="https://www.linkedin.com/in/rodrigoseoane/">Rodrigo Seoane</a> has pointed out in an email, a major concern to keep in mind is “how the majority of initiatives for kids rely on and create dependencies on extrinsic motivations. The reward model keep their attention in the short term, but as a core gamified mechanic it is problematic in the long run, reducing their cognitive capacity and creating a barrier to develop any intrinsic motivation.” So whenever possible, design to <a href="https://medium.com/@paulasg/how-to-increase-players-intrinsic-motivation-d00368697d19">increase intrinsic motivation</a>.</p> <h2 id="design-guidelines-for-children-friendly-design" tabindex="-1">Design Guidelines For Children-Friendly Design <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-guidelines-children/#design-guidelines-for-children-friendly-design">#</a></h2> <ul> <li><strong>Design large text</strong> (18–19px) with large tap targets (min 75×75px).</li> <li>Use typefaces that approximate how children learn to write.</li> <li><strong>Translate text into attractive visuals</strong>, icons, sounds, characters.</li> <li><strong>Avoid bottom buttons</strong> as kids tap on them by mistake all the time.</li> <li><strong>Children expect feedback</strong> on every single action they perform.</li> <li><strong>Don’t patronize</strong>: show age-appropriate content for the age range you’re designing for.</li> <li><strong>Be transparent</strong>: children can’t distinguish ads or promotions from real content.</li> <li>You’re always designing for <strong>both children and parents</strong>.</li> <li>Parents are the most demanding users you can find. They have <strong>no mercy in reviews and ratings</strong>.</li> <li>Design <strong>parental controls</strong> for time limits, rules, access.</li> <li>Instead of extrinsic rewards, design to <strong>increase intrinsic motivation</strong>.</li> </ul> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-guidelines-children/#useful-resources">#</a></h2> <ul> <li><a href="https://raw.studio/blog/designing-for-children/">Things to Consider When Designing for Children</a>, by Jasmine Bilham</li> <li><a href="https://uxdesign.cc/design-considerations-for-little-fingers-ad2a19ed3816">Design Considerations for Little Fingers</a>, by Andrew Smyk</li> <li><a href="https://www.eleken.co/blog-posts/ux-design-for-children-how-to-create-a-product-children-will-love">How to Create a Product Children Will Love</a>, by Mariia Kasym</li> <li><a href="https://www.uxmatters.com/topics/design/designing-for-children/">Designing For Children (7-part series)</a>, by Catalina Naranjo-Bock, Jonathan Evans, Paul Osborne</li> <li><a href="https://www.nngroup.com/articles/childrens-websites-usability-issues/">Children’s UX: Usability Issues in Designing for Young People</a>, by Katie Sherwin, Jakob Nielsen</li> <li><a href="https://www.nngroup.com/articles/usability-testing-minors/">Usability Testing With Children</a>, by Alita Joyce</li> <li><a href="https://www.smashingmagazine.com/2015/08/designing-web-interfaces-for-kids/">Designing Web Interfaces For Kids</a>, by Trine Falbe</li> <li><a href="https://uxdesign.cc/designing-apps-for-young-kids-part-1-ff54c46c773b">Designing Apps For Young Kids (Medium paywall)</a>, by Rubens Cantuni</li> <li><a href="https://infodesign.com.au/usabilityresources/designingforchildren.html">Designing For Children (PDF guidelines)</a>, by Gerry Gaffney, James Hunter</li> <li><a href="https://www.invisionapp.com/inside-design/building-apps-for-children/">The Definitive Guide to Building Apps for Kids</a>, by Tanya Junell</li> <li><a href="https://medium.com/@hellopeter/useful-resources-for-designing-web-content-for-children-8171c94ab967">Useful Resources When Designing For Children</a></li> </ul> <h2 id="digital-toolkits-for-children" tabindex="-1">Digital Toolkits For Children <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-guidelines-children/#digital-toolkits-for-children">#</a></h2> <ul> <li><a href="https://playtestwithkids.org/">UX Research Toolkit For Playtesting With Kids</a> (UX Methods)</li> <li><a href="https://designingwithchildren.net/">Designing With Children</a> (Workshops and Case Studies)</li> <li><a href="https://studiolab.ide.tudelft.nl/studiolab/codesignwithkids/tools/">Co-Design With Kids Toolkit</a></li> <li><a href="https://digitalfuturescommission.org.uk/playful-by-design-toolkit/">Playful by Design Toolkit</a></li> <li><a href="https://decid.co.uk/">DeCID Handbook For Displaced Children</a></li> <li><a href="https://childrensdesignguide.org/">Designing For Children’s Rights Guide</a></li> </ul> <h2 id="books-and-ebooks" tabindex="-1">Books and eBooks <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-guidelines-children/#books-and-ebooks">#</a></h2> <ul> <li><a href="https://www.lxdlab.org/motivation-matters/pocket-guide">Designing For Motivation (Pocket Guide)</a>, by Anamaria Dorgo, LxD Lab</li> <li><a href="https://www.designappsforkids.com/">Designing Digital Products For Kids</a>, by Rubens Cantuni</li> <li><a href="https://rosenfeldmedia.com/books/design-for-kids/">Design For Kids</a>, by Deb Gelman</li> <li><a href="https://www.jovis.de/en/book/9783868597172">Designing Spaces For Children</a>, by Nathalie Dziobek-Bepler</li> </ul> Fri, 19 Jan 2024 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/design-guidelines-children/ Design Patterns For... Almost Anything! https://smart-interface-design-patterns.com/articles/design-patterns-almost-everything/ <p>So what if you need a bit of inspiration for <strong>accordions</strong>, or footers, or dashboards, or maps, or perhaps hover states? In this single post, you’ll find all of them — a curated list of design showcases for various design components and themes — from <strong>UI components</strong> to patterns, in-house branding and presentation decks.</p> <p>Happy browsing, everyone! 🎉🥳</p> <h2 id="design-patterns" tabindex="-1">Design Patterns <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-patterns-almost-everything/#design-patterns">#</a></h2> <ul> <li><a href="https://component.gallery/">All interface components</a>, by Iain Bean</li> <li><a href="https://smarterpatterns.com/patterns">AI design patterns</a>, (currently down)</li> <li><a href="http://bookcoverarchive.com/">Book covers</a>, by Ben Pieratt</li> <li><a href="https://www.bestfolios.com/resumes">Covers/CV</a></li> <li><a href="https://www.darkmodedesign.com/">Dark Mode</a>, by Cai Cardenas</li> <li><a href="https://dashboarddesignpatterns.github.io/">Dashboards</a>, by Benjamin Bach</li> <li><a href="https://www.dataviz-inspiration.com/">Data visualization</a>, by Yan Holtz</li> <li><a href="https://www.deceptive.design/">Deceptive patterns to avoid</a>, by Harry Brignull</li> <li><a href="https://maggieappleton.com/patterns">Design concepts</a>: by Maggie Appleton</li> <li><a href="https://www.designsystemsforfigma.com/">Design systems</a>, by Josh Cusick</li> <li><a href="https://emaillove.com/">Email</a>, by Andrew King</li> <li><a href="https://humanebydesign.com/">Ethical design</a>, by Jon Yablonski</li> <li><a href="https://fontsinuse.com/">Fonts</a>, by Florian Hardwig</li> <li><a href="https://www.footer.design/">Footers</a>, by Benten Woodring, Matt Cram</li> <li><a href="https://interfaceingame.com/games/">Games</a></li> <li><a href="https://www.hoverstat.es/">Hover states</a>, by Mike Guppy, Daniel Powell</li> <li><a href="https://underconsideration.com/inhouseinfocus/">In-house branding</a></li> <li><a href="https://littlebigdetails.com/">Little details</a>, by Floris Dekker</li> <li><a href="https://www.flagsarenotlanguages.com/blog/">Localization</a>, by James Offer</li> <li><a href="https://www.logggos.club/">Logos</a></li> <li><a href="https://www.mapuipatterns.com/">Maps</a>, by Michael Gaigg</li> <li><a href="https://swiped.co/">Marketing and copywriting</a></li> <li><a href="https://onepagelove.com/">One page designs</a>, by Rob Hope</li> <li><a href="https://www.ogimage.gallery/">Open Graph images</a></li> <li><a href="https://patternclub.io/">Patterns and textures</a></li> <li><a href="https://personalsit.es/">Personal sites</a></li> <li><a href="https://deck.gallery/">Presentation decks</a>, by Muharrem Ş.</li> <li><a href="https://privacypatterns.org/patterns/">Privacy</a>, by Michael Colesky, Jaap-Henk Hoepman et al.</li> <li><a href="https://www.notion.so/ec446ee38def4af7b20658da16982913?pvs=21">Respectful design</a></li> <li><a href="https://lowwwcarbon.com/">Sustainability</a>, by Nick Lewis</li> <li><a href="https://infinitecanvas.tools/gallery/">Spatial design</a>, by Arun Venkatesan</li> <li><a href="https://www.showreelz.com/">Video reels</a>, by Ales Nesetril</li> <li><a href="https://veerle.duoh.com/inspiration/">Visual design</a>, by Veerle Pieters</li> <li><a href="https://www.rebrand.gallery/">Visual identity</a>, by Sahkyo</li> <li><a href="https://whimsical.club/">Whimsical websites</a>, by Max Böck</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://component.gallery/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-patterns-almost-everything/design-patterns-almost-everything.jpg" alt="Design Patterns For Almost... Everything!" width="800" height="1001" loading="lazy"> </a> <figcaption><p><a href="https://component.gallery/">Component.gallery</a>, a growing collection of components from design systems, broken down by category, by Iain Bean.</p> </figcaption> </figure> Wed, 15 Nov 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/design-patterns-almost-everything/ Designer’s Guide To Redesign, Step-By-Step https://smart-interface-design-patterns.com/articles/how-to-redesign-guide/ <p>Redesigns are often expensive, time-consuming and incredibly risky. Of course sometimes big-bang-redesigns are necessary, yet more often than not they can be avoided with a series of strategic incremental changes. Here are a few things to keep in mind <strong>before launching a big-scale redesign effort</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/how-to-redesign-step-by-step-guide-869379604734"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/how-to-redesign-guide/how-to-redesign-guide.jpg" alt="How to redesign, a step-by-step guide" width="1024" height="1000" loading="lazy"> </a> <figcaption><p><a href="https://uxdesign.cc/how-to-redesign-step-by-step-guide-869379604734">How to redesign, a step-by-step guide</a>, a comprehensive guide by Taras Bakusevych.</p> </figcaption> </figure> <h2 id="users-dont-like-change-if-they-dont-see-value-in-it" tabindex="-1">Users Don’t Like Change If They Don’t See Value In It <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-redesign-guide/#users-dont-like-change-if-they-dont-see-value-in-it">#</a></h2> <p>Personally, I always suggest to avoid redesign projects whenever possible. They are extremely costly, complex and time-consuming ventures — and too often without valuable outcome for end users. Instead, we need to <strong>seek where we can increase the value</strong> and apply our design efforts to that area.</p> <p>As Jared Spool argues, we often think that users don’t like change. Yet users go through small and big changes all day long. What <strong>users don’t like are breaking changes</strong>. Sudden interruptions. Blockers. Bad surprises. Changes that they don’t understand and can’t see any value in. That’s what we need to avoid.</p> <h2 id="redesign-step-by-step-process" tabindex="-1">Redesign Step-By-Step Process <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-redesign-guide/#redesign-step-by-step-process">#</a></h2> <p>A few years ago, Taras Bakusevych has written a wonderful <a href="https://uxdesign.cc/how-to-redesign-step-by-step-guide-869379604734">practical guide on how to redesign</a> to avoid pitfalls and deliver value fast. If you are getting into a redesign project, that's a fantastic practical guide to follow.</p> <h2 id="1-build-a-shared-understanding" tabindex="-1">1. Build A Shared Understanding <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-redesign-guide/#1-build-a-shared-understanding">#</a></h2> <p>We start by building a shared understanding of what we are trying to achieve. We interview stakeholders, check their expectations, interview dev and support teams. We capture insights, thoughts and suggestions and define jobs to be done.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/how-to-redesign-step-by-step-guide-869379604734"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/how-to-redesign-guide/how-to-redesign-shared-understanding.jpg" alt="How to redesign: by starting with a shared understanding" width="2040" height="1053" loading="lazy"> </a> <figcaption><p>Start with building shared understanding: with stakeholder interviews, user interviews and study of your target audience. From a <a href="https://uxdesign.cc/how-to-redesign-step-by-step-guide-869379604734">comprehensive guide by Taras Bakusevych</a>. <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/how-to-redesign-guide/how-to-redesign-shared-understanding.jpg">Large view</a>.</p> </figcaption> </figure> <h2 id="2-audit-and-deconstruct-existing-design" tabindex="-1">2. Audit and Deconstruct Existing Design <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-redesign-guide/#2-audit-and-deconstruct-existing-design">#</a></h2> <p>Then, rather than starting from scratch, we start <strong>deconstructing the existing design</strong>. We look out for patterns and flows that users understand and use frequently, and we study research and testing that has been done so far.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/how-to-redesign-step-by-step-guide-869379604734"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/how-to-redesign-guide/redesign-deconstruct-UI.jpg" alt="We deconstruct an existing design by watching out for frequent flows that users understand and rely on." width="1488" height="838" loading="lazy"> </a> <figcaption><p>We deconstruct an existing design by watching out for frequent flows that users understand and rely on. By Taras Bakusevych. <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/how-to-redesign-guide/redesign-deconstruct-UI.jpg">Large view</a>.</p> </figcaption> </figure> <h2 id="3-gather-evidence-from-ux-research" tabindex="-1">3. Gather Evidence From UX Research <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-redesign-guide/#3-gather-evidence-from-ux-research">#</a></h2> <p>Once we know where we stand, we need to explore where we want to head to. We <strong>gather evidence from UX research</strong> done so far, pain points that we are aware of, the problem areas that we need to address. That's where speaking to customer success and support can also be valuable.</p> <h2 id="4-prioritize-key-problem-areas-and-features" tabindex="-1">4. Prioritize Key Problem Areas and Features <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-redesign-guide/#4-prioritize-key-problem-areas-and-features">#</a></h2> <p>It might be a good idea to create a <strong>simple prioritization matrix</strong> where we list features and pros of competition, identify key problem areas and find improvement opportunities. Before jumping into any design, we map the value vs. the effort on an impact matrix to set priorities.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/how-to-redesign-step-by-step-guide-869379604734"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/how-to-redesign-guide/redesign-matrix-comparison.jpg" alt="We create a matrix with features and pros of the competition, identify key problem areas and search for improvement opportunities." width="1794" height="929" loading="lazy"> </a> <figcaption><p>We create a matrix with features and pros of the competition, identify key problem areas and search for improvement opportunities. By Taras Bakusevych. <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/how-to-redesign-guide/redesign-matrix-comparison.jpg">Large view</a>.</p> </figcaption> </figure> <h2 id="5-start-ideating-and-sketching-but-test-early" tabindex="-1">5. Start Ideating and Sketching, But Test Early <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-redesign-guide/#5-start-ideating-and-sketching-but-test-early">#</a></h2> <p>Eventually we start <strong>exploring, ideating, sketching</strong>. We come up with good candidates for improvements. We create <strong>low-fidelity storyboards</strong> and test new flows in early stages with actual customers. Then we develop a design language and apply it to critical pages or flows to test again. We iterate and keep testing.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/how-to-redesign-step-by-step-guide-869379604734"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/how-to-redesign-guide/redesign-storyboarding.jpg" alt="Test early and often. We use storyboarding to sketch out ideas, then test them with actual users or customers. By Taras Bakusevych." width="1488" height="829" loading="lazy"> </a> <figcaption><p>Test early and often. We use storyboarding to sketch out ideas, then test them with actual users or customers. By Taras Bakusevych. <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/how-to-redesign-guide/redesign-storyboarding.jpg">Large view</a>.</p> </figcaption> </figure> <h2 id="6-bring-stakeholders-on-board-as-early-as-possible" tabindex="-1">6. Bring Stakeholders On Board As Early As Possible <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-redesign-guide/#6-bring-stakeholders-on-board-as-early-as-possible">#</a></h2> <p>While doing so, it’s a good idea to involve stakeholders in the design process as early as possible. Show them what you are working on. Record a <strong>weekly 1-min videos</strong> explaining the process. Explain why some decisions are made. Circulate it in your internal newsletter. Listen to the feedback, you will need to show that you’ve considered it later.</p> <h2 id="7-design-presentation-shouldnt-have-big-surprises" tabindex="-1">7. Design Presentation Shouldn't Have Big Surprises <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-redesign-guide/#7-design-presentation-shouldnt-have-big-surprises">#</a></h2> <p>Eventually, you'll have to present and get a sign-off on a new design and the new direction. Ideally, by the moment you'll make a big presentation, you will already have an <strong>informal green light</strong> from your stakeholders. Show results from the testing. Show video snippets and audio clips of people struggling with the current design. Explain how the new design is better.</p> <h2 id="8-dont-ask-for-opinions-ask-for-agreement" tabindex="-1">8. Don't Ask For Opinions, Ask For Agreement <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-redesign-guide/#8-dont-ask-for-opinions-ask-for-agreement">#</a></h2> <p>But: don't ask for opinions. Ask if people in the room agree with the direction the new design is taking, and if not, why not. You will need senior support to carry your new design in action. So as you evolve the new design, keep them in the loop.</p> <h2 id="9-roll-out-slowly-and-incrementally" tabindex="-1">9. Roll Out Slowly and Incrementally <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-redesign-guide/#9-roll-out-slowly-and-incrementally">#</a></h2> <p>Roll out slowly. Add changes incrementally. Give users control over when change affects them and allow to change back to the old design at least temporarily. Most importantly, show the specific value that a new design brings to them. And then test again, review results and evolve — and prepare your customer service way ahead of time.</p> <h2 id="you-might-not-need-a-redesign" tabindex="-1">You Might Not Need A Redesign <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-redesign-guide/#you-might-not-need-a-redesign">#</a></h2> <p>You might need to revamp email newsletters. Or improve your product pages. Or optimize for repeat business. Or address a new market. Or better cater to older audiences. Or just invest in a better search. These are typically <strong>much more urgent issues</strong> that everybody will benefit from.</p> <p>But if you do, <strong>break up changes in small increments</strong> and roll out gradually. There shouldn’t be any big surprises and revelations with the redesign. Good redesigns are evolutions, not revolutions. Refine slowly as you go, and you’ll be surprised that users might not even notice that you’ve redesigned at all.</p> <h2 id="key-takeaways" tabindex="-1">Key Takeaways <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-redesign-guide/#key-takeaways">#</a></h2> <ul> <li><strong>Avoid big-bang redesigns</strong> unless absolutely necessary.</li> <li>Always prefer <strong>incremental changes</strong> over a major overhaul.</li> <li>Clean-up, archive, delete, update. Simplify first.</li> <li>Build on top of already existing behavior patterns.</li> <li>Give users control over when change affects them.</li> <li>Give an option to <strong>try a new design</strong> now and later.</li> <li>Allow to change back to the old design at least temporarily.</li> <li>Don’t pack a lot of change in all at once.</li> <li>Users accept changes if they <strong>see value in them</strong>.</li> <li>Keep the old way of working first, and transition slowly.</li> <li><strong>Highlight and explain changes</strong> to returning users.</li> <li>Show to users how the change benefits them.</li> <li>Prepare your customer service way ahead of time.</li> </ul> <h2 id="further-reading" tabindex="-1">Further Reading <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-redesign-guide/#further-reading">#</a></h2> <ul> <li> <p><a href="https://www.linkedin.com/pulse/users-dont-hate-change-our-design-choices-jared-spool/">Users Don’t Hate Change, But Our Design Choices</a>, by Jared Spool</p> </li> <li> <p><a href="https://uxdesign.cc/how-to-redesign-step-by-step-guide-869379604734">How To Redesign, A Step-By-Step Guide</a>, by Taras Bakusevych</p> </li> <li> <p><a href="https://boagworld.com/working-in-web/redesign-existing-website/">How to Redesign, The Right Way</a>, by Paul Boag</p> </li> <li> <p><a href="https://boagworld.com/usability/ux-workshop/">How To Run A UX Redesign Workshop</a>, by Sarah Jee Watson</p> </li> <li> <p><a href="https://articles.centercentre.com/radical_redesign/">Extraordinarily Radical Redesign Strategies</a>, by Jared Spool</p> </li> <li> <p><a href="https://www.nngroup.com/articles/radical-incremental-redesign/">Radical Redesign or Incremental Change?</a>, by Hoa Loranger</p> </li> </ul> Tue, 14 Nov 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/how-to-redesign-guide/ A Guide To Designing For Mobile (iOS, Android) https://smart-interface-design-patterns.com/articles/designing-for-mobile-ios-android-guide/ <p>When it comes to designing for mobile, there is always quite a bit of confusion between all the different units, guidelines and measurements in <strong>iOS and Android</strong>. Here’s a <a href="https://www.linkedin.com/posts/isabellebamber_ios-vs-android-ui-guidelines-activity-6895370533148725248-KwNM/">quick cheat sheet</a> (PDF) to help you get started with your mobile app design.</p> <h2 id="key-takeaways" tabindex="-1">Key Takeaways <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/designing-for-mobile-ios-android-guide/#key-takeaways">#</a></h2> <ul> <li>For <strong>Android</strong>, the most recent design language is Material 3.</li> <li>For <strong>iOS</strong>, it’s Human Interface Guidelines (HIG) for iOS 17.</li> <li>iOS apps are designed in <strong>pt</strong>, Android apps in <strong>dp</strong>.</li> <li>When designing for iOS, start with <strong>375×812pt</strong>.</li> <li>When designing for Android, start with <strong>360×640dp</strong>.</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://www.linkedin.com/posts/isabellebamber_ios-vs-android-ui-guidelines-activity-6895370533148725248-KwNM/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/designing-for-mobile-ios-android-guide/designing-for-mobile-ios-android-guide.jpg" alt="A Guide To Designing For Mobile (iOS, Android)" width="800" height="1035" loading="lazy"> </a> <figcaption><p><a href="https://www.linkedin.com/posts/isabellebamber_ios-vs-android-ui-guidelines-activity-6895370533148725248-KwNM/">Designing For Mobile (iOS, Android)</a> (PDF), a cheat sheet kindly shared by Isabelle Bamber.</p> </figcaption> </figure> <ul> <li>iOS: “Back” is in the bottom left, Android: top left.</li> <li>iOS: “Add” action is top right, Android: FAB is bottom right.</li> <li>iOS: Primary text and forms <strong>at least 17pt</strong>, tab bar at least 10pt.</li> <li>Android: Primary text and forms <strong>at least 14sp</strong>, labels at least 11sp.<br> <br></li> <li>Tap targets: <strong>11mm+</strong> (31pt/42px) on the top of the screen.</li> <li>Tap targets: <strong>12mm+</strong> (34pt/46px) at the bottom of the screen.</li> </ul> <h2 id="further-reading" tabindex="-1">Further Reading <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/designing-for-mobile-ios-android-guide/#further-reading">#</a></h2> <ul> <li> <p><a href="https://uxdesign.cc/guide-on-creating-ui-design-for-ios-apps-5bed644b1667">A Comprehensive Guide To Designing For iOS</a>, by Anastasia Prokhorova</p> </li> <li> <p><a href="https://developer.android.com/design/ui">A Comprehensive Guide To Designing For Android</a></p> </li> <li> <p><a href="https://www.linkedin.com/posts/isabellebamber_ios-vs-android-ui-guidelines-activity-6895370533148725248-KwNM">iOS vs. Android UI Guidelines</a>, by Isabelle Bamber</p> </li> <li> <p><a href="https://uxdesign.cc/digging-deep-in-layout-grids-in-mobile-app-design-ef07ace5b291">Layout Grid in Mobile App Design</a>, by Andrii Zhulidin 👽</p> </li> <li> <p><a href="https://frankrausch.com/ios-navigation">Modern iOS Navigation Patterns</a>, by Frank Rausch</p> </li> <li> <p><a href="https://uxdesign.cc/ios-vs-android-design-630340a73ee6">Design Differences Between iOS and Android Apps</a></p> </li> <li> <p><a href="https://www.learnui.design/blog/ios-design-guidelines-templates.html">A Complete Guide To iOS Design Guidelines</a>, by Erik Kennedy</p> </li> <li> <p><a href="https://www.learnui.design/blog/ios-vs-android-app-ui-design-complete-guide.html">iOS vs. Android App UI Design</a>, by Erik Kennedy</p> </li> <li> <p><a href="https://www.figma.com/community/file/1121065701252736567">iOS 16 UI Kit for Figma</a>, by Joey Banks</p> </li> <li> <p><a href="https://www.figma.com/community/file/809865700885504168">Material 3 Android 13 UI Kit (Figma)</a>, by Eduardo Pratti</p> </li> <li> <p><a href="https://www.figma.com/community/file/1248375255495415511">Apple Design Resources: iOS 17 (Figma kit)</a></p> </li> <li> <p><a href="https://www.figma.com/community/file/1035203688168086460">Material 3 Design Language (Figma kit)</a></p> </li> <li> <p><a href="https://www.nngroup.com/articles/mobile-ux-study-guide/">Mobile UX: Study Guide</a>, by Raluca Budiu</p> </li> <li> <p><a href="https://smart-interface-design-patterns.com/articles/accessible-tap-target-sizes/">Mobile Usability: Tap Target Sizes Cheatsheet</a>, by yours truly</p> </li> <li> <p><a href="https://www.smashingmagazine.com/printed-books/touch-design-for-mobile-interfaces/">Touch Design for Mobile Interfaces (Book)</a>, by Steven Hoober</p> </li> </ul> Tue, 14 Nov 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/designing-for-mobile-ios-android-guide/ How To Make A Strong Case For UX Research https://smart-interface-design-patterns.com/articles/how-to-make-strong-case-ux-research/ <p>So you want to conduct UX research, yet you find yourself constrained — by wrong assumptions and wrong expectations about what UX research actually entails. Research doesn’t have to be time-consuming. It doesn’t have to be expensive. And it doesn’t have to be disruptive. Let’s see how we can address reluctance and make a strong case for UX research.</p> <h2 id="key-takeaways" tabindex="-1">Key Takeaways <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-make-strong-case-ux-research/#key-takeaways">#</a></h2> <ul> <li>Don’t assume that stakeholders don’t see value in research.</li> <li>They <strong>want to avoid disruptions</strong>, delays and minimize risk.</li> <li>They expect research to be <strong>expensive and time-consuming</strong>.</li> <li>The reluctance might be a fear of challenging status quo.</li> <li>Or a fear of <strong>uncovering failures</strong> and costs of fixing them.</li> <li>Or a fear of insights that conflict with top-level decisions.</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://uxinsight.org/how-to-measure-ux-research-impact-a-multi-level-framework"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/how-to-make-strong-case-ux-research/how-to-make-strong-case-ux-research.png" alt="How to measure UX research impact" width="1024" height="1000" loading="lazy"> </a> <figcaption><p><a href="https://uxinsight.org/how-to-measure-ux-research-impact-a-multi-level-framework">How to measure UX research impact</a>, a multi-level framework by Karin den Bouwmeester. <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/how-to-make-strong-case-ux-research/how-to-make-strong-case-ux-research.png">Large view</a>.</p> </figcaption> </figure> <ul> <li>Don’t mistake polite nodding for agreement or commitment.</li> <li>Best timing for research is when <strong>risk is high and clarity is low</strong>.</li> <li>Show how research can reduce risk and prevent costly failures.</li> <li>Design without research is guesswork driven by assumptions.</li> <li>Showcase previous successes of UX research in the past.</li> <li><strong>Aim for impact</strong>: find similar problems for larger projects across teams.<br> <br></li> <li>Don’t advocate for the value of UX research empty-handed.</li> <li><strong>Pitch a research plan</strong> based on stakeholders’ goals and needs.</li> <li>Show a roadmap, goals, timelines, people involved and related costs.</li> <li>Explain how you will use the outcomes to guide design decisions.</li> <li><strong>Ask for small but steady commitments</strong> to small-scale research.</li> </ul> <h2 id="align-ux-research-with-stakeholders-objectives" tabindex="-1">Align UX Research With Stakeholders’ Objectives <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-make-strong-case-ux-research/#align-ux-research-with-stakeholders-objectives">#</a></h2> <p>When you face <strong>reluctance from stakeholders</strong>, try to understand where it’s coming from. Study their KPIs, goals, constraints, priorities — and try to align your research with stakeholders’ objectives. As Erika Hall famously suggested, build a strong relationship with a person before trying to change their mind.</p> <p>Most importantly, study their previous experiences with research initiatives. Try to <strong>find specific reasons for reluctance</strong>. Chances are high that the outcome of research stirred conflicts or problems that they’d like to avoid. In fact, they might not be against research, but the consequences that come along with it.</p> <p><strong>There is never enough research</strong>. Yet most successful products come from continuous research that informs and guides design and business decisions. Start slowly, get small but steady commitments and progress from there.</p> <p>It might not take too long for research initiatives to be noticed, appreciated, supported — and perhaps <strong>even initiated</strong> by top-level management.</p> <h2 id="further-reading" tabindex="-1">Further Reading <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-make-strong-case-ux-research/#further-reading">#</a></h2> <ul> <li> <p><a href="https://userresearchacademy.substack.com/p/treat-stakeholders-like-users">Treat Stakeholders Like Users</a>, by Nikki Anderson-Stanier, MA</p> </li> <li> <p><a href="https://uxinsight.org/how-to-measure-ux-research-impact-a-multi-level-framework/">How to Measure UX Research Impact</a>, by Karin den Bouwmeester</p> </li> <li> <p><a href="https://www.futuremind.com/en/insights/business-case-ux-research/">The Business Case For UX research</a>, by Miłosz Michałowski-Żuk</p> </li> <li> <p><a href="https://www.userinterviews.com/blog/showing-the-value-of-user-research">Showing the Value of UX Research: The Ultimate Guide</a>, by Carrie Gehrhardt</p> </li> <li> <p><a href="https://www.userinterviews.com/blog/15-user-experience-research-statistics-to-win-over-stakeholders-in-2020">UX Research Statistics to Win Over Stakeholders</a>, by Lizzy Burnam</p> </li> </ul> Mon, 13 Nov 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/how-to-make-strong-case-ux-research/ Stop Tracking NPS (Net Promotion Score) https://smart-interface-design-patterns.com/articles/net-promotion-score/ <p>Good research is always rooted in the past, not in the future. Net Promotion Score has many flaws: in how it asks users to predict their future behavior, the Likert scale and the statistically unreliable score calculation. There are better alternatives.</p> <h3 id="1-how-net-promoter-score-nps-works" tabindex="-1">1. How Net Promoter Score (NPS) Works <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/net-promotion-score/#1-how-net-promoter-score-nps-works">#</a></h3> <p>The main assumption behind NPS is that business success depends on positive word of mouth. NPS is a number in the range of -100% to 100%. We ask users to answer a question &quot;<em>How likely are you to recommend [X] to a friend or a colleague</em>&quot;.</p> <p>Responders are grouped into detractors (0-6), passives (7-8) and promoters (9-10). <strong>NPS score = %Promoters – %Detractors.</strong> The higher, the better.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/net-promotion-score/NPS%20score"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/net-promotion-score/net-promotion-score.jpg" alt="" width="1643" height="1536" loading="lazy"> </a> <figcaption><p>NPS score is originally intended to be an indicator of loyalty to a brand. However, it’s statistically unreliable and flawed. <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/net-promotion-score/net-promotion-score.jpg">Large view</a>.</p> </figcaption> </figure> <h3 id="2-the-science-behind-nps-is-wacky" tabindex="-1">2. The Science Behind NPS Is Wacky <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/net-promotion-score/#2-the-science-behind-nps-is-wacky">#</a></h3> <p>NPS doesn't use the mean average of the numbers received. It raises <strong>red flags</strong>: NPS leaves a lot of survey data out, it has weak statistical properties and it’s more susceptible to random noise. Also, gaming the values is relatively easy.</p> <h3 id="3-you-need-large-sample-sizes" tabindex="-1">3. You Need Large Sample Sizes <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/net-promotion-score/#3-you-need-large-sample-sizes">#</a></h3> <p>To get to <strong>statistical significance</strong>, you need to gather feedback literally from thousands of users. Because NPS survey response rate is 4–7%, you need to send it to hundreds of thousands of customers. It’s unpractical and makes NPS mostly irrelevant for experimentation.</p> <h3 id="4-nps-is-fragile-and-hides-ux-success" tabindex="-1">4. NPS Is Fragile And Hides UX Success <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/net-promotion-score/#4-nps-is-fragile-and-hides-ux-success">#</a></h3> <p>Even if the product team has been moving mountains to improve customer experience, <strong>NPS won’t accurately reflect it</strong>. Small incremental improvements should bring incremental score increases, but NPS doesn’t work that way. It has very high variance and very abrupt jumps in scores.</p> <h3 id="5-nps-captures-only-most-recent-activity" tabindex="-1">5. NPS Captures Only Most Recent Activity <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/net-promotion-score/#5-nps-captures-only-most-recent-activity">#</a></h3> <p><strong>Customer loyalty</strong> is a long play. It’s about how someone behaves over a long period of time, yet NPS is skewed to the most recent user’s experience. As Jared Spool suggests, “the best research questions are about past behavior, not future behavior.”</p> <h3 id="6-we-cant-reduce-ux-to-a-single-number" tabindex="-1">6. We Can’t Reduce UX To A Single Number <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/net-promotion-score/#6-we-cant-reduce-ux-to-a-single-number">#</a></h3> <p>We need to combine qualitative and quantitative insights to capture the quality of UX. We can use <a href="https://smart-interface-design-patterns.com/articles/design-metrics-kpis/">top tasks methodology and design KPIs</a> to measure individual interactions with our products, sites and the brand.</p> <h3 id="7-choose-metrics-that-matter-for-your-product" tabindex="-1">7. Choose Metrics That Matter For Your Product <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/net-promotion-score/#7-choose-metrics-that-matter-for-your-product">#</a></h3> <p>Itamar Gilad <a href="https://itamargilad.com/the-three-true-north-metrics-that-your-product-and-business-need/">suggests</a> that the core mission of every company is to deliver value and to capture value back. We need to define both. In his article, Itamar reviews the North Star Metric (customer value) and Top KPI (business value).</p> <h3 id="further-reading" tabindex="-1">Further reading <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/net-promotion-score/#further-reading">#</a></h3> <ul> <li> <p><a href="https://jmspool.medium.com/net-promoter-score-considered-harmful-and-what-ux-professionals-can-do-about-it-fe7a132f4430">NPS Considered Harmful</a>, by Jared Spool</p> </li> <li> <p><a href="https://itamargilad.com/net-promoter-score-part1/">Net Promoter Score – Helpful or Harmful?</a> + <a href="https://itamargilad.com/net-promoter-score-part2/">Part 2</a> by Itamar Gilad</p> </li> <li> <p><a href="https://smart-interface-design-patterns.com/articles/design-metrics-kpis/">Design KPIs and UX Metrics</a>, by yours truly</p> </li> </ul> Fri, 03 Nov 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/net-promotion-score/ How To Fix a Bad User Interface https://smart-interface-design-patterns.com/articles/how-to-fix-a-bad-user-interface/ <p>Every screen you interact with has multiple personalities: blank state, loading state, partial state, error state and ideal state. <a href="https://www.scotthurff.com/posts/why-your-user-interface-is-awkward-youre-ignoring-the-ui-stack/">How To Fix a Bad User Interface</a> highlights strategies to avoid awkward and confusing UIs with the UI Stack, carefully designing personalities for every screen. By Scott Hurff.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.scotthurff.com/posts/why-your-user-interface-is-awkward-youre-ignoring-the-ui-stack/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/fix-bad-user-interface/fix-bad-user-interface.jpg" alt="How To Fix a Bad User Interface" width="800" height="1015" loading="lazy"> </a> <figcaption><p>UX is not just what happens when everything goes as planned. It’s also what customers experience when things break unexpectedly. <a href="https://www.scotthurff.com/posts/why-your-user-interface-is-awkward-youre-ignoring-the-ui-stack/">Image source</a>.</p> </figcaption> </figure> <h2 id="five-states-of-user-interface" tabindex="-1">Five States of User Interface <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-fix-a-bad-user-interface/#five-states-of-user-interface">#</a></h2> <p>We start with the <strong>ideal state</strong>. It’s the zenith of your product's potential. We then explore the error state, when things go wrong, with unexpected problems, error messages and input validation UX. From there on, we move to the <strong>partial state</strong> — when the page is sparsely populated. Our job here is to prevent people from getting discourage and giving up on our product.</p> <p>In the <strong>loading state</strong>, when users are waiting for an update to come through, we must avoid frustrating rage taps/clicks and allow users to set filters and sorting and search by being mindful on how we represent situations when we're fetching data. We need to avoid an entire page takeover, but rather lazy load content panes or use inline loading.</p> <p>Finally, we can improve the <strong>blank states</strong> by using skeleton screens where we show the structure and layout of the page early, or optimistic actions where we assume access by default and hence reduce the perceived speed of uploading data. If it goes unexpectedly wrong, we flag an error and ask users for their input.</p> <p>Personally, I often start <strong>exploring errors and recovery flows</strong> early because they often leave users frustrated and disappointed. Looking into &quot;broken&quot; state helps you also figure out how you communicate to your users, your tone and voice, and hence the messaging.</p> <p>A great reminder that UX is not just what happens when everything goes as planned. It’s also what customers experience when things break unexpectedly.</p> <h2 id="further-reading" tabindex="-1">Further Reading <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/how-to-fix-a-bad-user-interface/#further-reading">#</a></h2> <ul> <li> <p><a href="https://www.shanedoyle.io/post/designing-for-different-states-in-the-ui">Designing For Different States in The UI</a>, by Shane Doyle</p> </li> <li> <p><a href="https://medium.com/swlh/the-nine-states-of-design-5bfe9b3d6d85">The Nine States of Design</a>, by Vince Speelman</p> </li> <li> <p><a href="https://ericwbailey.website/published/all-the-user-facing-states/">All The User-Facing States</a>, by Eric Bailey</p> </li> </ul> Fri, 03 Nov 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/how-to-fix-a-bad-user-interface/ How To Avoid Misunderstandings In The Design Process https://smart-interface-design-patterns.com/articles/avoid-misunderstandings-in-design-process/ <p>Often misunderstandings don’t just cause confusion. They bring team members apart, erode trust and produce waste. They often come from wrong assumptions and unrealistic expectations.</p> <p>Of course every UX task is different. But every task requires a shared understanding about the process, the people involved and the expectations that come with it. To get there, I typically prepare a one-pager with 10 sections — a statement of work that typically includes only bullet points, and nothing else.</p> <h2 id="the-statement-of-work" tabindex="-1">The Statement of Work <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/avoid-misunderstandings-in-design-process/#the-statement-of-work">#</a></h2> <ul> <li>This is how we understood the problem.</li> <li>This is what we think the solution requires (steps and tasks).</li> <li>These are the assumptions that we’re making.</li> <li>This is how we work, and how we will work together.</li> <li>This is where and when we’ll need a (timely) input by stakeholders.</li> <li>These are the milestones, the timeline and deliverables.</li> <li>That’s the delivery date we commit to (for that scope of work).</li> <li>That’s the total cost of the work and how it will be paid.</li> <li>Late scope changes are expensive and cause delays.</li> <li>All scope changes are estimated and billed separately.</li> </ul> <h2 id="how-to-use-the-10-pager" tabindex="-1">How To Use The 10-Pager <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/avoid-misunderstandings-in-design-process/#how-to-use-the-10-pager">#</a></h2> <p>Just before heading into a project, we <strong>set up a call</strong> to discuss if we understood the problem correctly, if the process is clear and if we've overlooked something critical. I mention twice the role of UX research and evidence-driven decision making, and that late scope changes are expensive and cause delays.</p> <p>The goal of that meeting is to iron out anything that might cause confusion or frustration later — and to <strong>get a sign off</strong> on that 10-sections document.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/avoid-misunderstandings-in-design-process/avoid-misunderstandings-in-design-process.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/avoid-misunderstandings-in-design-process/avoid-misunderstandings-in-design-process.jpg" alt="Sections to include in design process" width="800" height="587" loading="lazy"> </a> <figcaption><p>An overview of all sections that go into a 10-pager for the scope of work. <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/avoid-misunderstandings-in-design-process/avoid-misunderstandings-in-design-process.jpg">Large view</a>.</p> </figcaption> </figure> <p><strong>We don’t know how our stakeholders work</strong>. We don’t know their constraints, their budgets, their timelines. So we shouldn’t expect them to know our design process either. Instead, we should explain how we work, what is important to us, and why last-minute changes are expensive and cause delays.</p> <p>Stakeholders don’t want to make our lives difficult. They want us to succeed. We want the same. Ask them what is important to them, and tell them what is important to you. It won’t always work, but when it does, you get stakeholders on your side, supporting you and respecting your process from start to finish.</p> Thu, 02 Nov 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/avoid-misunderstandings-in-design-process/ How To Defend Your Design Decisions https://smart-interface-design-patterns.com/articles/defend-design-decisions/ <p><strong>Design decisions</strong> are often seen as a matter of opinion or preference. But design solves problems, and so good design decisions shouldn’t be based on hunches or opinions. They have good reasons, they address the problem effectively, and as such, they impact business goals.</p> <p>We just need to have a <strong>strategy on how to defend our design decisions</strong>, to protect our work, avoid design by committee and pick battles wisely. Let’s see what it could be.</p> <figure class="c-article__image u-flow--xs"> <a href="https://app.uxcel.com/lessons/articulating-design-decisions-to-stakeholders-597"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/defend-design-decisions/01-defend-design-decisions.jpg" alt="An illustrative example of how to defend design decisions with user research." width="500" height="312" loading="lazy"> </a> <figcaption><p>How to defend your design decisions? It’s always a good idea to <a href="https://app.uxcel.com/lessons/articulating-design-decisions-to-stakeholders-597">prepare research data to backup</a>.</p> </figcaption> </figure> <h2 id="key-takeaways" tabindex="-1">Key Takeaways <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/defend-design-decisions/#key-takeaways">#</a></h2> <p>🚫 Avoid big surprises when presenting your work.<br> ✅ Ask for feedback gradually, at different stages of the design.<br> ✅ Strong decisions rely on data and research, not hunches.<br> ✅ Attach your decisions to a goal, metric, or a problem.<br> ✅ Show what’s possible short term, and your plan for the future.</p> <p>✅ Re-iterate business goals before showing any of your work.<br> ✅ Show the process that led you to your current design.<br> ✅ Explain how your current decision impacts business goals.<br> ✅ Highlight key takeaways from previous rounds of feedback.<br> ✅ Highlight advantages and risks to show they’ve been considered.</p> <p>🚫 Don’t fight an argument: find the problem brought into spotlight.<br> ✅ You might be wrong: defend the project goals, not your work.<br> ✅ Ask to articulate and explain the argument in detail.<br> ✅ Have alternatives ready, and explain why they were discarded.<br> ✅ Defer the decision: request to review it with your team.<br> 🚫 One suggestion is a goldmine of other ideas waiting to be excavated.</p> <h2 id="good-design-isnt-about-winning" tabindex="-1">Good Design Isn’t About Winning <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/defend-design-decisions/#good-design-isnt-about-winning">#</a></h2> <p>Good design isn’t about being the winner in the big meeting. It’s about finding the flaws and wrong assumptions to make sure your work matches business goals while supporting user’s needs. So be deliberate and meticulous explaining how your decisions impact business goals.</p> <p>Nothing diffuses argument like agreement. Don’t get defensive — as <strong><a href="https://www.linkedin.com/feed/#">Tom Greever</a></strong> said, when we become defensive, we fail to focus on the real issues. So avoid big public debates. Avoid speaking about your personal preferences, what you like or dislike.</p> <p>Don’t ask “What do you think?” as it prompts personal opinions. Instead, ask if attendees agree with the direction (yes/no), and if not, why not. Most importantly, defend your design decisions when you know it’s right, but leave your ego aside when you feel you aren’t.</p> <h2 id="useful-resources" tabindex="-1">Useful resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/defend-design-decisions/#useful-resources">#</a></h2> <ul> <li><a href="https://uxdesign.cc/defending-ux-design-decisions-8-essential-techniques-770a85b589d6">Defending UX Design Decisions</a>, by Chris Kiess</li> <li><a href="https://uxdesign.cc/the-tyranny-of-collaborative-ideation-d6f40bc33336">The Tyranny of Collaborative Ideation</a>, by Lars Jerichau</li> <li><a href="https://tomgreever.com/articulating-design-decisions-book/">Articulating Design Decisions (Book)</a>, by Tom Greever</li> <li><a href="https://www.notion.so/How-To-Defend-Design-Decisions-4baa01b770ed4a56b4691b25a17179dd?pvs=21">How To Avoid Design By Committee</a>, by Paul Boag</li> <li><a href="https://app.uxcel.com/lessons/articulating-design-decisions-to-stakeholders-597">Articulating Design Decisions to Stakeholders</a></li> <li><a href="https://dovetail.com/product-development/design-by-committee/">Strategies To Deal With Design By Committee</a>, by Jen Lee</li> </ul> Mon, 30 Oct 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/defend-design-decisions/ Beautiful, Inclusive, Free Photos of People https://smart-interface-design-patterns.com/articles/free-inclusive-photos-of-people/ <p>Where would you find inclusive, free-to-use photos of diverse people? There aren’t many resources out there, but the ones that do exist are absolutely fantastic. Here are some useful pointers that you might use in your work.</p> <p><a href="https://affecttheverb.com/disabledandhere/">Beautiful, Inclusive, Free-To-Use Photos of People</a>, a wonderful growing library of photos and illustrations that celebrate disabled Black, Indigenous and people of color (BIPOC). Published under Creative Commons, and you can use it for free with an attribution. Wonderful effort by the Open Collective Foundation.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.pexels.com/photo/a-close-up-shot-of-a-person-s-hands-on-white-braille-paper-7695405/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/free-inclusive-photos-of-people/01-person-touching-braille-book.jpg" alt="A Person Touching a Braille Book, a photo by Yan Krukov" width="500" height="294" loading="lazy"> </a> <figcaption><p><a href="https://www.pexels.com/photo/a-close-up-shot-of-a-person-s-hands-on-white-braille-paper-7695405/">A Person Touching a Braille Book</a>, a photo by Yan Krukov.</p> </figcaption> </figure> <h3 id="free-photos-of-diverse-people" tabindex="-1">Free Photos of Diverse People <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/free-inclusive-photos-of-people/#free-photos-of-diverse-people">#</a></h3> <ul> <li> <p><a href="https://nappy.co/">Nappy: Beautiful Photos of Black and Brown People</a></p> </li> <li> <p><a href="https://www.flickr.com/photos/wocintechchat/">Free Photos of Women of Color In Tech</a></p> </li> <li> <p><a href="https://www.tetraimages.com/index.cfm">Tetra Images: Diverse Free Photo Collection</a></p> </li> <li> <p><a href="https://createherstock.com/free-stock-photos/">Free CreateHer Photo Collection</a></p> </li> <li> <p><a href="https://disabilityisbeautiful.com/">Disability Is Beautiful: Free Photos</a></p> </li> <li> <p><a href="https://ageingbetter.resourcespace.com/pages/home.php">Photos of Older and Disabled People, by Centre for Ageing Better</a></p> </li> </ul> <h3 id="free-photos-on-disability" tabindex="-1">Free Photos On Disability <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/free-inclusive-photos-of-people/#free-photos-on-disability">#</a></h3> <ul> <li> <p><a href="https://www.pexels.com/search/disability/">Pexels</a></p> </li> <li> <p><a href="https://unsplash.com/s/photos/disability">Unsplash</a></p> </li> <li> <p><a href="https://www.freepik.com/free-photos-vectors/disability">Freepik</a></p> </li> <li> <p><a href="https://www.rawpixel.com/search/disability?page=1&amp;sort=curated&amp;topic_group=_topics">Rawpixel</a></p> </li> <li> <p><a href="https://www.freeimages.com/search/disabled">FreeImages</a>, (not free)</p> </li> <li> <p><a href="https://create.vista.com/ru/photos/Disabled-person/">Disabled Persons Collection</a>, (not free)</p> </li> <li> <p><a href="https://societypix.org/">SocietyPix</a>, free for editorial purposes, credit required</p> </li> <li> <p>Small collections: <a href="https://disabilityin.org/resource/disability-stock-photography/">DisabilityIn</a>, <a href="https://www.cpsc.gov/Newsroom/Multimedia/Americans-with-Disabilities-Home-Safety-Best-Practices">Home Safety Best Practices</a>, <a href="https://jopwell.pixieset.com/thejopwellcollection/">Pixieset</a>, <a href="https://stocksnap.io/search/disability">Stocksnap</a></p> </li> <li> <p><a href="https://www.webaxe.org/stock-photos-people-with-disabilities/">Stock Photos of People With Disabilities</a>, by Dennis Lembree</p> </li> <li> <p><a href="https://www.lflegal.com/2020/12/disability-diverse-photos/">Stock Photo Sites for Inclusion</a></p> </li> </ul> <p>There are some <strong>absolutely incredible photos and illustrations</strong> in there — wonderfully suited for presentations, mock-ups, reports and anything in-between. We can use them to prompt and encourage more diverse and inclusive conversations and design decisions.</p> <p>A huge, <em>HUGE</em> thank you to everyone releasing these photos and illustrations for all of us to use.</p> <p>🙏🏼🙏🏾🙏🏾</p> Wed, 25 Oct 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/free-inclusive-photos-of-people/ Double Diamond Is Not How Most Companies Work https://smart-interface-design-patterns.com/articles/double-diamond-process/ <p>Do you actually rely on the well-established <a href="https://medium.com/digital-experience-design/how-to-apply-a-design-thinking-hcd-ux-or-any-creative-process-from-scratch-b8786efbf812">Double Diamond process</a> in your design work? Chances are high that <strong>you had to cut corners</strong>, make tough compromises and keep convincing stakeholders about the <em>right</em> approach to design.</p> <p>Is there a single, <strong>universal, perfect design process</strong>? <a href="https://www.smashingmagazine.com/2023/06/perfect-design-process/">Of course not</a>. But we can try to improve our existing process to better accommodate the complexity and messiness of the world around us. Let’s see how.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/double-diamond-process/double-diamond-process/double-diamond-not-how-companies-work.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/double-diamond-process/double-diamond-not-how-companies-work.jpg" alt="An overview of Double Diamond process, and how most companies work, with a Reversed Double Diamond." width="550" height="412" loading="lazy"> </a> <figcaption><p><a href="https://www.smashingmagazine.com/2023/08/improving-double-diamond-design-process/">Improving Double Diamond Design Process</a>, a wonderful article on a more realistic design framework, by Andy Budd. <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/double-diamond-process/double-diamond-not-how-companies-work.jpg">Large view</a>.</p> </figcaption> </figure> <p>The reason why Double Diamond often fails is simple: too often Double Diamond doesn’t work well in practice. In fact, Andy Budd has <a href="https://www.smashingmagazine.com/2023/08/improving-double-diamond-design-process/">shared</a> a <strong>more realistic and honest overview</strong> of how the work actually gets done in real-life and where design has most leverage.</p> <h2 id="design-process-in-real-life" tabindex="-1">Design Process In Real-Life <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/double-diamond-process/#design-process-in-real-life">#</a></h2> <p>✅ Stakeholders rarely want you to think outside of the box.<br> ✅ They want a cost-effective implementation of their idea.<br> ✅ Discovery is for finding evidence to back up assertions.<br> ✅ Direction is often chosen before design work happens.</p> <p>✅ Double Diamond works in theory, but not in practice.<br> ✅ Most companies work with a Reverse Double Diamond.<br> ✅ You accept the work, monitor it, improve it post-launch.<br> ✅ Once it’s launched, gather evidence, iterate, test, refine.</p> <h2 id="double-diamond-is-often-not-enough" tabindex="-1">Double Diamond Is Often Not Enough <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/double-diamond-process/#double-diamond-is-often-not-enough">#</a></h2> <p>Personally, I don’t think that Double Diamond is irrelevant or obsolete. Just as Andy writes, it’s a wonderful concept that <strong>helps designers avoid shallow solutions</strong>, understand the problem space well and then come up with creative solutions that actually address the problems that customers are facing.</p> <p>However, <strong>too often it’s not enough</strong> — and it’s not quite how companies work. Companies often rush to the market to launch something quickly — and Double Diamond is seen at best as unnecessary friction, and at worst as an absolute waste of time.</p> <p>And as a designer, I don’t want to waste anybody’s time. So <strong>before designing a single pixel on the screen</strong>, I need to be absolutely certain that I’m designing something that has been tested with actual users and shows promise to reach the impact that we are aiming for.</p> <h2 id="meet-the-triple-diamond-process" tabindex="-1">Meet The “Triple Diamond Process” <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/double-diamond-process/#meet-the-triple-diamond-process">#</a></h2> <p>I need to <strong>test hypotheses</strong>, to experiment back and forth, to refine and adjust and discard and reinvent the wheel if needed. And too often, “Double Diamond” doesn’t provide enough space and time to do that. So my design workflow seems to be closer to what Adam Gray describes as the <a href="https://uxdesign.cc/why-the-double-diamond-isnt-enough-adaa48a8aec1">“Triple Diamond Process”</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/why-the-double-diamond-isnt-enough-adaa48a8aec1"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/double-diamond-process/triple-diamond-process.png" alt="An overview of the Triple Diamond process, focusing on experimentation and concept testing." width="550" height="412" loading="lazy"> </a> <figcaption><p><a href="https://uxdesign.cc/why-the-double-diamond-isnt-enough-adaa48a8aec1">Why double diamond isn’t enough</a>, focusing on the missing diamond —  experimentation and testing. By Adam Gray. <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/double-diamond-process/triple-diamond-process.png">Large view</a>.</p> </figcaption> </figure> <p>As we iterate with hypotheses, we <strong>test them meticulously</strong> — with tree testing, Kano model surveys, low-fidelity protoypes and interviews with users and stakeholders. Once we have evidence that shows a positive trajectory, we start build a proof of concept, and evolve from there.</p> <p>As design gets refined and adjusted, we <strong>keep testing continuously</strong>, with business requirements and user insights informing and guiding design decisions. No decision should be random, or a matter of preference — and there is always enough data to <strong>back up and defend design decisions</strong>.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/double-diamond-process/#wrapping-up">#</a></h2> <p>You always <strong>need allies to carry your design in action</strong>. Opposing the existing process is an uphill battle. So frame the task at hand as a design challenge, and explore how to deliver most value for users and business. Measure its impact, refine and post-launch.</p> <p>You might be surprised by how quickly you might find the support you need to turn the process all around and start designing <strong>the right thing, the right way</strong>.</p> <p>You can find more details on <strong>design patterns and UX</strong> in the <a href="https://smart-interface-design-patterns.com/">video library on Smart Interface Design Patterns</a> — with a <a href="https://smart-interface-design-patterns.com/">live UX training</a> that’s coming up in March 2024.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/double-diamond-process/#useful-resources">#</a></h2> <ul> <li><a href="https://www.smashingmagazine.com/2023/08/improving-double-diamond-design-process/">Improving The Double Diamond Process</a>, by Andy Budd</li> <li><a href="https://medium.com/digital-experience-design/how-to-apply-a-design-thinking-hcd-ux-or-any-creative-process-from-scratch-b8786efbf812">How To Apply Double Diamond From Scratch</a>, by Dan Nessler</li> <li><a href="https://uxdesign.cc/why-the-double-diamond-isnt-enough-adaa48a8aec1">Why Double Diamond Isn’t Enough</a>, by Adam Gray</li> <li><a href="https://smart-interface-design-patterns.com/articles/design-handoff/">The Best Handoff Is No Handoff</a>, by Vitaly Friedman</li> <li><a href="https://www.youtube.com/watch?v=KnJH6fyf-ek">Design’s Mid-Life Crisis</a> (talk, 35 mins), by Andy Budd</li> <li><a href="https://uxdesign.cc/the-illusion-of-different-design-processes-dc5bed14a7e7">The Illusion of Different Design Processes</a>, by Maximilian Schmidt</li> <li><a href="https://aboutpm.substack.com/p/how-to-align-your-teams">Double Diamond Process at Doodle</a>, by Stephanie Leue</li> </ul> Sun, 15 Oct 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/double-diamond-process/ Should Links Open In New Tabs? https://smart-interface-design-patterns.com/articles/should-links-open-new-tabs/ <p>That’s a question that seems to fuel <strong>never-ending discussions</strong> year after year. Do we open external links in new tabs by default? Do we mark external links? How do we deal with links to PDFs, videos and audios? Let’s figure it out!</p> <p>Below are some <strong>practical UX guidelines</strong> on how to open internal and external links without breaking user’s flow and causing frustration.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/design-bridges/designing-better-links-for-websites-and-emails-a-guideline-5b8638ce675a"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/should-links-open-new-tabs/should-links-open-new-tab.jpg" alt="An old painting of a praying man in the den of lions. The overlay shows as if lions are saying “Click here,” “Fill in this form,” “Check by this link.”" width="733" height="774" loading="lazy"> </a> <figcaption><p><a href="https://medium.com/design-bridges/designing-better-links-for-websites-and-emails-a-guideline-5b8638ce675a">How To Design Better Links</a>, a wonderful article on how to improve links UX, by Slava Shestopalov. <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/should-links-open-new-tabs/should-links-open-new-tab.jpg">Large view</a>.</p> </figcaption> </figure> <h2 id="things-to-keep-in-mind" tabindex="-1">Things To Keep In Mind <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/should-links-open-new-tabs/#things-to-keep-in-mind">#</a></h2> <p>🚫 Users often get lost and confused in their browser tabs.<br> 🚫 Some users don’t realize that they landed in a new tab.<br> 🚫 Users can’t easily go back when links open in new tabs.<br> 🚫 New tabs are especially frustrating for mobile users.<br> ✅ Task completion improves when users feel in control.<br> ✅ Abrupt interruptions cause errors and delays.</p> <p>✅ By default, always open links in the same browser tab.<br> ✅ If there is an external link, make it clear in the link text.<br> ✅ If users are in the middle of a process, warn them.<br> ✅ Explaining links in words is more effective than in icons.</p> <p>✅ Hubs with externals links could open in new tabs.<br> ✅ PDF documents could open in new tabs (desktop only).<br> ✅ Clearly mark links to PDFs, video/audio files as such.<br> 🚫 Whenever possible, avoid PDFs and use HTML instead.</p> <h2 id="should-external-links-be-marked-with-icons" tabindex="-1">Should External Links Be Marked With Icons? <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/should-links-open-new-tabs/#should-external-links-be-marked-with-icons">#</a></h2> <p><a href="https://designnotes.blog.gov.uk/2016/11/28/removing-the-external-link-icon-from-gov-uk/">Not necessarily</a>. As Tim Paul suggests, the icon is often ambiguous and unclear to users as they might confuse it with opening a page in a new window. In general, using a text label to explain that a link will be opened in a new tab is more effective than using an icon.</p> <p>Personally, I have seen external links with external icons <strong>working well in the past</strong>, but it might be a good idea to explore if they are actually needed as they can pollute the page quite a bit when you have a hub of external links on your page.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/should-links-open-new-tabs/#wrapping-up">#</a></h2> <p>When <strong>some links open in new tabs</strong> while others do not, users typically tend to complete their tasks slower, paying close attention to the UI and how it works. That’s also when they try to “take over control” of the interaction by using the right-click menu to open links in a way that they prefer.</p> <p>This isn’t surprising. When links always open in the same tab, users <strong>can always choose</strong> to open them in a new tab or not. But if some links open in a new tab by default, they don’t have that choice until they’ve realized that they are in a new tab, and have to deal win an unintended action.</p> <p>New windows or tabs also cause <strong>accessibility issues</strong> for people with poor vision and screen reader users, especially when they open outside of the area that’s magnified or being read out loudly.</p> <p><strong>Default behavior works best</strong>. It’s accessible, obvious and gives people choice. And that’s exactly what a good UX provides.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/should-links-open-new-tabs/#useful-resources">#</a></h2> <ul> <li><a href="https://medium.com/design-bridges/designing-better-links-for-websites-and-emails-a-guideline-5b8638ce675a">How To Design Better Links</a>, by Slava Shestopalov</li> <li><a href="https://www.w3.org/TR/WCAG20-TECHS/G200.html">WCAG 2.0: Open New Windows and Tabs From a Link Only When Necessary</a></li> <li><a href="https://www.nngroup.com/articles/pdf-unfit-for-human-consumption/">PDF: Still Unfit for Human Consumption</a>, by Anna Kaley, Jakob Nielsen</li> <li><a href="https://designnotes.blog.gov.uk/2016/11/28/removing-the-external-link-icon-from-gov-uk/">Do Not Use An External Icon For Links</a>, by Tim Paul</li> <li><a href="https://medium.com/the-metric/links-should-open-in-the-same-window-447da3ae59ba">Links Should Open in the Same Window</a>, by Michael Schofield</li> <li><a href="https://www.digital.ink/blog/website-links-new-tab/">Should Your Website’s Links Open in a New Tab?</a></li> </ul> <hr> <p>You can find more details on <strong>usability</strong> in the chapters of the <a href="https://smart-interface-design-patterns.com/">video library on Smart Interface Design Patterns</a> 🍣 — with a <a href="https://smart-interface-design-patterns.com/">live UX training</a> that’s coming up later this year.</p> Tue, 26 Sep 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/should-links-open-new-tabs/ How To Make A Strong Case For Accessibility https://smart-interface-design-patterns.com/articles/accessibility-strong-case/ <p><strong>Getting support for accessibility efforts isn’t easy</strong>. There are many <a href="https://a11ymyths.com/">accessibility myths</a>, wrong assumptions and expectations that make accessibility look like a complex, expensive and time-consuming project. Let’s fix that!</p> <p>Below are some practical techniques that has been working well for me to <strong>convince stakeholders</strong> to support and promote accessibility in your company.</p> <h2 id="things-to-keep-in-mind" tabindex="-1">Things To Keep In Mind <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/accessibility-strong-case/#things-to-keep-in-mind">#</a></h2> <p>🚫 You can’t build empathy with facts, charts or legal concerns.<br> 🚫 People often dismiss concerns that they can’t relate to.<br> 🚫 People often don’t know how accessibility applies to them.<br> 🚫 People often assume that accessibility is dull and boring.<br> 🚫 Business often neglects it as irrelevant edge case.</p> <p>✅ Nothing is more impactful than seeing users struggle.<br> ✅ Bring users with disabilities for testing to show accessibility.<br> ✅ Ask for small commitments first, then progress from there.<br> ✅ Accessibility isn’t expensive nor tedious if done early.<br> ✅ But it can be very expensive when retrofitted or done late.</p> <p>🚫 Don’t mistake polite nodding for agreement or commitment.<br> ✅ Anticipate objections about costs, competition, slowdowns.<br> ✅ Make a business case for lower costs and increased revenue.<br> ✅ Create a roadmap with actions, timelines, roles and goals.<br> ✅ Set up regular accessibility testing (e.g. every 6–8 months).</p> <figure class="c-article__image u-flow--xs"> <a href="https://inclusive.microsoft.design/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/accessibility-strong-case/01-accessibility-strong-case.jpg" alt="An overview of permanent, temporary and situational disabilities, as they relate to touch, seeing and hearing. E.g. Touch can vary from One arm (permanent) to Arm injury (temporary) to New parent (Situational)." width="800" height="1327" loading="lazy"> </a> <figcaption><p><a href="https://inclusive.microsoft.design/">Inclusive Design Toolkit</a>, kindly shared by Microsoft, highlighting permanent, temporary and situational disabilities. <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/accessibility-strong-case/01-accessibility-strong-case.jpg">Large view</a>.</p> </figcaption> </figure> <h2 id="but-accessibility-is-an-edge-case" tabindex="-1">“But Accessibility Is An Edge Case!” <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/accessibility-strong-case/#but-accessibility-is-an-edge-case">#</a></h2> <p>❌ ”<strong>But accessibility is an edge case</strong>. Given the state of finances right now, unfortunately we really can’t invest in it right now.”</p> <p>🙅🏼‍♀️ “I respectfully disagree. 1 in 6 people around the world experience disabilities. In fact, our competitors <em>[X, Y, Z]</em> have launched accessibility efforts (<em>[references]</em>), and we seem to be lagging behind. Plus, it doesn’t have to be expensive. But it will be very expensive once we retrofit much later.”</p> <h2 id="but-we-dont-have-disabled-users" tabindex="-1">“But We Don’t Have Disabled Users!” <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/accessibility-strong-case/#but-we-dont-have-disabled-users">#</a></h2> <p>❌ “Why should we prioritize accessibility? Looking at our data, <strong>we don’t really have any disabled users</strong> at all. Seems like a waste of time and resources.”</p> <p>🙅🏼‍♀️ “Well, if a product is inaccessible, disabled users can’t and won’t be using it. But if we do make our product more accessible, we open the door for prospect users for years to come. Even small improvements can have a high impact. It doesn’t have to be expensive nor time-consuming.”</p> <h2 id="screen-readers-wont-work-with-our-complex-system" tabindex="-1">“Screen Readers Won’t Work With Our Complex System!” <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/accessibility-strong-case/#screen-readers-wont-work-with-our-complex-system">#</a></h2> <p>❌ Our application is very complex and used by expert users. Would it even <strong>work at all with screen readers</strong>?”</p> <p>🙅🏼‍♀️ “It’s not about designing only for screen readers. Accessibility can be permanent, but it can also be temporary and situational — e.g. when you hold a baby in your arms, or if you had an accident. Actually it’s universally useful and beneficial for everyone.”</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/accessibility-strong-case/#wrapping-up">#</a></h2> <p>To many people, accessibility is a <strong>big mystery box</strong>. They might have never seen a customer with disabilities using their product, and they don’t really understand what it involves and requires. But we can <strong>make accessibility relatable</strong>, approachable and visible by bringing accessibility testing to our companies — even if it’s just a handful of tests with people with disabilities.</p> <p>No manager really wants to <strong>deliberately ignore the needs</strong> of their paying customers — they just need to understand these needs first. Ask for small commitments, and get the ball rolling from there.</p> <p><strong>Set up an accessibility roadmap</strong> with actions, timelines, roles and goals. Frankly, this strategy has been working for me much better than arguing about legal and moral obligations, which typically makes stakeholders defensive and reluctant to commit.</p> <p><strong>Fingers crossed</strong>, and thank you for your incredible work for pushing accessibility forward, everyone!</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/accessibility-strong-case/#useful-resources">#</a></h2> <ul> <li><a href="https://www.deque.com/blog/the-business-case-for-accessibility/">How To Make The Business Case For Accessibility</a>, by R Gregory Williams</li> <li><a href="https://medium.com/google-design/making-the-case-for-accessibility-350da9e30c84">Making The Case for Accessibility</a>, by Susanna Zaraysky</li> <li><a href="https://www.smashingmagazine.com/2021/07/strong-case-for-accessibility/">Making A Strong Case For Accessibility</a>, by Todd Libby</li> <li><a href="https://www.deque.com/resources/type/accessibility-case-studies/">Accessibility Case Studies and Success Stories</a>, by Deque</li> <li><a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-accessibility-activity-7031928918429331456-ImIn/">Inclusive Design Toolkits and Templates</a>, by yours truly</li> </ul> <hr> <p>You can find more details on <strong>design systems</strong> in the new chapters of the <a href="https://smart-interface-design-patterns.com/">video library on Smart Interface Design Patterns</a> 🍣 — with a <a href="https://smart-interface-design-patterns.com/">live UX training</a> that’s coming up later this year.</p> Sun, 17 Sep 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/accessibility-strong-case/ How To Design For Autistic People https://smart-interface-design-patterns.com/articles/design-autism/ <p><strong>Nearly 1% of the global population is autistic</strong>. Yet often it’s not obvious how to consider the needs of autistic people in the design process. Let’s change that.</p> <p>Below are some general <strong>UX guidelines</strong>, do’s and don’ts to design better UX — for autistic people and everybody else. Most of these guidelines are <strong>universal</strong>, and improve the experience for everyone.</p> <figure class="c-article__image u-flow--xs"> <a href="https://accessibility.blog.gov.uk/2016/09/02/dos-and-donts-on-designing-for-accessibility/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-autism/01-autism-poster.jpg" alt="A screenshot of the poster with main guidelines for designing for autistic people." width="800" height="1131" loading="lazy"> </a> <figcaption><p><a href="https://accessibility.blog.gov.uk/2016/09/02/dos-and-donts-on-designing-for-accessibility/">Design guidelines on how to design for autistic people</a> (PDF), from a wonderful series of inclusive design posters by Gov.uk. <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-autism/01-autism-poster.jpg">Large view</a>.</p> </figcaption> </figure> <h2 id="there-is-no-single-autistic-experience" tabindex="-1">There Is No Single “Autistic Experience” <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-autism/#there-is-no-single-autistic-experience">#</a></h2> <p>Essentially, autism is a different way of experiencing the world. The experience is usually intense and tangled. However, every person on the <strong>autism spectrum</strong> experiences the world differently.</p> <p>Oftentimes with their own superpowers in fast learning or keen attention to details, and sometimes with <strong>enormous frustration</strong> about the busy and noisy world. In fact, 40% of autistic people have an anxiety disorder.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.autism.org.uk/what-we-do/help-and-support/how-to-talk-about-autism"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-autism/02-autism-guide.jpg" alt="A wonderful resource with examples, do’s and don’ts, by National Autistic Society in the UK" width="800" height="656" loading="lazy"> </a> <figcaption><p><a href="https://www.autism.org.uk/what-we-do/help-and-support/how-to-talk-about-autism">How To Talk And Write About Autism</a> (PDF), a wonderful resource with examples, do’s and don’ts, by National Autistic Society in the UK.</p> </figcaption> </figure> <p>One can’t grow out of autism, and all autistic children usually grow up into autistic adults. As autists, we usually have a low tolerance to uncertainty and lack of control. Autistic people are also <strong>strongly sensitive to bright colors</strong> and high contrast — and tend to be very literal, so it’s hard to infer meaning that’s not obvious.</p> <h2 id="guidelines-to-design-for-autistic-users" tabindex="-1">Guidelines To Design For Autistic Users <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-autism/#guidelines-to-design-for-autistic-users">#</a></h2> <p>🚫 Avoid bright contrasting colors and high luminance.<br> 🚫 Avoid figures of speech and idioms (verbal or visual).<br> 🚫 Avoid animations that are hard to control.<br> 🚫 Avoid non-conventional scrolling behaviour (parallax).<br> 🚫 Avoid time countdowns, time outs, a sense of urgency.<br> 🚫 Don’t rely on jargon, abbreviations, sarcasm, idioms.</p> <p>✅ Show all content about a subject on a single page.<br> ✅ Use soft, muted colors and avoid pure white or black.<br> ✅ Add text labels to icons and avoid icons-only buttons.<br> ✅ Allow users to save and return to forms later.<br> ✅ Respect user’s reduced motion preferences.<br> ✅ Support email/chat as communication options.<br> ✅ Autistic children tend to be visual learners.<br> ✅ Autistic adults prefer well-structured text.</p> <p>You can find <strong>further guidelines and examples</strong> in <a href="https://uxdesign.cc/inclusive-design-guide-7-principles-of-designing-for-the-autistic-community-1e6dcd4bae85">Designing For Autistic People: A Guide</a> by Irina Rusakova.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-autism/#wrapping-up">#</a></h2> <p>We can rarely design <strong>one single perfect experience</strong> for absolutely everyone. But by involving a diverse group of users in usability testing, we can make our products more accessible for absolutely everyone.</p> <p>Whenever you can, involve colorblind users, autistic people and people with disabilities into testing — you will always learn useful insights. That might be a few hours of work for us, but it might be absolutely <strong>life-changing</strong> for other people — and that’s worth it every single time.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-autism/#useful-resources">#</a></h2> <ul> <li><a href="https://uxdesign.cc/inclusive-design-guide-7-principles-of-designing-for-the-autistic-community-1e6dcd4bae85">Designing For Autistic People: A Guide</a>, by Irina Rusakova</li> <li><a href="https://www.autism.org.uk/what-we-do/help-and-support/how-to-talk-about-autism">How to Talk and Write About Autism (PDF Guide)</a></li> <li><a href="https://uxdesign.cc/designing-for-autistic-people-overview-of-existing-research-d6f6dc20710e">Design For Autistic People: Existing Research</a>, by Irina Rusakova</li> <li><a href="https://accessibility.blog.gov.uk/2016/09/02/dos-and-donts-on-designing-for-accessibility/">Designing For Users On The Autistic Spectrum (PDF)</a></li> <li><a href="https://www.uxmatters.com/mt/archives/2015/10/usability-testing-with-people-on-the-autism-spectrum-what-to-expect.php">Usability Testing with Autistic People</a>, by Varnagy-Toth Zsombor</li> <li><a href="https://www.penguin.co.uk/books/289738/the-pattern-seekers-by-baron-cohen-simon/9780141982397">The Pattern Seekers (Book)</a>, by Simon Baron-Cohen</li> <li><a href="https://www.amazon.co.uk/Connecting-Autism-Spectrum-Shouldnt-High-Functioning/dp/1647398312">Connecting with the Autism Spectrum (Book)</a>, by Casey Remrov Vormer</li> </ul> <hr> <p>You can find more details on <strong>design systems</strong> in the new chapters of the <a href="https://smart-interface-design-patterns.com/">video library on Smart Interface Design Patterns</a> 🍣 — with a <a href="https://smart-interface-design-patterns.com/">live UX training</a> that’s coming up later this year.</p> Wed, 23 Aug 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/design-autism/ How To Name Design Tokens in Design Systems https://smart-interface-design-patterns.com/articles/naming-design-tokens/ <p>Design tokens represent <strong>small, repeatable design decisions</strong>. Instead of using exact HEX or px-values, we refer to a token which name describes how and where they are used. It makes it much easier to update the design by changing one value in one place and not breaking anything else in-between.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/@NateBaldwin/creating-a-flexible-design-token-taxonomy-for-intuits-design-system-81c8ff55c59b"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/naming-design-tokens/01-design-token-taxonomy.png" alt="Naming design tokens, a nomenclature" width="533" height="260" loading="lazy"> </a> <figcaption><p><a href="https://medium.com/@NateBaldwin/creating-a-flexible-design-token-taxonomy-for-intuits-design-system-81c8ff55c59b">Creating a flexible design token taxonomy for Intuit’s Design System</a>, a thorough case study by Nate Baldwin.</p> </figcaption> </figure> <p>We <strong>break apart every single UI component</strong> into standalone tokens. The more specific these tokens are, the more confidence we have in using and changing them across the product. But the more generic the tokens, the more flexibility we have in using them. In fact, components tokens is where most design system teams struggle.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/@NateBaldwin/creating-a-flexible-design-token-taxonomy-for-intuits-design-system-81c8ff55c59b"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/naming-design-tokens/02-design-token-taxonomy.png" alt="Naming design tokens, a nomenclature" width="533" height="102" loading="lazy"> </a> <figcaption><p><a href="https://medium.com/@NateBaldwin/creating-a-flexible-design-token-taxonomy-for-intuits-design-system-81c8ff55c59b">Taxonomy and naming conventions</a>, from [type][element] to [state][index].</p> </figcaption> </figure> <p>Naming patterns are exhibited via <strong>naming levels</strong> — e.g. <em>{namespace}-{category}-{role}-{modifier}-{theme}</em>). Common levels are category, concept, property, variant/scale and state. Regular design systems typically use a few levels, but large multi-platform systems might have as many as <strong>5–6 naming levels</strong>.</p> <h2 id="the-different-flavors-of-design-tokens" tabindex="-1">The Different Flavors of Design Tokens <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/naming-design-tokens/#the-different-flavors-of-design-tokens">#</a></h2> <p><strong>Good tokens explain what they do</strong> (e.g. <em>badge-background-color-hover</em>). However, tokens come in different flavors and shades, and it’s not uncommon to have multiple levels of design tokens referencing each other:</p> <ul> <li><strong>Raw values</strong> are the actual design choices (<em>#147AF3</em>).</li> <li><strong>Primitives (global tokens)</strong> are used across the system (<em>blue-800</em>).</li> <li><strong>Semantic (alias tokens)</strong> reference other tokens (<em>accent-visual-color</em>).</li> <li><strong>Component tokens</strong> apply to UI components (<em>button-accent-color</em>).</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/eightshapes-llc/naming-tokens-in-design-systems-9e86c7444676"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/naming-design-tokens/04-naming-design-tokens.png" alt="Naming design tokens, a nomenclature" width="533" height="310" loading="lazy"> </a> <figcaption><p><a href="https://medium.com/eightshapes-llc/naming-tokens-in-design-systems-9e86c7444676">Naming Tokens in Design Systems</a>, a very thorough introduction by Nathan Curtis.</p> </figcaption> </figure> <h2 id="things-to-keep-in-mind" tabindex="-1">Things To Keep In Mind <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/naming-design-tokens/#things-to-keep-in-mind">#</a></h2> <ul> <li>We use <strong>naming levels</strong> to add context to tokens: e.g. <em>{context}-{role}-{modifier}</em>.</li> <li><strong>Namespaces</strong> might help, too: e.g. <em>{namespace}-{concept}-{role}-{modifier}</em>.</li> <li>E.g. <em>--n-feedback-alert-success</em>, <em>--n-checkbox-control-size-large</em>.</li> <li><strong>Frequent levels</strong> are category, component, property, variant/scale, state, mode.</li> <li><strong>Namespaces</strong> (system, theme, domain) are prepended first.</li> <li><strong>Base levels</strong> (category, property, concept) are a backbone in the middle.</li> <li><strong>Modifiers</strong> (variant, state, scale, mode) tend to be appended last.</li> <li>Regular systems use <strong>2–4 levels</strong>, large systems can use many more.</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/supercharge-your-design-system-with-design-tokens-55044fa29142"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/naming-design-tokens/03-design-token-structure.jpg" alt="Naming design tokens, a nomenclature" width="533" height="385" loading="lazy"> </a> <figcaption><p><a href="https://uxdesign.cc/supercharge-your-design-system-with-design-tokens-55044fa29142">Supercharge your Design System with Design Tokens</a>, a friendly guide by Jishnu Hari.</p> </figcaption> </figure> <h2 id="useful-examples-of-design-tokens" tabindex="-1">Useful Examples of Design Tokens <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/naming-design-tokens/#useful-examples-of-design-tokens">#</a></h2> <p>The larger the design system, the more likely they designers are to use design tokens. The examples below include very <strong>thorough documentation on design tokens</strong>, and some guidelines when to use which. Just a few options from my bookmarks.</p> <ul> <li><a href="https://nordhealth.design/naming/">Naming Conventions and Design Tokens at Nordhealth</a></li> <li><a href="https://design.gs.com/foundation/color-system/color-tokens">Goldman Sachs Color Tokens System</a></li> <li><a href="https://luna.sainsburys.co.uk/foundations/design-tokens/">Sainsbury's Luna Design Tokens</a></li> <li><a href="https://newskit.co.uk/theme/foundation/design-tokens/">NewsKit Design Tokens and Style Presets</a></li> <li><a href="https://paste.twilio.design/tokens">Twilio Design Tokens Guidelines</a></li> <li><a href="https://primer.style/design/foundations/color">Github Design Tokens Guidelines</a></li> <li><a href="https://atlassian.design/tokens/design-tokens">Design Tokens at Atlassian Design System</a></li> <li><a href="https://gestalt.pinterest.systems/foundations/design_tokens">Design Tokens at Pinterest</a></li> <li><a href="https://polaris.shopify.com/tokens/color">Shopify's Polaris Design Tokens</a></li> <li><a href="https://design.if.eu/develop/design-tokens/">If... Design Tokens</a></li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://paste.twilio.design/tokens"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/naming-design-tokens/05-paste-design-system.png" alt="Naming design tokens, a nomenclature" width="533" height="260" loading="lazy"> </a> <figcaption><p><a href="https://paste.twilio.design/tokens">Design Tokens in the Paste Design System</a>, with a structure chart documenting design decisions.</p> </figcaption> </figure> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/naming-design-tokens/#useful-resources">#</a></h2> <ul> <li><a href="https://medium.com/eightshapes-llc/naming-tokens-in-design-systems-9e86c7444676">Naming Tokens in Design Systems</a>, by Nathan Curtis</li> <li><a href="https://uxdesign.cc/naming-design-tokens-9454818ed7cb">Practical Guide to Naming Design Tokens</a>, by Lukas Oppermann</li> <li><a href="https://uxdesign.cc/supercharge-your-design-system-with-design-tokens-55044fa29142">Supercharge Your Design System with Design Tokens</a>, by Jishnu Hari</li> <li><a href="https://www.figma.com/community/plugin/843461159747178978/Figma-Tokens">Figma Tokens Plugin</a>, by Jan Six</li> <li><a href="https://designstrategy.guide/design-system/design-tokens-101/">Design Tokens 101</a>, by Romina Kavcic</li> <li><a href="https://thedesignsystem.guide/design-tokens">Guide To Design Tokens and Naming Conventions</a>, by Romina Kavcic</li> <li><a href="https://medium.com/@NateBaldwin/creating-a-flexible-design-token-taxonomy-for-intuits-design-system-81c8ff55c59b">Design Tokens For Intuit’s Design System</a>, by Nate Baldwin</li> <li><a href="https://specifyapp.com/guides/design-data-platforms-101/04-design-tokens-and-assets">Friendly Guide to Design Tokens</a> (+ Figma template), by Specify</li> <li><a href="https://www.figma.com/community/file/1096728307713953219/Naming-Tokens-in-Design-Systems">Naming Tokens in Design Systems (Figma Kit)</a>, by Marta Conde</li> <li><a href="https://www.youtube.com/watch?v=Ka1I5TphDb0">Design Tokens in Figma: How to Get Started, Today</a> (Video), by Jan Six</li> <li><a href="https://github.com/sturobson/Awesome-Design-Tokens">Everything on Design Tokens</a>, by Stuart Robson</li> </ul> <hr> <p>You can find more details on <strong>design systems</strong> in the new chapters of the <a href="https://smart-interface-design-patterns.com/">video library on Smart Interface Design Patterns</a> 🍣 — with a <a href="https://smart-interface-design-patterns.com/">live UX training</a> that’s coming up later this year.</p> Tue, 22 Aug 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/naming-design-tokens/ Free Books For Interface & UX Designers https://smart-interface-design-patterns.com/articles/interface-design-books/ <p>These books have been kindly <strong>shared by the community</strong>, with lessons learned by authors for everybody to read and benefit from. A sincere, enormous thank-you to the authors for making their work available to everyone for free. Hopefully you and your friends will find them useful, too.</p> <h2 id="free-books-for-designers" tabindex="-1">Free Books For Designers <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/interface-design-books/#free-books-for-designers">#</a></h2> <ul> <li><a href="https://shapeofdesignbook.com/download/">The Shape of Design</a>, by Frank Chimero, Mandy Brown</li> <li><a href="https://dataschool.com/how-to-design-a-dashboard/">How To Design a Dashboard</a>, by Matt David</li> <li><a href="https://maadmob.com.au/speaking/books/practical-ia">A Practical Guide to Information Architecture</a>, by Donna Spencer</li> <li><a href="https://themanagershandbook.com/">The Manager's Handbook</a>, by Alex MacCaw</li> <li><a href="https://www.designbetter.co/business-thinking-for-designers/need-know-business">Business Thinking for Designers</a>, by Ryan Rumsey</li> <li><a href="https://xd.adobe.com/ideas/wp-content/uploads/2021/06/Animation-in-Design-Systems.pdf">Animation in Design System eBook</a>, by Val Head</li> <li><a href="https://basecamp.com/shapeup">Shape Up: Stop Running in Circles and Ship Work that Matters</a>, by Ryan Singer</li> <li><a href="https://www.intercom.com/resources/books/intercom-jobs-to-be-done">Jobs to Be Done</a> + <a href="https://www.intercom.com/resources/books/intercom-starting-up">Starting Up</a>, by Intercom</li> <li><a href="https://blog.typekit.com/2016/04/29/combining-typefaces-free-guide-to-great-typography/">Combining Typefaces: Free guide to great typography</a>, by Tim Brown</li> <li><a href="https://practicaltypography.com/">Practical Typography</a>, by Matthew Butterick</li> <li><a href="https://shadycharacters.co.uk/">Shady Characters</a>, by Keith Houston</li> <li><a href="https://static.googleusercontent.com/media/fonts.google.com/en//knowledge/stop_stealing_sheep.pdf">Stop Stealing Sheep &amp; Find Out How Type Works</a>, by Erik Spiekermann</li> <li><a href="https://designingfortheweb.co.uk/">Designing For The Web</a>, by Mark Boulton</li> <li><a href="https://www.accessibility.uxdesign.cc/">Giving a Damn About Accessibility</a>, by Sheri Byrne-Haber</li> <li><a href="https://www.process-masterclass.com/free-resources">Typography Playbook</a></li> <li><a href="https://www.intercom.com/resources/books/growth-handbook">The Growth Handbook</a>, by Intercom Authoritative, actionable strategies from industry leaders on how to grow your business.</li> <li><a href="https://www.designbetter.co/enterprise-design-sprints">Enterprise Design Sprints</a>, by Richard Banfield</li> <li><a href="https://www.intercom.com/resources/books/intercom-customer-engagement">Customer Engagement Handbook</a>, by Intercom</li> <li><a href="https://whydoweinterface.com/">Why Do We Interface, by Ehsan Noursalehi</a> A historical look at the past, the present and future of digital interfaces.</li> <li><a href="https://www.intercom.com/blog/onboarding-guide/">The Onboarding Guide</a>, by Phil Byrne</li> <li><a href="https://gathercontent.com/guides/content-strategy-a-guide-for-ux-designers">Content Strategy: A Guide for UX Designers</a>, by Liam King</li> <li><a href="https://www.howtomakesenseofanymess.com/">How To Make Sense Of Any Mess</a>, by Abby Covert</li> <li><a href="https://roadmunk.com/product-prioritization-ebook/">The Complete Guide to Product Prioritization</a></li> <li><a href="https://gathercontent.com/resource/books">Free Content Design eBooks for UX Designers</a></li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://shapeofdesignbook.com/download/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/interface-design-books/interface-design-books.jpg" alt="A cover of the book, with a stone surrounded by an ellipsis, and indicating wisdom and insights." width="733" height="865" loading="lazy"> </a> <figcaption><p><a href="https://shapeofdesignbook.com/download/">Shape of Design</a>, a wonderful book all around design, its main purpose and how to be a better designer.</p> </figcaption> </figure> <h2 id="the-monster-list-of-ux-books" tabindex="-1">The Monster List Of UX Books <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/interface-design-books/#the-monster-list-of-ux-books">#</a></h2> <p>If you are looking for a categorized, searchable list of UX books, <a href="https://www.airtable.com/universe/expqM3OWZoJkjl7wy/the-monster-list-of-ux-books?explore=true">The Monster List of UX Books</a> is a fantastic up-to-date list of UX books, grouped by categories, ranked, tagged, searchable and with references to authors. You can suggest and rate books as well. Kindly maintained by Chris Oliver.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.airtable.com/universe/expqM3OWZoJkjl7wy/the-monster-list-of-ux-books?explore=true"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/interface-design-books/monster-list-of-UX-books.png" alt="A screenshot with a grid of 6 books published recently on interaction design, customer experience and copywriting." width="1251" height="885" loading="lazy"> </a> <figcaption><p><a href="https://www.airtable.com/universe/expqM3OWZoJkjl7wy/the-monster-list-of-ux-books?explore=true">Monster List of UX Books</a>, a wonderful collection of books, neatly categorized in one single place.</p> </figcaption> </figure> <h2 id="my-favorite-books" tabindex="-1">My Favorite Books <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/interface-design-books/#my-favorite-books">#</a></h2> <p>Some of the most remarkable books I’m remembering reading are the ones that questioned what I believe in, and change my view of the comfortable universe which I have built around me over the years. Here are some of such books that I keep very close to my heart (in no specific order):</p> <ul> <li><em>The User Experience Team of One</em>, by Leah Buley</li> <li><em>The Shape of Design</em>, by Frank Chimero</li> <li><em>Just Enough Research</em>, by Erika Hall</li> <li><em>How To Make Sense of Any Mess</em>, by Abby Covert</li> <li><em>Mismatch: How Inclusion Shapes Design</em>, by Kat Holmes</li> <li><em>Design Systems</em>, by Alla Kholmatova</li> <li><em>Universal Principles of Design</em>, by Jill Butler, Kritina Holden, William Lidwell</li> <li><em>Making of a Manager</em>, by Julie Zhuo</li> <li><em>Envisioning Information</em>, by Edward Tufte</li> <li><em>Form Design Patterns</em>, by Adam Silver</li> <li><em>Change by Design</em>, by Tim Brown</li> <li><em>Meeting Design</em>, by Kevin M. Hoffman</li> <li><em>The Laws of Simplicity</em>, by John Maeda</li> <li><em>Steal Like An Artist</em>, by Austin Kleon</li> <li><em>Build</em>, by Tony Fadell</li> </ul> <p>I could never emphasize enough <strong>just how grateful I am</strong> to authors taking the time to put together their thoughts and experiences in a book. I know just how much I personally learned from each of the books — and there are so many other wonderful books to discover!</p> <p>If you can, please support authors and your local stores — and perhaps even send a warm hello to them to let them know just how valuable and impactful their writing has been to you.</p> Thu, 17 Aug 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/interface-design-books/ Color Contrast Cheat Sheet PDF https://smart-interface-design-patterns.com/articles/color-contrast-cheat-sheet/ <p><strong>Poor color contrast</strong> is the most common problem on the web. Here are some useful guidelines for text and buttons, with minimum contrast recommendations for better legibility, a few color contrast tools and useful resources.</p> <h2 id="how-color-contrast-is-calculated" tabindex="-1">How Color Contrast Is Calculated <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/color-contrast-cheat-sheet/#how-color-contrast-is-calculated">#</a></h2> <p>In general, color contrast captures the <strong>difference in brightness</strong> between two or more colors. We often use it to measure how well one foreground color works against a background color. Under the hood, the contrast is calculated using relative luminance of colors.</p> <figure class="c-article__image u-flow--xs"> <a href="https://pimpmytype.com/color-contrast/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/color-contrast-cheat-sheet/color-contrast-cheat-sheet--opt.jpg" alt="Color contrast cheat sheet, describing guidelines for normal text (4.5:1), large text (3:1), bold text (3:1), icons and graphs (3:1) and other UI elements (3:1)." width="456" height="553" loading="lazy"> </a> <figcaption><p><a href="https://pimpmytype.com/color-contrast/">Color Contrast Cheat Sheet PDF (scroll to the bottom)</a>, kindly shared by Oliver Schöndorfer. <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/color-contrast-cheat-sheet/color-contrast-cheat-sheet--opt.jpg">Large view</a>.</p> </figcaption> </figure> <p>The <strong>greater the difference in luminance</strong>, the higher the contrast ratio. And the higher the contrast ratio, the better the readability. For example, white-on-white has the 1:1 contrast ratio (minimum), black-on-white is 21:1 (maximum).</p> <p>However, we don’t need extreme color contrast though. In practice, <strong>moderate contrast between these extremes</strong> usually works best. We use color contrast to ensure legibility and color differentiation in our UIs. Keep in mind that a high color contrast alone <a href="https://smart-interface-design-patterns.com/articles/colorblindness-design/">isn’t sufficient for colorblind people</a>.</p> <h2 id="wcag-21-level-aa-minimum-contrast-cheat-sheet" tabindex="-1">WCAG 2.1 Level AA, Minimum Contrast Cheat Sheet <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/color-contrast-cheat-sheet/#wcag-21-level-aa-minimum-contrast-cheat-sheet">#</a></h2> <p>✅ Level AA is considered the industry standard today<br> ✅ 4.5:1 for regular text vs. background (7.1 for AAA)<br> ✅ 3:1 for text larger than 24px (4.5:1 for AAA)<br> ✅ 3:1 for bold text larger than 19px (4.5:1 for AAA)<br> ✅ 3:1 icons and graphs of any size<br> ✅ 3:1 UI elements, buttons, borders, underlines</p> <p>Please keep in mind that these guidelines are <strong>minimum recommendations</strong>, and color contrast is one of the many factors that contribute to better accessibility. We might want to add a border to create boundaries for our UI components. And it is a good idea to add an icon or an underline to clearly mark interactive components.</p> <p>You can find more details and a <a href="https://pimpmytype.com/color-contrast/">cheatsheet PDF in the end of Oliver’s article</a> (email is required).</p> <h2 id="useful-color-contrast-tools" tabindex="-1">Useful Color Contrast Tools <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/color-contrast-cheat-sheet/#useful-color-contrast-tools">#</a></h2> <ul> <li><a href="https://colorable.jxnblk.com/">Colorable Accessibility Tool</a></li> <li><a href="https://randoma11y.com/">Random Accessible Color Schemes</a></li> <li><a href="https://www.learnui.design/tools/accessible-color-generator.html">Closest Accessible Colors Generator</a></li> <li><a href="https://contrast-grid.eightshapes.com/">Accessible Color Contrast Grid</a></li> <li><a href="https://abc.useallfive.com/">Accessible Brand Colors Generator</a></li> <li><a href="https://www.figma.com/community/plugin/733159460536249875/A11y---Color-Contrast-Checker">A11y Color Contrast in Figma</a></li> <li><a href="https://leonardocolor.io/">Leonardo Color Palette Generator</a></li> <li><a href="https://www.figma.com/community/plugin/733343906244951586/Color-Blind">Color Blind Figma Plugin</a></li> <li><a href="https://www.getstark.co/">Stark Accessibility Plugin for Figma</a></li> </ul> <h2 id="useful-articles-on-color-contrast" tabindex="-1">Useful Articles on Color Contrast <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/color-contrast-cheat-sheet/#useful-articles-on-color-contrast">#</a></h2> <ul> <li><a href="https://pimpmytype.com/color-contrast/">Fix Color Contrast – Web Accessibility for Text &amp; UI Design</a>, by Oliver Schöndorfer</li> <li><a href="https://stephaniewalter.design/blog/color-accessibility-tools-resources-to-design-inclusive-products/">Color Accessibility: Tools and Resources</a>, by Stéphanie Walter</li> <li><a href="https://colorandcontrast.com/">An Interactive Guide To Colors and Contrast</a>, by Nate Baldwin</li> <li><a href="https://uxdesign.cc/the-dark-yellow-problem-in-design-system-color-palettes-a0db1eedc99d">The “Dark Yellow Problem” in Color Palettes</a></li> <li><a href="https://stripe.com/blog/accessible-color-systems">Designing Accessible Color Systems (Stripe case study)</a>, by Daryl Koopersmith, Wilson Miner</li> <li><a href="https://wildbit.com/blog/accessible-palette-stop-using-hsl-for-color-systems">Accessible Palette: Stop Using HSL for Color Systems</a>, by Eugene Fedorenko</li> <li><a href="https://blog.datawrapper.de/color-contrast-check-data-vis-wcag-apca/">Color Contrast Guidelines With APCA</a>, by Lisa Charlotte Muth</li> </ul> Mon, 14 Aug 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/color-contrast-cheat-sheet/ A Guide For Designing For Older Adults https://smart-interface-design-patterns.com/articles/design-older-adults/ <h2 id="avoid-wrong-assumptions" tabindex="-1">Avoid Wrong Assumptions <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-older-adults/#avoid-wrong-assumptions">#</a></h2> <ul> <li><strong>Don’t assume</strong> that older adults struggle to use digital.</li> <li>You don’t need to strip the design to bare minimum.</li> <li><strong>Avoid general stereotypes and assumptions</strong> about elderly people.</li> <li>Most users are <strong>healthy, active</strong> and have a solid income.</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/so-youre-managing-a-design-team-56d140f6241b"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-older-adults/design-older-adults.jpg" alt="An example with large options that are more accessible for everyone" width="456" height="553" loading="lazy"> </a> <figcaption><p><a href="https://uxdesign.cc/golden-microcopy-helping-older-users-use-your-product-f0f1b173aa3e">How To Write Better Microcopy For Older Adults</a> highlights practical examples of designing interfaces with older adults in mind.</p> </figcaption> </figure> <h2 id="things-to-keep-in-mind" tabindex="-1">Things To Keep In Mind <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-older-adults/#things-to-keep-in-mind">#</a></h2> <ul> <li>Older adults <strong>often read and analyze every word</strong> (Stroop effect).</li> <li><strong>Shades of blue/purple and yellow/green</strong> are difficult to distinguish.</li> <li>Visuals with a similar contrast are harder to tell apart.</li> <li>Often <strong>struggle with precise movements</strong> and text input.</li> <li>Users are more likely to perform actions they didn’t mean to.</li> <li>They take more time and need more control over the process.</li> <li>They often <strong>view error messages as a personal failure</strong>.</li> </ul> <h2 id="things-to-avoid" tabindex="-1">Things To Avoid <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-older-adults/#things-to-avoid">#</a></h2> <ul> <li><strong>Avoid disappearing messages</strong>: let users close them.</li> <li><strong>Avoid accessibility overlays</strong>; they are often inaccessible.</li> <li>Avoid long, fine drag gestures and precision.</li> <li><strong>Avoid floating labels</strong> and use static field labels.</li> <li>Don’t rely on icons alone: add descriptive labels.</li> <li><strong>Ask for explicit confirmation</strong> for destructive actions.</li> <li>Add a &quot;Back&quot; link in addition to browser’s “Back” button.</li> <li>In forms, present <strong>one question or one topic per screen</strong>.</li> </ul> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-older-adults/#useful-resources">#</a></h2> <ul> <li> <p><a href="https://uxdesign.cc/so-youre-managing-a-design-team-56d140f6241b">So, You’re Managing a Design Team</a>, by Alex Mandel</p> </li> <li> <p><a href="https://uxdesign.cc/golden-microcopy-helping-older-users-use-your-product-f0f1b173aa3e">How To Write Better Microcopy For Older Adults</a>, by Michal Halperin Ben Zvi (PhD.) and Kinneret Yifrah.</p> </li> <li> <p><a href="https://medium.com/salesforce-ux/what-you-can-learn-from-older-adults-about-accessible-design-63181b450863">What You Can Learn From Older Adults About Accessible Design</a>, by Becca Selah</p> </li> <li> <p><a href="https://www.toptal.com/designers/ui/ui-design-for-older-adults">A Guide to Interface Design For Older Adults</a>, by Sergei Polyuk</p> </li> <li> <p><a href="https://www.uxmatters.com/mt/archives/2017/04/designing-user-interfaces-for-an-aging-population.php">Designing User Interfaces for an Aging Population</a>, by Jeff Johnson and Kate Finn</p> </li> <li> <p><a href="https://www.thejoint.org.il/en/log-in-guidebook/">Age-Friendly Digital Design Toolkit</a> (PDF guide, email required)</p> </li> <li> <p><a href="https://ageing-better.org.uk/news/age-positive-image-library-launched">Age-Positive Image Library</a></p> </li> <li> <p><a href="https://medium.com/digital-assistant-academy/voice-design-strategies-for-the-elderly-population-17ea9c83859f">Voice Design Strategies for the Elderly Population</a>, by Shyamala Prayaga</p> </li> <li> <p><a href="https://www.smashingmagazine.com/2019/11/online-environments-older-users/">Creating Online Environments That Work Well For Older Users</a>, by Barry Rueger</p> </li> <li> <p><a href="https://www.nngroup.com/articles/usability-testing-older-adults/">Usability Testing With Older Adults</a>, by Megan Chan</p> </li> </ul> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-older-adults/#wrapping-up">#</a></h2> <p>We should be careful not to make our design decisions based on assumptions that are often not true at all. <strong>We don’t need a “barebones” version for older users</strong>. We need a reliable, inclusive product that helps people of all groups feel <strong>independent and competent</strong>.</p> <p>Bring older adults in your design process to find out what their specific needs are. It’s not just better for that specific target audience — good accessibility is better for everyone. And huge kudos to wonderful people contributing to a topic that is often forgotten and overlooked.</p> Tue, 25 Jul 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/design-older-adults/ Practical Guide For UX and Design Managers https://smart-interface-design-patterns.com/articles/design-management/ <h2 id="things-to-avoid-as-a-design-manager" tabindex="-1">Things To Avoid as a Design Manager <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-management/#things-to-avoid-as-a-design-manager">#</a></h2> <ul> <li>Most managers <strong>don’t give enough feedback</strong>.</li> <li><strong>Don’t “sandwich” feedback</strong> — critique with humility.</li> <li>Never do your team’s work; help them do their best work.</li> <li><strong>Don’t mandate decisions</strong> from the top; explain them.</li> <li>Don’t be a silent voice in the back: be present at all times.</li> <li>Don’t be scared to hire people who outperform you.</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/so-youre-managing-a-design-team-56d140f6241b"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-management/design-management.png" alt="A comprehensive guide to design management" width="614" height="858" loading="lazy"> </a> <figcaption><p><a href="https://uxdesign.cc/so-youre-managing-a-design-team-56d140f6241b">A comprehensive roadmap to design management</a>, kindly put together by Alex Mandel. <a href="https://drive.google.com/file/d/1k1WuEPwru8nXZTLDCMpqSZeCe9un_fK-/view?usp=sharing">Full version</a>.</p> </figcaption> </figure> <h2 id="things-to-do-as-a-design-manager" tabindex="-1">Things To Do as a Design Manager <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-management/#things-to-do-as-a-design-manager">#</a></h2> <ul> <li> <p>Good managers are <strong>vulnerable and sincere</strong>.</p> </li> <li> <p>Your best work gets done in <strong>well-prepared 1:1’s</strong>.</p> </li> <li> <p>Track progress and achievements for each team member.</p> </li> <li> <p>Fight hard for your team’s promotions and bonuses.</p> </li> <li> <p>Start your week by asking your team how you can help.</p> </li> <li> <p><strong>Give feedback often</strong>, timely and firmly.</p> </li> <li> <p>Set expectations and explain what success means.</p> </li> <li> <p>Always set a structure around what needs to happen next.</p> </li> <li> <p><strong>Protect your team</strong> when something goes wrong.</p> </li> <li> <p>Give your team the credit when things go right.</p> </li> <li> <p>Keep your doors open at all times.</p> </li> </ul> <h2 id="management-isnt-for-everyone" tabindex="-1">Management Isn’t For Everyone <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-management/#management-isnt-for-everyone">#</a></h2> <p>Personally, I’d like to emphasize that becoming a manager <strong>isn’t really a promotion</strong>. It’s not necessarily a “common” career path either. It's a different path, and an entirely new role — with new responsibilities and tasks.</p> <p>The most remarkable part about management is that you can <strong>plant a seed and see people growing</strong> to incredible heights. But sometimes you will face confrontation, conflicts, strong opinions and lack of team spirit. This will make you feel exhausted, discouraged and lonely.</p> <p>So don’t forget to <strong>build relationships</strong> with people who go through the same things like you do. Build a guild. Meet regularly. Share what has worked for you. Carve out time to think. To reflect. To build bridges and discover connections. If it’s for you, it will feel right. And if it isn’t, there is always a way back.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-management/#useful-resources">#</a></h2> <ul> <li> <p><a href="https://uxdesign.cc/so-youre-managing-a-design-team-56d140f6241b">So, You’re Managing a Design Team</a>, by Alex Mandel</p> </li> <li> <p><a href="https://askplaybook.com/collection/grow-as-a-design-manager">Design Manager Playbook</a></p> </li> <li> <p><a href="https://designstrategy.guide/design-management/how-to-become-a-better-design-manager/">How to Become a Better Design Manager</a>, by Romina Kavcic</p> </li> <li> <p><a href="https://uxdesign.cc/so-you-want-to-be-a-design-manager-b471aa6be380">Motivations and Realities: From Design Lead to Manager</a>, by Jared Zimmerman</p> </li> <li> <p><a href="https://medium.com/design-bridges/design-management-b898e19190a8">Bitter Lessons as a Design Manager</a> (+ <a href="https://medium.com/design-bridges/design-management-2-13a956ddff78">part 2</a>), by Slava Shestopalov</p> </li> <li> <p><a href="https://medium.com/@designertarryn/20-lessons-for-new-design-managers-1ff19f630990">20 Lessons For New Design Managers</a>, by 🪴Tarryn Lambert</p> </li> <li> <p><a href="https://knowyourteam.com/blog/2019/02/28/the-9-leadership-mistakes-you-dont-know-youre-making-as-a-new-manager/">Main Leadership Mistakes as a New Manager</a>, by Claire Lew</p> </li> <li> <p><a href="https://about.gitlab.com/blog/2021/01/05/5-leadership-lessons-as-product-design-manager/">Leadership Lessons as Product Design Manager</a>, by Rayana V.</p> </li> <li> <p><a href="https://pcho.medium.com/good-ux-manager-bad-ux-manager-33df51f7367c">Good UX Manager / Bad UX Manager</a>, by Peter Cho</p> </li> <li> <p><a href="https://www.abstract.com/blog/design-leadership-skills">Critical Skills of Effective Design Leaders</a>, by Amy Cuevas Schroeder</p> </li> </ul> <h2 id="personal-stories-and-journeys" tabindex="-1">Personal Stories and Journeys <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-management/#personal-stories-and-journeys">#</a></h2> <ul> <li> <p><a href="https://medium.com/@lindiebotes/i-grew-from-a-designer-to-a-design-manager-in-1-5-years-and-this-is-what-i-learned-e3e084c96cfc">How I Grew From A Designer to a Design Manager</a>, by Lindie Botes</p> </li> <li> <p><a href="https://medium.com/hubspot-product/lessons-from-my-first-year-as-a-product-design-manager-16c920159259">First Year as a Product Design Manager</a>, by Jonathan Meharry</p> </li> <li> <p><a href="https://medium.com/@kyleturman/11-things-i-learned-in-my-first-year-as-a-design-manager-692b61d1d74c">Things I Learned in My First Year as a Design Manager</a>, by Kyle Turman</p> </li> <li> <p><a href="https://medium.com/@martynreding/the-brutal-truth-about-becoming-a-design-manager-1eca101b55e1">The Brutal Truth About Becoming a Design Manager</a>, by Martyn Reding</p> </li> </ul> <h2 id="useful-books" tabindex="-1">Useful Books <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-management/#useful-books">#</a></h2> <ul> <li> <p><a href="https://themanagershandbook.com/">The Manager's Handbook</a>, by Alex MacCaw</p> </li> <li> <p><a href="https://www.amazon.de/-/en/Julie-Zhuo/dp/0735219567">The Making of a Manager</a>, by Julie Zhuo</p> </li> <li> <p><a href="https://www.amazon.com/First-90-Days-Strategies-Expanded/dp/1422188612">The First 90 Days</a>, by Michael Watkins</p> </li> <li> <p><a href="https://www.buildc.com/the-book">Build</a>, by Tony Fadell</p> </li> <li> <p><a href="https://medium.com/@jseiden/books-for-ux-managers-b0bac248ede0">Books for UX Managers</a>, by Joshua Seiden</p> </li> </ul> Tue, 25 Jul 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/design-management/ How To Design For Users With Colorblindness https://smart-interface-design-patterns.com/articles/colorblindness-design/ <p>Too often accessibility is seen as a checklist, but it’s much more complex than that. We might be using a good contrast for our colors, but then if these colors are <strong>perceived very differently</strong> by people, it can make interfaces extremely difficult to use.</p> <p>Depending on our color combinations, people with colorweakness or who are colorblind won’t be able to tell them apart. Here are <strong>key points for designing with colorbliness</strong> — for better, and more reliable color choices.</p> <figure class="c-article__image u-flow--xs"> <a href="https://blog.datawrapper.de/colorblindness-part1/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/colorblindness/colorblindness.jpg" alt="Design For Users With Colorblindness" width="596" height="996" loading="lazy"> </a> <figcaption><p><a href="https://blog.datawrapper.de/colorblindness-part1/">Different people perceive colors differently</a>. Around 300 million of people are affected by colorweakness or coloblindness.</p> </figcaption> </figure> <h2 id="things-to-avoid" tabindex="-1">Things To Avoid <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/colorblindness-design/#things-to-avoid">#</a></h2> <ul> <li><strong>Don’t mix red, green and brown together</strong>.</li> <li>Don’t mix pink, turquoise and grey together.</li> <li><strong>Don’t mix purple and blue together</strong>.</li> <li>Don’t use green and pink if you use red and blue.</li> <li>Don’t mix green with orange, red, blue of the same lightness.</li> </ul> <h2 id="things-to-keep-in-mind" tabindex="-1">Things To Keep In Mind <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/colorblindness-design/#things-to-keep-in-mind">#</a></h2> <ul> <li>Red-/green deficiencies are more common in men.</li> <li>Use blue if you want users to perceive color as you do.</li> <li>Use any 2 colors as long as they <strong>vary by lightness</strong>.</li> <li>Colorbrlind users can tell red and green apart.</li> <li>Colorbrlind users <strong>can’t tell dark green and brown apart</strong>.</li> <li>Colorbrlind users <strong>can’t tell red and brown apart</strong>.</li> <li>The safest color palette is to mix blue with orange or red.</li> </ul> <h2 id="never-rely-on-colors-alone" tabindex="-1">Never Rely On Colors Alone <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/colorblindness-design/#never-rely-on-colors-alone">#</a></h2> <p>The insights above come from “<a href="https://blog.datawrapper.de/colorblindness-part1/">How Your Colorblind And Colorweak Readers See Your Colors</a>”, a wonderful three-part series by Lisa Charlotte Muth on how colorblind and colorweak readers perceive colors, things to consider when visualizing data and <strong>what it’s like to be colorblind</strong>.</p> <p>It’s worth noting that the safest bet is to never rely on colors alone to communicate data. Use labels, icons, shapes, rectangles, triangles, stars to indicate differences and show relationships. Be careful when <strong>combining hues and patterns</strong>: patterns change how bright or dark colors will be perceived.</p> <p><strong>Use lightness to build gradients</strong>, not just hue. Using different lightnesses in your gradients and color palettes so readers with a color vision deficiency will still be able to distinguish your colors. And most importantly, always include colorweak and colorblind people in usability testing.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/colorblindness-design/#useful-resources">#</a></h2> <ul> <li><a href="https://www.theverge.com/23650428/colorblindness-design-ui-accessibility-wordle">How I Live With Color Blindness</a>, by Andy Baio</li> <li><a href="https://www.whocanuse.com/">Who Can Use This Color Combination?</a>, by Corey Ginnivan</li> <li><a href="https://medium.com/queer-design-club/going-beyond-color-9d3830559e10">Designing for Colorblind Access</a>, by Alex Chen</li> <li><a href="https://uxdesign.cc/the-importance-of-colorblind-friendly-design-case-study-among-us-dcd042c87b9">Colorblind-Friendly Design Guidelines</a>, by Unma Desai</li> <li><a href="https://blog.datawrapper.de/colors/">How To Choose Colors For Data Visualization</a>, by Lisa Charlotte Muth</li> <li><a href="https://www.color-blindness.com/coblis-color-blindness-simulator/">Coblis, Color Blindness Simulator</a></li> <li><a href="https://www.figma.com/community/plugin/733343906244951586/Color-Blind">Color Blindness Simulator Figma Plugin</a>, by Sam Mason de Caires</li> <li><a href="https://chrome.google.com/webstore/detail/colorblindly/floniaahmccleoclneebhhmnjgdfijgg">Colorblindly Chrome Extension</a>, by Tom van Beveren</li> <li><a href="https://www.smashingmagazine.com/2016/06/improving-ux-for-color-blind-users/">Improving The UX For Color-Blind Users</a>, by Adam Silver</li> <li><a href="https://www.smashingmagazine.com/2023/06/testing-sites-apps-blind-users-cheat-sheet/">How To Test With Blind Users: A Cheatsheet</a> by Slava Shestopalov, Eugene Shykiriavyi</li> </ul> Mon, 24 Jul 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/colorblindness-design/ Where to Take Your UX Career? https://smart-interface-design-patterns.com/articles/ux-career-ladder/ <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/10-directions-to-take-your-ux-career-668e14abb692"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ux-career-ladder/ux-career-ladder.jpg" alt="An example of anin-house ladder, ranging from junior designer to UX designer to senior UX designer to design manager to senior design manager to design director" width="1132" height="820" loading="lazy"> </a> <figcaption><p>An example of anin-house ladder, ranging from junior designer to design director. From <a href="https://uxdesign.cc/10-directions-to-take-your-ux-career-668e14abb692">10 Directions To Take Your Next Career</a>.</p> </figcaption> </figure> <p>There is <strong>no universal career path</strong> that works for everyone. In fact, the best path is the one that feels right to you. But there are some things to consider when choosing any of these paths. In “<a href="https://uxdesign.cc/10-directions-to-take-your-ux-career-668e14abb692">10 Directions to Take Your UX Career</a>”, Shannon Groom highlights some of them, with pros and cons of each.</p> <p>Here’s a quick summary with my notes and remarks:</p> <h2 id="1-moving-to-a-big-name-company" tabindex="-1">1. Moving To a Big-Name Company <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-career-ladder/#1-moving-to-a-big-name-company">#</a></h2> <p>If you’re thinking about moving to a larger company or organization, typically it’s a quite safe bet. Large companies are stable and predictable. Decent salaries. Good work-life balance. Established <a href="https://uxdesign.cc/a-guide-to-becoming-a-senior-product-designer-7b7296f08910">career ladders</a> and processes.</p> <p>Most importantly, you learn a lot from <strong>smart people</strong> around you. The environment might be very competitive and it will keep you on your toes. That’s how you grow and make valuable connections. With it, however, often comes <strong>the lack of ownership</strong>. You might be working on something that will never see the light of day — and over time it can get very frustrating.</p> <p>Going <strong>from junior to senior</strong> doesn’t take very long, and once you get there within a few years, you might feel like you are hitting the ceiling. It often feels like your only way up from there is through the management track.</p> <h2 id="2-moving-into-management" tabindex="-1">2. Moving Into Management <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-career-ladder/#2-moving-into-management">#</a></h2> <p>As a <strong>design manager</strong>, you won’t be doing much design work. Better salary. Busy schedule. Meetings, planning, reporting. The most rewarding part is planting new seeds and seeing them grow to incredible heights.</p> <p><strong>Management is not for everyone</strong>, but if you want to make an impact, that’s the strategy to choose. You will have to find allies to grow UX maturity and fight for resources for your team. Of course you can always move back to design but then your options for growth in the same company are limited.</p> <h2 id="3-moving-to-a-start-up" tabindex="-1">3. Moving To a Start-Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-career-ladder/#3-moving-to-a-start-up">#</a></h2> <p>When time is of essence and money in short supply, corners are cut. In a start-up <strong>you’ll probably do everything</strong>, from user research and design to prototyping and user testing (if at all) — and often as the <a href="https://smart-interface-design-patterns.com/articles/navigate-the-team-of-one/">only designer on the team</a>. You have the freedom to <strong>quickly iterate and make decisions</strong>, but often no senior designers to learn from.</p> <p>With it comes quite a bit of chaos, plenty of back-and-forths and last-minute changes. You learn how businesses fail and succeed. It’s a good choice in the beginning of your career, but probably not when you are looking for stability and work-life balance.</p> <h2 id="4-moving-to-an-agency" tabindex="-1">4. Moving to an Agency <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-career-ladder/#4-moving-to-an-agency">#</a></h2> <p>The main benefit of working in an agency is that you <strong>learn from different industries and knowledge domains</strong>. You make incredible connections. You learn how to deliver on time, become more pragmatic and learn how to make tough compromises.</p> <p>You also work longer hours as you manage demanding and important clients. You get a grip of how to jump into any project of any scale, and how to navigate everything from B2C-products to <strong>complex B2B-enterprises</strong>. That’s challenging and it will always keep you on your toes. Just make sure to not get flooded by customer requests and a wave of approaching deadlines.</p> <h2 id="5-moving-into-a-product-team" tabindex="-1">5. Moving Into a Product Team <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-career-ladder/#5-moving-into-a-product-team">#</a></h2> <p>In a product team, you learn to work with product owners and business analysts. You better <strong>understand the business side of things</strong>. You’ll spend time connecting design activities with OKRs and business objectives.</p> <p>You learn the language of business, and how to translate it to the language of design. You can also grow into <strong>product management</strong> and own the product. This means that you move away from Figma mock-ups into Keynote or PowerPoint presentations and meetings with stakeholders and business owners.</p> <h2 id="6-going-freelance" tabindex="-1">6. Going Freelance <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-career-ladder/#6-going-freelance">#</a></h2> <p><strong>Autonomy comes at a cost</strong>. As a freelancer, you need to be visible and invest in your own brand. You need a good network and <strong>good negotiation skills</strong>. You learn how to properly estimate, scope, find clients, run accounting and optimize expenses.</p> <p><strong>Self-discipline is critical</strong> as otherwise you’ll work day and night in a never-ending revisions hell.</p> <h2 id="7-role-hopping" tabindex="-1">7. Role Hopping <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-career-ladder/#7-role-hopping">#</a></h2> <p>Sometimes all you need is just a new challenge. This doesn’t necessarily mean quitting your job and move to another company. <strong>Talk to other teams</strong> in your company or organization, send them a message and find out what they work on. Chances are high that there are innovation teams that would desperately need you on their side.</p> <p>Alternatively, explore <strong>entirely different industries and domains</strong>. Specialize in your strengths, but also broaden your skillset. Move into UX research or DesignOps. Find where your passion is and give it a try.</p> <h2 id="8-become-an-industry-expert" tabindex="-1">8. Become an Industry Expert <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-career-ladder/#8-become-an-industry-expert">#</a></h2> <p>Consultancy can be lucrative, but <strong>your work will often get lost somewhere</strong> — between other priorities, important milestones and abandoned projects. You’ll rarely know about the impact of your work, unless you spend at least a few months on a project.</p> <p>Once you’ve gathered enough experience in the industry and established yourself as a reliable partner and a trustworthy expert, you can feel more comfortable in <strong>creating your own company</strong>, agency, product or leading an already existing company.</p> <h2 id="further-resources" tabindex="-1">Further Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ux-career-ladder/#further-resources">#</a></h2> <ul> <li> <p><a href="https://medium.com/design-bootcamp/how-design-generally-works-at-tech-companies-36c591ac4744">How Design Generally Works at Tech Companies</a> by Yamilah Atallah,</p> </li> <li> <p><a href="https://uxdesign.cc/a-guide-to-becoming-a-senior-product-designer-7b7296f08910">Career Ladders: A Guide to Becoming a Senior Product Designer</a>, by Aaron James,</p> </li> <li> <p><a href="https://medium.com/shapingdesign">UX Spectrum of UX Career Ladders</a>, by Jason Mesut,</p> </li> <li> <p><a href="https://bootcamp.uxdesign.cc/the-four-phases-of-a-design-career-e398b6caa3f4">The Four Phases of a Design Career</a>, by Garron Engstrom,</p> </li> <li> <p><a href="https://blog.prototypr.io/what-its-like-designing-at-start-ups-29dccc5a1142">What It’s Like Designing at Start-Ups</a>, by Melody Koh</p> </li> </ul> Thu, 20 Jul 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/ux-career-ladder/ Six Ways To Speed Up Navigation https://smart-interface-design-patterns.com/articles/fast-navigation/ <p>In some interfaces, <strong>navigation feels extremely slow</strong> and frustrating. Users seem to be running in circles, heading through multiple pages, sections and sub-sites, being re-routed and redirected multiple times — often without a clear path forward.</p> <p>How can we <strong>boost the speed of navigation</strong>, so users can move from one page to another more predictably, more reliably and more confidently? With <strong>smart breadcrumbs</strong>, navigation queries, and navigation billboards. Let’s find out how to do just that!</p> <h2 id="1-navigation-billboards" tabindex="-1">1. Navigation Billboards <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/fast-navigation/#1-navigation-billboards">#</a></h2> <p>Every usability study reveals the same story: hiding important navigation is harmful, especially on pages where people tend to navigate a lot. On such pages, go an extra mile trying to <strong>always display important actions as cards or large buttons</strong>.</p> <p>More important sections would be displayed at the top of the screen and take significantly more space — similar to a <strong>billboard</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.koreapost.go.kr/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/fast-navigation/01-billboard-pattern.jpg" alt="The billboard pattern in use, with a grid of critical items prominently placed on the homepage." width="550" height="538" loading="lazy"> </a> <figcaption><p>The billboard pattern in use: <a href="https://www.koreapost.go.kr/">Koreapost.go.kr</a> and <a href="https://www.sparkasse.de/">Sparkasse.de</a>.</p> </figcaption> </figure> <p>Alternatively, <strong>scatter the navigation across the logo</strong> in the header, or dedicate an entire bar to display important navigation items. If you don’t have a lot of navigation, this might work well.</p> <figure class="c-article__image u-flow--xs"> <a href="https://moma.org/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/fast-navigation/02-no-hamburger-icons.jpg" alt="Examples that show navigation right away, no hamburger menus in use." width="550" height="539" loading="lazy"> </a> <figcaption><p>No need for hamburger icons. Display important navigation all the time: <a href="https://moma.org/">Moma.org</a> and <a href="https://www.typography.com/">Typography.com</a>.</p> </figcaption> </figure> <p>Further reading: <a href="https://smart-interface-design-patterns.com/articles/never-hide-critical-navigation/">Never Hide Critical Navigation on Mobile</a></p> <h2 id="2-breadcrumbs-dropdowns" tabindex="-1">2. Breadcrumbs Dropdowns <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/fast-navigation/#2-breadcrumbs-dropdowns">#</a></h2> <p><a href="https://smart-interface-design-patterns.com/articles/breadcrumbs-ux/">Breadcrumbs</a> seem to be quite obvious at first. As users move from one page to the next, they leave traces of navigation, and can use them to return to where they are coming from. In practice, however, breadcrumbs indicate where the page <em>lives</em>, not where the user <em>has been</em> — in fact, they <strong>rarely match user’s journey</strong>.</p> <p>Typically big jumps on a site require a mega-menu or search, but we could support <strong>more granular jumps</strong> by turning every crumb into a dropdown of its own. Users can then navigate between siblings of the current page or all children of its parent page without leaving the actual page. That’s how <a href="https://www.sbb.ch/de/abos-billette/billette-schweiz/tageskarten.html">SBB</a> does it.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.sbb.ch/de/abos-billette/billette-schweiz/tageskarten.html"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/fast-navigation/03-breadcrumbs-dropdowns.png" alt="Example of extended breadcrumbs, with drop-downs appearing on each breadcrumb level" width="550" height="345" loading="lazy"> </a> <figcaption><p>Extended breadcrumbs with drop-downs, allowing users to navigate sideways — all the way to the homepage. Example: <a href="https://www.sbb.ch/de/abos-billette/billette-schweiz/tageskarten.html">SBB</a>.</p> </figcaption> </figure> <p>If you don’t have space to display a large sidebar navigation on your site, this approach can help as well. And it translate well to mobile as well — in pretty much the same way. Note: you need to <strong>display full path from the homepage</strong> as otherwise top level navigation wouldn’t be accessible.</p> <p>Further reading: <a href="https://smart-interface-design-patterns.com/articles/breadcrumbs-ux/">Designing Better Breadcrumbs UX</a></p> <h2 id="3-skip-search-results-pages" tabindex="-1">3. Skip Search Results Pages <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/fast-navigation/#3-skip-search-results-pages">#</a></h2> <p>We’ve got accustomed to the idea of driving users to search results pages — pages with a huge list of links to choose from. But sometimes it’s absolutely unnecessary, and users could benefit from <strong>more refined jumps</strong> instead.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.amsterdam.nl/en/education/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/fast-navigation/04-skip-search.png" alt="Search results can be skipped on City of Amsterdam: the engine displays relevant categories right away" width="550" height="283" loading="lazy"> </a> <figcaption><p><a href="https://www.amsterdam.nl/en/education/">City of Amsterdam</a> allows users to skip keyword search.</p> </figcaption> </figure> <p>The website of the <a href="https://www.amsterdam.nl/en/">City of Amsterdam</a> allow users to skip search results pages with <strong>smart autocomplete suggestions</strong>. Instead, users can jump straight to relevant pages or categories or even sub-categories. A good old-fashioned keyword search is supported as well</p> <p>Further reading: <a href="https://smart-interface-design-patterns.com/articles/autocomplete-ux/">Five Simple Steps For Better Autocomplete UX</a></p> <h2 id="4-navigation-queries" tabindex="-1">4. Navigation Queries <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/fast-navigation/#4-navigation-queries">#</a></h2> <p>We can help users <strong>construct just the right navigation path</strong> for their intent. We could show options to choose from and based on one answer, provide further options, all the way to the point where we bring a user to the page of interest.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.ao.de/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/fast-navigation/06-navigation-queries.jpg" alt="A group of drop-downs that help users define their intent on the AO.de homepage" width="550" height="310" loading="lazy"> </a> <figcaption><p>Users could jump straight from the homepage to a relevant selection of items, with filters applied. Navigation shortcuts on <a href="https://www.ao.de/">AO.de</a> (now offline).</p> </figcaption> </figure> <p>The pattern on <a href="https://www.ao.de/">AO.de</a> has been providing a shortcut for users to jump from the homepage to a specific selection of relevant products with filters applied. Once an option is selected, another drop-down appears, allowing them to specify their intent even further.</p> <p>This experience mimics the <strong>drill-down navigation with multiple levels</strong>. Yet the difference is that users are making small decisions, one after another, without being confronted with the entire navigation at every step of the way.</p> <p>Further reading: <a href="https://smart-interface-design-patterns.com/articles/navigation-queries-ux/">Navigation Queries UX</a></p> <h2 id="5-a-z-index-overlay" tabindex="-1">5. A-Z Index Overlay <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/fast-navigation/#5-a-z-index-overlay">#</a></h2> <p>One way to address complex navigation issues is by using an <strong>A-Z Index pattern</strong>. We identify the <a href="https://alistapart.com/article/what-really-matters-focusing-on-top-tasks/">top tasks</a> that users perform on the site. For each task, we define a set of keywords that they associate the task with. We run <a href="https://maze.co/guides/ux-research/tree-testing/">tree testing</a> to ensure that they can find the pages that they are looking for. And then we show the A-Z catalog of keywords in a menu.</p> <figure class="c-article__image u-flow--xs"> <a href="https://international.au.dk/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/fast-navigation/05-a-z-index.jpg" alt="A-Z index overlay in the header of every page on Aarhus University website" width="550" height="341" loading="lazy"> </a> <figcaption><p>Visitors can quickly jump from any page to any other page on the <a href="https://international.au.dk/">Aarhus University website</a>.</p> </figcaption> </figure> <p><a href="https://international.au.dk/">Aarhus University</a> highlights the A-Z index as part of the global navigation. Visitors choose their role first, then choose a letter, and then explore the overview of all options, jumping to a specific department or faculty. The pattern requires <strong>rigorous curation</strong> and testing, but it can be remarkably fast!</p> <p>Most importantly, visitors can <strong>quickly jump from any page to any other page</strong>. In this case, A-Z index is permanently accessible in the header of each page. That’s not something other navigation patterns provide out of the box.</p> <p>Further reading: <a href="https://www.smashingmagazine.com/2022/04/designing-better-navigation-ux-queries/#a-z-index-pattern">A-Z Index Pattern</a></p> <h2 id="6-show-mostly-navigation-on-navigational-pages" tabindex="-1">6. Show (Mostly) Navigation on Navigational Pages <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/fast-navigation/#6-show-mostly-navigation-on-navigational-pages">#</a></h2> <p>It sounds almost obvious, but it’s not. On every website, some pages are mostly designed for reading, and others are designed to support navigation. If user’s main goal is navigation, it’s a good idea to <strong>show navigation prominently</strong>, rather than hiding it behind a &quot;Menu&quot; button.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.uantwerpen.be/nl/studeren/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/fast-navigation/07-show-mostly-navigation.jpg" alt="Nothing can be more clear than a list of links with clear labels, an example from the University of Antwerp homepage" width="550" height="425" loading="lazy"> </a> <figcaption><p>Sections with links are well-understood, as long as labels are clear and well-tested. Example: <a href="https://www.uantwerpen.be/nl/studeren/">University of Antwerpen</a>.</p> </figcaption> </figure> <p>The homepage and category pages are supposed to <strong>guide users to their page of interest</strong>, yet too often they are packed with <a href="https://www.smashingmagazine.com/2022/04/designing-better-carousel-ux/">carousels</a>, featured items and recent news. <a href="https://www.uantwerpen.be/nl/studeren/">University of Antwerpen</a> prominently displays <strong>only navigation</strong> on navigational pages instead — with plenty of links for users to explore. You really don’t need much more than that.</p> <p>Further reading: <a href="https://smart-interface-design-patterns.com/articles/links-ux/">Designing Better Links UX</a></p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/fast-navigation/#wrapping-up">#</a></h2> <p>The patterns above might help you speed up user journeys, but they don’t guarantee successful outcomes. Before exploring design patterns, we always need to spend time <strong>refining and testing navigation labels</strong>. We also need to indicate where users have been and where they can go next.</p> <p>And of course, speed isn’t everything. But if we can <strong>avoid slowdowns</strong> and bring users to success moments faster, we should do so. And hopefully the design patterns above can help us do just that.</p> <hr> <p>You can find more details on <strong>navigation UX</strong> in the <a href="https://smart-interface-design-patterns.com/">video library on Smart Interface Design Patterns</a> 🍣 — with a <a href="https://smart-interface-design-patterns.com/">live UX training</a> that’s coming up later this year.</p> Tue, 18 Jul 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/fast-navigation/ How To Design For Users With Dyslexia https://smart-interface-design-patterns.com/articles/dyslexia-design/ <p><strong>Dyslexia</strong> can take different shapes. Different people are in a different place on a continuum, but for some <strong>dyslexic users</strong> reading might take longer, especially if text has many large uninterrupted blocks, italics, words written in uppercase and flashing images.</p> <p>It’s difficult to give general advice when it comes to dyslexia, but here are some <strong>key points</strong> that are quite helpful — along with further resources, articles and toolkits.</p> <h2 id="things-to-keep-in-mind" tabindex="-1">Things To Keep In Mind <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/dyslexia-design/#things-to-keep-in-mind">#</a></h2> <ul> <li>For some users, reading can take up to 3× as long.</li> <li>Some users might confuse b, p, d and n, u and m, w.</li> <li>Remembering words between screens might be difficult.</li> <li>Users are heavily distracted by flashing images/sounds.</li> <li>Difficulty to read analog clocks, directions, numbers.</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://ukhomeoffice.github.io/accessibility-posters/posters/accessibility-posters.pdf"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/dyslexia-design/dyslexia-poster.jpg" alt="Design For Users With Dyslexia" width="614" height="858" loading="lazy"> </a> <figcaption><p><a href="https://ukhomeoffice.github.io/accessibility-posters/posters/accessibility-posters.pdf">Designing for users with dyslexia (PDF)</a>, an accessibility poster by Gov.uk.</p> </figcaption> </figure> <h2 id="things-to-avoid" tabindex="-1">Things To Avoid <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/dyslexia-design/#things-to-avoid">#</a></h2> <ul> <li>Avoid dynamic, moving or flashing images.</li> <li>Avoid heavy underlines, uppercase and italics.</li> <li>Don’t force users to remember; give reminders instead.</li> <li><strong>Avoid text justification</strong> and align text to the left.</li> <li>Avoid long columns for reading (use 45–65 chars per line).</li> </ul> <h2 id="things-to-do" tabindex="-1">Things To Do <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/dyslexia-design/#things-to-do">#</a></h2> <ul> <li>Support accurate spelling with <strong>autocomplete</strong>.</li> <li>Let users change the contrast between background/text.</li> <li><strong>Simple sans-serif fonts</strong> with generous spacing work well.</li> <li>Use <strong>dark grey instead of black</strong>, and soft colors instead of white.</li> <li>Consider text-to-speech, Bionic reading and dark mode.</li> </ul> <h2 id="better-for-everyone" tabindex="-1">Better For Everyone <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/dyslexia-design/#better-for-everyone">#</a></h2> <p>It goes without saying that the design guidelines above are <strong>general pillars of good design</strong>. They are better for everyone — and they help us design digital experiences that are more reliable and usable, and make it much more difficult to make mistakes.</p> <p>Ultimately, our job is to help people get where they want to be, without segways or retours along the way. Most of the time it means two simple things: <strong>maximize clarity, minimize distractions</strong>. It works for everyone — and creates helpful and respectful designs that people appreciate and use.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/dyslexia-design/#useful-resources">#</a></h2> <ul> <li> <p><a href="https://www.neurodiversity.design/">Neurodiversity Design System</a></p> </li> <li> <p><a href="https://cdn.bdadyslexia.org.uk/uploads/documents/Advice/style-guide/BDA-Style-Guide-2023.pdf">Dyslexia Style Guide 2023 (PDF)</a></p> </li> <li> <p><a href="https://www.bdadyslexia.org.uk/advice/employers/creating-a-dyslexia-friendly-workplace/dyslexia-friendly-style-guide">Dyslexia-Friendly Style Guide</a></p> </li> <li> <p><a href="https://app.uxcel.com/courses/design-accessibility/designing-for-dyslexia-081">Design Guide For Dyslexia</a></p> </li> <li> <p><a href="https://uxplanet.org/designing-for-dyslexia-6d12e8c41cd7">Designing With Dyslexia</a>, by Alex Morris</p> </li> <li> <p><a href="https://de.linkedin.com/in/eva-katharina-wolf-420b9a182?trk=public_post-text&amp;original_referer=https%3A%2F%2Fwww.linkedin.com%2F">Dyslexia Accessibility Guidelines</a>, by Eva Katharina Wolf</p> </li> <li> <p><a href="https://uxplanet.org/ui-design-for-dyslexic-users-7a17233f5db7">Design For Dyslexic Users</a>, by Pradipto Chakrabarty</p> </li> <li> <p><a href="https://medium.com/salesforce-ux/your-designs-teams-can-be-more-dyslexia-friendly-heres-how-cd8a1aa3eba8">Design for Customers With Dyslexia</a>, by Kate Hughes</p> </li> <li> <p><a href="https://medium.com/the-readability-group/a-guide-to-understanding-what-makes-a-typeface-accessible-and-how-to-make-informed-decisions-9e5c0b9040a0">What Makes a Typeface Accessible</a>, by Gareth Ford Williams</p> </li> <li> <p><a href="https://uxdesign.cc/accessibility-how-to-involve-dyslexic-users-into-your-design-aab031ee588d">How to Involve Dyslexic Users Into Your Design</a></p> </li> <li> <p><a href="https://writingcooperative.com/how-to-write-with-a-dyslexic-audience-in-mind-6c69814f417d">How to Write With a Dyslexic Audience in Mind</a>, by Trisha Dunbar</p> </li> <li> <p><a href="https://accessibility.blog.gov.uk/2016/09/02/dos-and-donts-on-designing-for-accessibility/">GOV.UK Accessibility Posters</a></p> </li> </ul> <h2 id="further-reading" tabindex="-1">Further Reading <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/dyslexia-design/#further-reading">#</a></h2> <ul> <li> <p><a href="https://www.nomensa.com/blog/introduction-inclusive-design/">Inclusive Design Guidelines</a></p> </li> <li> <p><a href="https://uxdesign.cc/building-for-adhd-will-make-your-product-better-for-everyone-795eb5bc9afa">How To Design For ADHD</a></p> </li> <li> <p><a href="https://designnotes.blog.gov.uk/2022/11/28/designing-for-people-with-dyscalculia-and-low-numeracy/">Designing For Dyscalculia</a></p> </li> <li> <p><a href="https://medium.com/@bitpixi/being-a-product-designer-with-adhd-7bde8aaa3e84">Being a Designer With ADHD</a>, by Kasey Robinson</p> </li> </ul> Mon, 17 Jul 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/dyslexia-design/ How To Write a Great Design Case Study https://smart-interface-design-patterns.com/articles/design-case-study/ <p>How do we write a great design case study? I’ve put together some practical guides, examples and do’s and don’ts on how to stand out.</p> <h2 id="key-takeaways" tabindex="-1">Key Takeaways <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-case-study/#key-takeaways">#</a></h2> <ul> <li>Think of a case study like a magazine feature.</li> <li>Keep a case study digestible, thorough and a story.</li> <li>Choose a customer that represents your scope of work.</li> <li>Promote the skills that you want to be hired for.</li> <li>Focus on insights rather than process.</li> <li>Show your intention and your values.</li> <li>Use the language that your future clients will understand.</li> <li>Teach readers something they don’t already know.</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://www.byalicelee.com/slack"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-case-study/design-case-study.jpg" alt="Creating Slack's illustration voice" width="614" height="590" loading="lazy"> </a> <figcaption><p>A fantastic example: <a href="https://www.byalicelee.com/slack">Creating Slack's illustrations</a>, neatly put together by Alice Lee.</p> </figcaption> </figure> <p>I absolutely love diving into case studies that highlight wrong assumptions and failures, explaining how designers managed to turn the ship towards a better outcome. It’s a wonderful way to understand how a designer thinks, and that how they learn and adapt along the way.</p> <p>Don’t be afraid to show your mistakes, and tell honest stories that your prospect clients can connect to. Probably the worst thing you could do is to create a polished, soulless, marketing version of your work that is too perfect to be true.</p> <p>Authenticity and enthusiasm always shine through. Don’t hide them, and people will notice how incredible you are.</p> <h2 id="design-case-study-examples-and-guides" tabindex="-1">Design Case Study Examples and Guides <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-case-study/#design-case-study-examples-and-guides">#</a></h2> <ul> <li> <p><a href="https://essays.uxdesign.cc/case-study-factory/">A Complete Guide To Case Study Design</a>, by Fabricio Teixeira, Caio Braga</p> </li> <li> <p><a href="https://www.byalicelee.com/slack">Creating Slack's illustration voice</a>, by Alice Lee</p> </li> <li> <p><a href="https://abdussalam.pk/project/tv-guide-app">Reimagine the future of TV</a>, by Abdus Salam</p> </li> <li> <p><a href="https://medium.com/@repponen/designing-urban-walks-9b521d51dcae">Designing Urban Walks</a>, by Anton Repponen</p> </li> <li> <p><a href="https://www.casestudy.club/">Case Study Club</a>, a curated hub by Jan Haaland</p> </li> <li> <p><a href="https://medium.com/tylergaid/an-introduction-to-case-studies-for-designers-80e1abc50b8f">A Guide To Case Studies for Designers</a>, by Jenny Kowalski</p> </li> <li> <p><a href="https://vanschneider.com/blog/portfolio-tips/write-project-case-studies-portfolio/">How to Write Project Case Studies For Your Portfolio</a>, by Tobias van Schneider</p> </li> <li> <p><a href="https://uxplanet.org/4-tips-for-structuring-case-studies-in-your-design-portfolio-f7436fd460ec">Tips to Structuring Case Studies</a>, by Lillian Xiao</p> </li> <li> <p><a href="https://www.interaction-design.org/literature/article/how-to-write-great-case-studies-for-your-ux-design-portfolio">How to Write Great UX Case Studies</a>, by Yu Siang Teo</p> </li> <li> <p><a href="https://www.format.com/magazine/resources/design/how-to-write-design-case-study">How To Write A Case Study For Your Design Portfolio</a></p> </li> <li> <p><a href="https://coschedule.com/blog/how-to-write-a-case-study-examples-templates">How To Write Trust-Building Case Studies (+ Templates)</a>, by Elise Dopson</p> </li> <li> <p><a href="https://www.ringcentral.com/us/en/blog/writing-a-case-study/">The Ultimate Guide to Writing a Good Case Study</a></p> </li> <li> <p><a href="https://www.interaction-design.org/literature/article/how-to-create-case-studies-for-your-ux-design-portfolio-when-you-have-no-past-projects-and-experience">How to Create Case Studies Without Any Past Projects</a></p> </li> </ul> Sat, 15 Jul 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/design-case-study/ Five Tips To Boost UX Maturity In Your Company https://smart-interface-design-patterns.com/articles/boost-ux-maturity/ <p>Do your design initiatives clash against the company culture? Do you struggle to boost the role of UX in your organization? If you also struggle to convince your colleagues or stakeholders about the <strong>impact of UX</strong>, the action points below might help.</p> <p>We’ll also dive into the ins and outs of design KPIs, design impact, design metrics and getting a buy-in in our <a href="https://smart-interface-design-patterns.com/">upcoming live UX training</a> (2× a year), with a well-deserved <strong>UX certification</strong>!</p> <h2 id="1-study-org-charts-and-understand-your-pms" tabindex="-1">1. Study Org Charts and Understand Your PMs <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/boost-ux-maturity/#1-study-org-charts-and-understand-your-pms">#</a></h2> <p><strong>Org charts are very underrated</strong>, and extremely useful. They indicate relationships that we, as designers, need to be aware of when making design decisions. Design efforts have tremendous impact, but often they aren’t obvious to the entire organization. A part of our job is to <strong>make that impact visible</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.euchems.eu/newsletters/eu-research-and-development-directorate-general-attempts-to-tackle-bureaucratic-functioning/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/boost-ux-maturity/orgchart-eu-commission.jpg" alt="Directorate general, research and innovation" width="550" height="388" loading="lazy"> </a> <figcaption><p>An org chart is always a good starting point to understand relationships in the company and explore business goals of each department. (<a href="https://www.euchems.eu/newsletters/eu-research-and-development-directorate-general-attempts-to-tackle-bureaucratic-functioning/">Image source</a>)</p> </figcaption> </figure> <p>When I look at an org chart, I see people who have plenty of priorities, commitments, goals and KPIs — and design is usually not one of them. Meticulously study what your stakeholders care about. Understand your PM. Explain design decisions through the lens of what they care about, and <strong>what will help them succeed</strong>.</p> <h2 id="2-connect-business-kpis-and-design-kpis" tabindex="-1">2. Connect Business KPIs and Design KPIs <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/boost-ux-maturity/#2-connect-business-kpis-and-design-kpis">#</a></h2> <p>Often <strong>design has a very good ROI</strong>. Developing new features is remarkably expensive, but addressing user’s pain points can be relatively quick and inexpensive — once we’ve learned through <strong>UX research</strong> what users’ pain points are, of course. Not many companies fully understand it.</p> <figure class="c-article__image u-flow--xs"> <a href="https://whimsical.com/finviz-kpis-CTzucrgZkLUefK6Mekd38c"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/boost-ux-maturity/design-KPI-tree.jpg" alt="An example of a design KPI tree" width="550" height="436" loading="lazy"> </a> <figcaption><p>An <a href="https://whimsical.com/finviz-kpis-CTzucrgZkLUefK6Mekd38c">example</a> of a design KPI tree that connects business goals and design activities while addressing user needs. (<a href="https://whimsical.com/finviz-kpis-CTzucrgZkLUefK6Mekd38c">Large preview</a>)</p> </figcaption> </figure> <p>To argue about the impact of design work, we need to <strong>measure</strong> the impact of design on business KPIs. A good way of doing that is to establish and get a sign-off on a design KPI tree. The tree documents connections between business goals and design work. For design efforts to be successful, they must be seen as <strong>enablers for these business objectives</strong>.</p> <h2 id="3-create-weekly-overlaps-between-designers-and-developers" tabindex="-1">3. Create Weekly Overlaps Between Designers and Developers <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/boost-ux-maturity/#3-create-weekly-overlaps-between-designers-and-developers">#</a></h2> <p>Too often designers and developers work in silos; they <strong>communicate ad-hoc and mostly during hand-offs</strong>. We run weekly “show-and-tell” meetings (20 mins) for dev/design teams to screen share what they are working on, ask for feedback, gather and document insights.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/boost-ux-maturity/work-in-progress.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/boost-ux-maturity/work-in-progress.jpg" alt="Objectives often change" width="550" height="313" loading="lazy"> </a> <figcaption><p>Objectives often change, processes are ad-hoc and design lives somewhere in-between. By <a href="https://medium.com/@johnpcutler">John Cutler</a>.</p> </figcaption> </figure> <h2 id="4-establish-exposure-hours-with-users" tabindex="-1">4. Establish Exposure Hours With Users <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/boost-ux-maturity/#4-establish-exposure-hours-with-users">#</a></h2> <p>Many organization struggle with a product gap: the people who evolve the product often miss the connection with the customers, their pain points and their needs. To reduce that gap, we need to <strong>create overlaps between creators of the product and customers</strong>.</p> <p>We try to announce usability tests ahead of time to all teams. Everyone can jump into a Zoom call to observe a test live. The insights are circulated in an internal newsletter, with video snippets and key takeaways. Ideally, <a href="https://articles.uie.com/user_exposure_hours/">2h exposure every 6h weeks for everyone</a> is a good aim to target for.</p> <h2 id="5-reserve-20percent-for-quality-improvements" tabindex="-1">5. Reserve 20% For Quality Improvements <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/boost-ux-maturity/#5-reserve-20percent-for-quality-improvements">#</a></h2> <p>Many teams endlessly <strong>run behind schedules</strong>. Their sprints are packed with tickets at 100% of their time and there isn't any time left to review their workflows. As a result, the product accumulates technical debt and design debt — and this doesn’t come for free.</p> <p><strong>Slowdowns are expensive</strong>. The industry approach is to reserve <strong>80% for ongoing tasks</strong>, 20% for quality improvement and design/tech debt. Find an opportunity to run a <strong>workflow revision</strong> or a retrospective as a way to reduce &quot;slacking&quot; costs and improve efficiency. It also brings the notion of quality into conversations, which PMs typically aim for.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/boost-ux-maturity/#wrapping-up">#</a></h2> <p><strong>Changes are slow in large companies</strong>, and introducing them is often an exercise of patience and stubborness. But once the wheel is moving, you might activate other wheels — and most importantly find people who care about your work across the organization.</p> <p>With them on your side, next changes will be much easier to prompt and <strong>get a buy-in for</strong>. It’s difficult and time-consuming, but if you work in a good company with good people, it will be very much worth it.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/boost-ux-maturity/#useful-resources">#</a></h2> <ul> <li> <p><a href="https://roadmunk.com/product-prioritization-ebook/">Feature Prioritization Guide (free eBook)</a>, by Roadmunk,</p> </li> <li> <p><a href="https://uxinsight.org/how-to-measure-ux-research-impact-a-multi-level-framework/">Measuring UX Research Impact</a>, by Karin den Bouwmeester,</p> </li> <li> <p><a href="https://uxdesign.cc/navigating-the-ux-team-of-one-918207ee6a96">Navigating The UX Team of One</a>, by Jamie Ryan,</p> </li> <li> <p><a href="https://rosenfeldmedia.com/books/the-user-experience-team-of-one/">The UX Team of One: A Research and Design Survival Guide</a>, by Leah Buley,</p> </li> <li> <p><a href="https://www.oreilly.com/library/view/articulating-design-decisions/9781491921555/">Articulating Design Decisions</a>, by Tom Greever,</p> </li> <li> <p><a href="https://www.shaunrussell.me/writing/kpi-trees">Building KPI Trees</a>, by Shaun Russell.</p> </li> </ul> Tue, 11 Jul 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/boost-ux-maturity/ 30 UX Interview Questions To Ask In a Job Interview https://smart-interface-design-patterns.com/articles/30-questions-UX-interviews/ <p>When talking about <strong>job interviews for a UX position</strong>, we often discuss how to leave a good impression and how to negotiate the right salary. But it’s only one part of the story. The other part is to ask questions and to listen carefully — to <strong>discover red flags early</strong>, and figure out if a company is a good fit for you.</p> <figure class="c-article__image u-flow--xs"> <a href="https://halfool.medium.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/30-questions-UX-interviews/30-questions-UX-interviews.jpg" alt="UX candidates" width="470" height="352" loading="lazy"> </a> <figcaption><p>Best interviews include questions from both sides. A wonderful illustration by <a href="https://halfool.medium.com/">José Torre</a>.</p> </figcaption> </figure> <p>Most importantly, it’s a good idea to ask yourself what <em>exactly</em> you need to know about the company to make an informed decision if you actually want to work there.</p> <h2 id="useful-ux-interview-questions-to-ask" tabindex="-1">Useful UX Interview Questions To Ask <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/30-questions-UX-interviews/#useful-ux-interview-questions-to-ask">#</a></h2> <p>In <a href="https://uxdesign.cc/6-things-i-wish-product-design-candidates-would-ask-me-during-interviews-87d9f21d286e?mc_cid=2458fc3f02&amp;mc_eid=d6db385824">her recent article</a>, Nati Asher has suggested many <strong>useful questions to ask in a job interview</strong> — when you are applying as a UX candidate. I’ve taken the liberty to revise some of them, and added a few more questions that might be worth considering <strong>for your next job interview</strong>.</p> <ol> <li> <p>What are the <strong>biggest challenges</strong> the team faces at the moment?</p> </li> <li> <p>What are the team’s main <strong>strengths and weaknesses</strong>?</p> </li> <li> <p>What are the <strong>traits and skills</strong> that will make me successful in this position?</p> </li> <li> <p>Where is the company going in the next 5 years?</p> </li> <li> <p>What are the achievements I should aim for over the <strong>first 90 days</strong>?</p> </li> <li> <p>What would make you think “I’m so happy we hired X!”?</p> </li> <li> <p>Do you have any <strong>doubts or concerns</strong> regarding my fit to this position?</p> </li> <li> <p>Does the team have any budget for education, research etc.?</p> </li> <li> <p>What is the process of <strong>onboarding</strong> in the team?</p> </li> <li> <p>Who is in the team and how long are they in that team?</p> </li> <li> <p>Who are the main <strong>stakeholders</strong> I will work with on a day-to-day basis?</p> </li> <li> <p>Which options do you have for user research and accessing users or data?</p> </li> <li> <p>Are there <strong>analytics</strong>, recordings or other data sources to review?</p> </li> <li> <p>How do you <strong>measure the impact of design work</strong> in your company?</p> </li> <li> <p>To what extent does management understand the ROI of good UX?</p> </li> <li> <p>How does UX contribute <strong>strategically</strong> to the company’s success?</p> </li> <li> <p>Who has the <strong>final say on design</strong>, and who decides what gets shipped?</p> </li> <li> <p>What part of the design process does the team spend most time on?</p> </li> <li> <p>How many projects do designers work on <strong>simultaneously</strong>?</p> </li> <li> <p>How has the organization overcome challenges with remote work?</p> </li> <li> <p>Do we have a <strong>design system</strong>, and in what state is it currently?</p> </li> <li> <p>Why does a company want to hire a UX designer?</p> </li> <li> <p>How would you describe the ideal candidate for this position?</p> </li> <li> <p>What does a <a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-career-activity-7077180633575223296-gYIi">career path</a> look like for this role?</p> </li> <li> <p>How will my performance be evaluated in this role?</p> </li> <li> <p>How long do projects take to launch? Can you give me some examples?</p> </li> <li> <p>What are the <strong>most immediate projects</strong> that need to be addressed?</p> </li> <li> <p>How do you see the design team growing in the future?</p> </li> <li> <p>What traits makes someone successful in this team?</p> </li> <li> <p>What’s the <strong>most challenging part</strong> of leading the design team?</p> </li> <li> <p>How does the company ensure it’s upholding its values?</p> </li> <li> <p>What is the one thing in your company that <strong>you would change if you could</strong>?</p> </li> <li> <p>What is the one thing one should <em>never</em> do in the team?</p> </li> </ol> <p>Before a job interview, <strong>choose a few relevant questions</strong> and have them ready. Not only will they convey a message that you care about the process and the culture, but also that you understand what is required to be successful. And this fine detail might go a long way.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/30-questions-UX-interviews/#useful-resources">#</a></h2> <ul> <li><a href="https://medium.com/salesforce-ux/10-questions-you-should-ask-in-a-ux-interview-df8450623088">10 Questions To Ask in a UX Interview</a>, by Ryan Scott,</li> <li><a href="https://www.themuse.com/advice/51-interview-questions-you-should-be-asking">Smart Questions to Ask in a Job Interview in 2023</a>,</li> <li><a href="https://uxplanet.org/six-questions-to-ask-after-a-ux-designer-job-interview-e046219738d7">Six questions to ask after a UX designer job interview</a>.</li> </ul> Sat, 08 Jul 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/30-questions-UX-interviews/ What’s The Perfect Design Process? https://smart-interface-design-patterns.com/articles/perfect-design-process/ <p><strong>Design process is messy.</strong> You might be following a structured approach, but with all the last-minute changes and overlooked details, too often it takes a life of its own. And before you know it, you are designing in a chaotic environment, full of refinements, final-final-deliverables and missed deadlines.</p> <h2 id="whats-the-right-design-process" tabindex="-1">What’s The “Right” Design Process? <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/perfect-design-process/#whats-the-right-design-process">#</a></h2> <p>Of course there is no “right-and-only” way to frame a design process. It’s defined by whatever works well for you and for your team. Personally, I tend to rely on <strong>4 design models</strong> that seem to fit well with my design work:</p> <ul> <li><a href="https://medium.com/digital-experience-design/how-to-apply-a-design-thinking-hcd-ux-or-any-creative-process-from-scratch-b8786efbf812">Double Diamond Process</a> for its comprehensive and reliable methodology for solving problems. In this guide, Dan Nessler breaks down the entire Double-Diamond process into single parts, explaining how exactly it works, step-by-step, in all fine details.</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/digital-experience-design/how-to-apply-a-design-thinking-hcd-ux-or-any-creative-process-from-scratch-b8786efbf812"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/perfect-design-process/01-double-diamond-process.png" alt="How to apply a design thinking, HCD, UX or any creative process from scratch" width="736" height="414" loading="lazy"> </a> <figcaption><p>The classic. The <a href="https://medium.com/digital-experience-design/how-to-apply-a-design-thinking-hcd-ux-or-any-creative-process-from-scratch-b8786efbf812">Double-Diamond process revamped</a> for messy reality. A helpful guide by Dan Nessler.</p> </figcaption> </figure> <ul> <li><a href="https://uxdesign.cc/why-the-double-diamond-isnt-enough-adaa48a8aec1">Triple Diamond Process</a> for its more realistic approach to designer’s input across the product’s life cycle. That's a piece by <a href="https://www.linkedin.com/in/ACoAABoRt6sBLfH-Jr9p1e5aBm_DKhkGCascETw">Adam Gray</a> on why bringing flexibility for the messy reality of the design process is critical to improve planning and involve design work as prototypes are being built.</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/why-the-double-diamond-isnt-enough-adaa48a8aec1"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/perfect-design-process/02-triple-diamond-process.png" alt="Why the double diamond isn’t enough" width="736" height="414" loading="lazy"> </a> <figcaption><p>Extending Double Diamond with an extra Diamond to bring more focus into experimentation and refinement. From <a href="https://uxdesign.cc/why-the-double-diamond-isnt-enough-adaa48a8aec1">Triple Diamond Process</a>, a guide by Adam Gray.</p> </figcaption> </figure> <ul> <li><a href="https://www.ibm.com/design/thinking/page/framework">Enterprise Design Thinking Model by IBM</a> for its focus on design maturity and scale, which really helps with large organizations. A useful model that helps argue for user research, user-centricity and rapid low-fidelity prototyping — and how to transfer ownership to design teams at scale.</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://www.ibm.com/design/thinking/page/framework"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/perfect-design-process/03-IBM-design-thinking-process.png" alt="The Framework Design thinking re-envisioned for the modern enterprise" width="736" height="565" loading="lazy"> </a> <figcaption><p>A helpful model for complex projects and enterprise world: <a href="https://www.ibm.com/design/thinking/page/framework">Enterprise Design Thinking Model by IBM</a>.</p> </figcaption> </figure> <ul> <li><a href="https://danmall.com/posts/hot-potato-process/">Hot Potato process</a>, for its simplicity in bridging design and development across the <strong>entire product lifecycle</strong>. Designers and developers throw ideas and mock-ups and prototypes to each other permanently. Sometimes there are more involved design phases than dev phases, but <a href="https://smart-interface-design-patterns.com/articles/design-handoff/">there is no hand-off</a>, and the entire process is driven by <strong>continuous collaboration</strong>.</li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://danmall.com/posts/hot-potato-process/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/perfect-design-process/04-hot-potato-process.png" alt="The Hot Potato Process" width="736" height="370" loading="lazy"> </a> <figcaption><p>A collaborative approach for designers and developers, focused on throwing ideas back and forth: the <a href="https://danmall.com/posts/hot-potato-process/">Hot Potato process</a> by Dan Mall.</p> </figcaption> </figure> <p>These ways of thinking about design process translated into a process that works well for me, but has to be adjusted for every project that I'm working on. In a nutshell, here's how it would work.</p> <h2 id="a-process-that-works-for-me" tabindex="-1">A Process That Works For Me <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/perfect-design-process/#a-process-that-works-for-me">#</a></h2> <p>There is no such thing as enough user research. In every project, I start with <strong>involving users as early as possible</strong>. I explore all the data we have, interview customer support and service desk, check for technical debt and design issues, backlog items and dismissed ideas. I explore organizational chart to understand layers of management. I set the right expectations and seek allies.</p> <p>From there, I would typically spend weeks or even months in diagrams and spreadsheets and endless docs before drawing a single pixel on the screen. I try to get developers on board, so they can start setting up the dev environment already.</p> <p>I bring in stakeholders and people who have vested interest to <strong>contribute to the success of the project</strong>. Voices that need to be heard, but are often forgotten. I see my role as a person who needs to bridge the gap between business requirements and user needs through the lens of design.</p> <p><strong>Then I take a blank piece of paper and start sketching</strong>. I sketch ideas. I sketch customer journey maps. I sketch content boxes. I write down components that we will surely need in the product — the usual suspects. I set up a workshop with designers and developers to decide on names. Then developers can go ahead and prototype while designers focus on UI and interaction design.</p> <p>To make sure I get both sides of the equation right, I draft customer journey maps, brainstorm ideas and <a href="https://roadmunk.com/product-prioritization-ebook/">prioritize them</a> with the <a href="https://foldingburritos.com/blog/kano-model/#end-form">Kano model</a> and <a href="https://miro.com/templates/impact-effort-matrix/">Impact ÷ Effort matrix</a> (with developers, PMs and stakeholders).</p> <figure class="c-article__image u-flow--xs"> <a href="https://whimsical.com/finviz-kpis-CTzucrgZkLUefK6Mekd38c"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/perfect-design-process/05-design-KPI-tree.png" alt="The Hot Potato Process" width="736" height="371" loading="lazy"> </a> <figcaption><p>An <a href="https://whimsical.com/finviz-kpis-CTzucrgZkLUefK6Mekd38c">example of a Design KPI tree</a>, connecting business goals with design objectives.</p> </figcaption> </figure> <p>I don't want to waste time designing and building the wrong thing, so I establish <a href="https://www.linkedin.com/pulse/design-kpis-ux-metrics-vitaly-friedman/">design KPIs</a> and connect them with business goals using <a href="https://whimsical.com/kpi-tree-2heCEgnYprowt9gUwMKfZ1">KPI trees</a>. I get a sign-off on those, and then interface design starts.</p> <p>I develop hypotheses. Low-fidelity mock-ups. Speak to developers. Get their feedback. Refine. Throw the mock-ups to developers. Bring them into HTML and CSS. Test hypotheses in usability sessions until we get to 80% success rate for top tasks. Designers keep refining, developers keep building out.</p> <p><strong>Establish a process to continuously measure the quality of design</strong>. Track task completions rates. Track task completion times. Track error rates. Track error recovery rates. Track accessibility. Track sustainability. Track performance. In a B2B setting, we track the time customers need to complete their tasks, and try to minimize it.</p> <p><strong>Make them visible to the entire organization</strong> to show the value of design, and its impact on business KPIs. Explain that the process isn't based on hunches. It's an evidence-driven design.</p> <p><strong>Establish ownership and governance</strong>. Search team must be measured by the quality of search results for top 100 search queries over the last 2 months. People who publish content are owners of that content. It's their responsibility to keep it up-to-date, rewrite, archive or delete.</p> <p>Refine, refine, refine. Keep throwing new components and user journeys to developers. Stop. Test with users to check how we are doing. Keep going and refine in the browser. Continuously and rigorously test. Launch and keep refining. <strong>Measure the KPIs</strong> and report into the next iteration of the design.</p> <p>Admittedly, it is a bit messy. But it helps me stay on track when <strong>navigating a complex problem space</strong> in a way that delivers measurable results, removes bias and subjectivity from design decisions and helps deliver user-centric designs that also address business needs.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/perfect-design-process/#wrapping-up">#</a></h2> <p>Of course there is no “right-and-only” way to frame a design process. It’s defined by whatever works well for you and for your team. Explore options and keep them in mind when designing your design process. Whatever you choose, don’t follow it rigidly just for the sake of it, and combine bits from all models to make it right for you.</p> <p>As long as it works well for you, it’s right. And that’s the only thing that matters.</p> Sat, 17 Jun 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/perfect-design-process/ Designing Sticky Menus: UX Guidelines https://smart-interface-design-patterns.com/articles/sticky-menus/ <p>We often rely on <strong>sticky headers</strong> to point user's attention to critical features or calls to action. Think of sidebar navigation, CTAs, sticky headers and footers, “fixed” rows or columns in tables and floating buttons. We've already looked into mobile navigation patterns in <a href="https://smart-interface-design-patterns.com/">Smart Interface Design Patterns</a>, but sticky menus deserve a closer look.</p> <p>As users scroll, a sticky menu always stays in sight — and typically it's considered to be a good feature, especially if the menus are frequently used and especially if we want to <a href="https://www.smashingmagazine.com/2012/09/sticky-menus-are-quicker-to-navigate/">speed up navigation</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://sverigesradio.se/kanaler"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/sticky-menus/01-sticky-bars-stack.png" alt="As users scroll, a sticky menu always stays in sight" width="630" height="618" loading="lazy"> </a> <figcaption><p>Multiple sticky menus in use: <a href="https://sverigesradio.se/kanaler">Sverigesradio</a> with a bottom sticky navigation, and <a href="https://smart-interface-design-patterns.com/articles/sticky-menus/%5Bhttps://www.tvgids.nl/gids/14-05-2023/npo1%5D">TV Gids</a>, with multiple chained sticky menus on the top.</p> </figcaption> </figure> <p>However, sticky menus also come with a few disadvantages. In his recent article on <a href="https://adamsilver.io/blog/the-problem-with-sticky-menus-and-what-to-do-instead/">Sticky Menus Are Problematic, And What To Do Instead, Adam Silver</a> argues about some common usability issues of sticky menus — and how to solve them. Let’s take a closer look.</p> <h2 id="when-sticky-menus-are-useful" tabindex="-1">When Sticky Menus Are Useful <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sticky-menus/#when-sticky-menus-are-useful">#</a></h2> <p>How do we decide if a menu should be sticky or not? This depends on the <strong>primary job</strong> of a page. If it's designed to primarily convey information and we don't expect a lot of navigation, then sticky menus aren't very helpful.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.france.tv/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/sticky-menus/02-sticky-channels-france-tv.png" alt="A helpful sticky bar for navigation through channels." width="630" height="618" loading="lazy"> </a> <figcaption><p>A helpful sticky bar for navigation through channels on <a href="https://www.france.tv/">France TV</a>.</p> </figcaption> </figure> <p>However, if we expect users to navigate between different views on a page a lot, and stay on the page while doing so — as it often is on long landing pages, <strong>product pages and filters</strong> — then having access to navigation, A-Z or tabs <a href="https://www.nngroup.com/articles/sticky-headers/">can be very helpful</a>.</p> <p>Also, when users <strong>compare features in a data table</strong>, sticky headers help them verify that they always look at the right piece of data. That's where sticky headers or columns can help and aid understanding. That's why sticky bars are so frequently used <strong>in eCommerce</strong>, and in my experience, they improve discoverability of content and speed of interaction.</p> <h2 id="keep-sticky-headers-small-but-large-enough-to-avoid-rage-taps" tabindex="-1">Keep Sticky Headers Small, But Large Enough To Avoid Rage Taps <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sticky-menus/#keep-sticky-headers-small-but-large-enough-to-avoid-rage-taps">#</a></h2> <p>The downside of sticky menus is that they typically make it more difficult for users to explore the page as <strong>they obscure content</strong>. Full width bars on mobile and desktop are common, but they need to be compact, especially on narrow screens — and they need to accommodate for <a href="https://smart-interface-design-patterns.com/articles/accessible-tap-target-sizes/">accessible tap sizes</a> to prevent rage taps and rage clicks.</p> <figure class="c-article__image u-flow--xs"> <a href="https://posturinn.is/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/sticky-menus/03-sticky-tabs.png" alt="An example of a page with 4 tabs at the sticky bottom menu." width="630" height="560" loading="lazy"> </a> <figcaption><p><a href="https://posturinn.is/">Postal Service from Iceland</a> with 4 items in the sticky bar navigation (now changed).</p> </figcaption> </figure> <p>Typically that means that we <strong>can't have more than 5 items</strong> in the sticky bar navigation. The choice of the items displayed in the sticky menu should be informed by the most important tasks that users need to perform on the website. If you have more than 5 items, you probably might need to look into some sort of an overflow menu, as displayed by <a href="https://www.samsung.com/us/tvs/neoqled-tv/picture-quality-sound/">Samsung</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.samsung.com/us/tvs/neoqled-tv/picture-quality-sound/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/sticky-menus/04-sticky-navigation.png" alt="Sticky overflow menu floating at the top as in-page navigation." width="630" height="618" loading="lazy"> </a> <figcaption><p>Sometimes sticky menus are used for in-page navigation: a sticky overflow menu at <a href="https://www.samsung.com/us/tvs/neoqled-tv/picture-quality-sound/">Samsung</a>.</p> </figcaption> </figure> <p>Whenever users have to deal with forms on a page on mobile, consider replacing sticky menus with accordions. Virtual keyboards typically take <strong>up to 60% of the screen</strong>, and with a sticky bar in a view, filling in a form quickly becomes nothing short of impossible.</p> <h2 id="accessibility-issues-of-sticky-menus" tabindex="-1">Accessibility Issues of Sticky Menus <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sticky-menus/#accessibility-issues-of-sticky-menus">#</a></h2> <p>By their nature, sticky menus always live on top of the content, and often <strong>cause accessibility issues</strong>. They break when users zoom in. They often block the content for keyboard users who tab through the content. They obscure links and other focusable elements. And, there is often not <strong>enough contrast</strong> between the menu and the content area.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.nngroup.com/articles/sticky-headers/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/sticky-menus/05-sticky-accessibility-issues.png" alt="There is often not enough contrast between the menu and the content area." width="630" height="352" loading="lazy"> </a> <figcaption><p>Poor contrast between the sticky sub-menu-navigation and the content area can cause accessibility issues. Discovered via <a href="https://www.nngroup.com/articles/sticky-headers/">NN/Group</a>.</p> </figcaption> </figure> <p>Whenever we implement a sticky menu, we need to make sure that focusable elements are still visible with a sticky menu in action — and this also goes for internal page anchors that need to account for the sticky bar with the <strong>scroll-padding</strong> property in CSS.</p> <h2 id="avoid-multiple-scrollbars-of-long-sticky-menus" tabindex="-1">Avoid Multiple Scrollbars Of Long Sticky Menus <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sticky-menus/#avoid-multiple-scrollbars-of-long-sticky-menus">#</a></h2> <p>When sticky menus become lengthy, last items on the list <strong>become difficult to access</strong>. We could make them visible with some sort of an <strong>overflow</strong> menu, but often they appear as scrollable panes, causing multiple scroll bars.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.abs.gov.au/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/sticky-menus/06-sticky-sidebar.png" alt="A sidebar sticky menu on the left with the title 'On this page'" width="630" height="380" loading="lazy"> </a> <figcaption><p><a href="https://www.abs.gov.au/">Australian Bureau of Statistics</a>, with a large sticky sidebar navigation that causes a scroll.</p> </figcaption> </figure> <p>Not only does this behaviour cause <strong>discoverability issues</strong>, it's often a cause for mistakes and repetitive actions on a page. Ideally, we would prevent it by keeping the number of items short, but often it’s not possible, or can’t be managed properly.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.smashingmagazine.com/printed-books/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/sticky-menus/07-accordion-not-sticky-header.png" alt="No sticky menu in sight: instead, an accordion appearing on the top of the page." width="630" height="607" loading="lazy"> </a> <figcaption><p>No sticky menu in sight: instead, we could show and hide cart details when needed. On <a href="https://www.smashingmagazine.com/printed-books/">Smashing Magazine</a>.</p> </figcaption> </figure> <p>A way out is to <strong>show the menu as an accordion instead</strong> in situations when the space is limited, especially on mobile devices. That's what we do at Smashing Magazine in the checkout, with a button that reveals and hides the contents of the cart when needed.</p> <h2 id="partially-persistent-menus" tabindex="-1">Partially Persistent Menus <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sticky-menus/#partially-persistent-menus">#</a></h2> <p>Because sticky menus often take too much space, we could <strong>reveal them when needed</strong>, and hide them when a user is focused on the content. That's the idea behind partially persistent headers: as a user starts scrolling down, the menu disappears, but then any scrolling up prompts the menu to appear again.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.cb2.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/sticky-menus/08-semi-sticky-header.png" alt="An example of a partially persistent menu that disappears on scroll down and reappears on scroll up" width="630" height="612" loading="lazy"> </a> <figcaption><p>A partially persistent sticky menu on <a href="https://www.cb2.com/">CB2</a> that disappears on scroll down and reappears on scroll up.</p> </figcaption> </figure> <p>The issue with this pattern is that sometimes users just want to jump back to a previous section of the page, or want to double check some details in a previous paragraph, and the menu often gets in the way. Page Laubheimer from NN/Group recommends to use a <strong>slide-in animation</strong> that <a href="https://www.nngroup.com/articles/sticky-headers/">is roughly 300–400ms long</a> will preserve the natural feel, without being distracting.</p> <h2 id="alternatives-to-sticky-menus" tabindex="-1">Alternatives To Sticky Menus <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sticky-menus/#alternatives-to-sticky-menus">#</a></h2> <p>In some situations, we might not need a sticky menu after all. We can avoid their downsides with <strong>shorter pages</strong>, or lengthy pages which repeat relevant calls-to-actions or navigation <em>within</em> the page.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.gov.uk/find-legal-advice"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/sticky-menus/09-table-of-contents.png" alt="Examples of table of contents appearing on top of pages" width="630" height="602" loading="lazy"> </a> <figcaption><p>Alternatives to sticky menus: a table of contents displayed on <a href="https://www.gov.uk/find-legal-advice">UK Government</a> and <a href="https://www.govt.nz/browse/immigration-and-visas/visas-and-travel/">New Zealand Government</a>.</p> </figcaption> </figure> <p>We could display a <strong>table of contents</strong> on the top of the page, and bring user's attention to table of contents with a back-to-top link at the bottom of the page.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sticky-menus/#wrapping-up">#</a></h2> <p>Whenever a job of the page is to help users act, save, compare, or we expect users to rely on navigation a lot, we might consider displaying sticky navigation. They are most harmful when there isn't enough space anyway, as it often is with forms on mobile devices.</p> <p>Sticky menus do come at a cost as we need to account for usability and accessibility issues, especially for <strong>zooming, keyboard navigation and anchor jumps</strong>. Add them if you need them, but be careful in plugging them in by default.</p> <p>We need to prioritize what matters and remove what doesn't: and too often, the focus should lie entirely on content, and not navigation.</p> <h2 id="further-resources" tabindex="-1">Further Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/sticky-menus/#further-resources">#</a></h2> <p>Of course, the techniques listed above barely scratch the surface. Here are wonderful articles around sticky headers, from design considerations to technical implementations:</p> <ul> <li><a href="https://adamsilver.io/blog/the-problem-with-sticky-menus-and-what-to-do-instead/">The Problem With Sticky Menus, and What To Do Instead</a>, by <a href="https://www.linkedin.com/in/adambsilver?miniProfileUrn=urn%3Ali%3Afs_miniProfile%3AACoAAAKPgv4BhBlcQZzpi3QD2sssbjghdYhQI1o">Adam Silver</a>,</li> <li><a href="https://www.nngroup.com/articles/sticky-headers/">Sticky Headers: 5 Ways to Make Them Better</a>, by Page Laubheimer,</li> <li><a href="https://uxdesign.cc/porting-long-scroll-content-to-a-small-screen-a-different-approach-to-sticky-in-page-navigation-ca94f15262fe">A different approach to sticky in-page navigation</a>, by Corey Snyder.</li> </ul> Sun, 07 May 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/sticky-menus/ Mobile Accessibility Target Sizes Cheatsheet https://smart-interface-design-patterns.com/articles/accessible-tap-target-sizes/ <p><strong>Rage taps are annoying and frustrating</strong>. These wonderful occurrences in our interface when we need to tap twice, or sometimes three times to continue our journeys. Of course sometimes they happen because the website is too slow, but sometimes it’s the target size of interactive elements that is the culprit.</p> <figure class="c-article__image u-flow--xs"> <a href="https://blog.embrace.io/rage-taps/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/accessible-tap-target-sizes/01-rage-taps-metric-for-user-frustration.jpg" alt="Rage Taps, a Metric for User Frustration, by Colin Contreary" width="648" height="339" loading="lazy"> </a> <figcaption><p><a href="https://blog.embrace.io/rage-taps/">Rage Taps, a Metric for User Frustration</a>, by Colin Contreary</p> </figcaption> </figure> <p>So how big should our interactive elements be these days? <strong>What would be a reliable size for icons, links and buttons</strong> — in navigation and on mobile? How do we make it more difficult for our users to make mistakes? Let’s take a look.</p> <h2 id="target-sizes-cheatsheet" tabindex="-1">Target Sizes Cheatsheet <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/accessible-tap-target-sizes/#target-sizes-cheatsheet">#</a></h2> <p>One of the common recommendations for target sizes on mobile is <strong>44×44px</strong>. This is a little bit misleading because screen pixels, or at least <em>device-independent pixels (dips)</em> are scaled to a multiple of the display resolution. So pixels are different on different screens, and when we have a conversation about sizes, we probably should be speaking about <em>dips</em>, rather than <em>pixels</em>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/accessible-tap-target-sizes/02-target-sizes-cheatsheet.jpeg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/accessible-tap-target-sizes/02-target-sizes-cheatsheet.jpeg" alt="Target Sizes Cheatsheet" width="648" height="575" loading="lazy"> </a> <figcaption><p>Target Sizes Cheatsheet, researched and designed by Steven Hoober. <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/accessible-tap-target-sizes/02-target-sizes-cheatsheet.jpeg">Large view</a>.</p> </figcaption> </figure> <p>Depending on where an element appears on the screen, it needs more or less padding. In general, we are very precise in our input in the center of the screen, but we are <strong>least precise on the edges of the screen</strong> (both on the top and at the bottom).</p> <p>According to Steven Hoober’s research in his book on <a href="https://www.smashingmagazine.com/2022/02/fitts-law-touch-era/">Touch Design For Mobile Interfaces</a>, to minimize rage taps we need to aim for 11mm (or 31pt / 42px) on the top of the screen, and 12mm (or 34pt / 46px) at the bottom of the screen. In the center though, we could potentially go as low as 7mm (or 20pt / 27px). This includes both the width and padding of an interactive element.</p> <p><strong>How do point units translate to CSS pixels or Android/iOS units</strong>? Fortunately, Steven Hoober provides a <a href="https://www.4ourthmobile.com/publications/type-sizes-for-every-device-and-user">helpful conversion table</a> to help you translate from points to px and em units, Android SPs or DPs, iOS points and Windows DIP or px.</p> <h2 id="not-all-pixels-are-the-same" tabindex="-1">Not All Pixels Are The Same <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/accessible-tap-target-sizes/#not-all-pixels-are-the-same">#</a></h2> <p>As we’ve seen above, target sizes change depending on where components appear on the screen. It’s worth noting that according to the <a href="https://www.w3.org/WAI/WCAG21/Understanding/target-size.html">WCAG 2.1 AAA level requirements</a>, all targets should measure <strong>at least 44 by 44px</strong>, except if the target is in a sentence or block of text. For such exceptions, we could be using 27px as a goal, but in general, the larger, the better.</p> <figure class="c-article__image u-flow--xs"> <a href="https://github.com/topics/bottom-sheet"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/accessible-tap-target-sizes/03-bottom-sheet-bar.jpeg" alt="Bottom Sheet Bar" width="648" height="324" loading="lazy"> </a> <figcaption><p><a href="https://github.com/topics/bottom-sheet">Bottom Sheet Bar navigation</a> might work better if you need to display more than 5 items at the bottom of a mobile screen.</p> </figcaption> </figure> <p>For sticky menus at the top or bottom of the screen, we should probably aim for around 44–46px boxes, or preferably even more. However, for links that appear on the screen as user scroll down the page, we probably will be able to avoid most issues with smaller components.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/accessible-tap-target-sizes/accessible-tap-target-sizes/04-bottom-navigation-tabs.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/accessible-tap-target-sizes/04-bottom-navigation-tabs.png" alt="Frans Hals Museum and Danish Public Transport websites" width="648" height="572" loading="lazy"> </a> <figcaption><p><a href="https://www.franshalsmuseum.nl/en/">Frans Hals Museum</a> and <a href="https://dinoffentligetransport.dk/">Danish Public Transport</a> websites with 5 items appearing in the bottom menu.</p> </figcaption> </figure> <p>This is also why we probably will be able to <strong>place at most 5 items in the bottom tabs</strong> on a mobile phone. Instead, we might need to use a bottom sheet that would slide up from down as an overlay on top of the screen.</p> <h2 id="prefer-actions-button-to-single-icons-for-data-tables" tabindex="-1">Prefer “Actions” Button To Single Icons For Data Tables <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/accessible-tap-target-sizes/#prefer-actions-button-to-single-icons-for-data-tables">#</a></h2> <p>Complex tables typically have <strong>hover actions</strong> that appear once a user starts hovering over a particular row. They typically include everything from highlight and export to move and delete.</p> <p>In testing, showing icons on hover <strong>produces too many mistakes</strong>: not only do users often accidentally jump to a wrong row as they navigate horizontally towards the icons. They also make mistakes by accidentally clicking on the wrong spot and starting all over again.</p> <figure class="c-article__image u-flow--xs"> <a href="https://liferay.design/lexicon/core-components/table/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/accessible-tap-target-sizes/05-table-hover-actions.jpeg" alt="Table view hover for the Liferay design system" width="648" height="344" loading="lazy"> </a> <figcaption><p>Table view hover for the Liferay design system. <a href="https://liferay.design/lexicon/core-components/table/">Source</a>.</p> </figcaption> </figure> <p>To avoid rage clicks, it might be a good idea to test how well an <strong>“Actions” buttons or a “Split”-Button</strong> would perform instead. Indeed, that button could live on every row, would open on tap/click and wouldn’t close automatically. It might not be ideal for every use case, but it definitely gives users more sense of control as they need to take an action on a row.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/accessible-tap-target-sizes/accessible-tap-target-sizes/06-actions-button.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/accessible-tap-target-sizes/06-actions-button.png" alt="A split-button typically produces fewer rage clicks/taps than small hover action icons. Examples." width="648" height="493" loading="lazy"> </a> <figcaption><p>No hover icons in sight; instead, the interface uses an 'Actions' button that shows options in an overlay. <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/accessible-tap-target-sizes/06-actions-button.png">Large view</a>.</p> </figcaption> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://web.dev/building-a-split-button-component/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/accessible-tap-target-sizes/07-split-button.png" alt="A split-button typically produces fewer rage clicks/taps than small hover action icons." width="648" height="446" loading="lazy"> </a> <figcaption><p>A <a href="https://web.dev/building-a-split-button-component/">split-button</a> typically produces fewer rage clicks/taps than small hover action icons.</p> </figcaption> </figure> <h2 id="provide-an-assistant-for-complex-manipulations" tabindex="-1">Provide An Assistant For Complex Manipulations <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/accessible-tap-target-sizes/#provide-an-assistant-for-complex-manipulations">#</a></h2> <p>With a complex manipulation such as rotation of an image, or selection of a small part of a larger area, we often rely on pinch and zoom, or zoom in/out buttons. These options of course work, but they easily become a bit tedious to use for very precise manipulations — especially if used for a while.</p> <figure class="c-article__image u-flow--xs"> <a href="https://tylko.com/de/kategorie/type01plywood-sideboard"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/accessible-tap-target-sizes/08-assistant-pattern.png" alt="This is how Tylko allows users to customize their shelves on mobile" width="648" height="634" loading="lazy"> </a> <figcaption><p>Assistant pattern allows users to navigate an object with a little handle on the right. Example: <a href="https://tylko.com/de/kategorie/type01plywood-sideboard">Tylko</a>.</p> </figcaption> </figure> <p>Instead, we can attach a little handle to allow users to move their selection within the object faster, and with more precision. This is how <a href="https://tylko.com/de/kategorie/type01plywood-sideboard">Tylko</a> allows users to customize their shelves on mobile. Zooming is supported as well, but it’s not necessary to select one of the areas.</p> <h2 id="when-multiple-taps-are-better-than-one" tabindex="-1">When Multiple Taps Are Better Than One <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/accessible-tap-target-sizes/#when-multiple-taps-are-better-than-one">#</a></h2> <p>But what do we do if some tap areas have to be small? Perhaps we <strong>can’t reserve 27×27px for each icon</strong> — for example, when we suggest a color selection in an eCommerce site? Well, in that case one option to consider would be to prompt a “proper” selection of colors with one additional tap. This might be a bit slower in interaction, but way more accurate.</p> <figure class="c-article__image u-flow--xs"> <a href="https://dribbble.com/shots/3202469-Gr-nland-Color-Picker-Microinteraction"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/accessible-tap-target-sizes/09-color-picker-manipulation.png" alt="Grønland – Color Picker Microinteraction, Mykolas Puodžiūnas" width="648" height="496" loading="lazy"> </a> <figcaption><p>Fewer rage clicks: <a href="https://dribbble.com/shots/3202469-Gr-nland-Color-Picker-Microinteraction">Grønland Color Picker Microinteraction</a>, designed by Mykolas Puodžiūnas.</p> </figcaption> </figure> <h2 id="always-maximize-clickable-area" tabindex="-1">Always Maximize Clickable Area <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/accessible-tap-target-sizes/#always-maximize-clickable-area">#</a></h2> <p>Whenever possible, <strong>encapsulate the entire element</strong>, along with enough padding to ensure that you hit the magical 42–46px size to prevent rage taps for good. This typically means <strong>adding enough padding</strong> for icons but also preferring full-width or full-height bars for accordions and navigation.</p> <figure class="c-article__image u-flow--xs"> <a href="https://ishadeed.com/article/clickable-area/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/accessible-tap-target-sizes/09-increase-clickable-area.png" alt="Always Increase Clickable Area" width="648" height="269" loading="lazy"> </a> <figcaption><p>Navigation bars should ideally be full-width, so there is no need to focus specifically on the link area.</p> </figcaption> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://ishadeed.com/article/clickable-area/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/accessible-tap-target-sizes/10-increase-clickable-area-icon.png" alt="Always Increase Clickable Area" width="648" height="246" loading="lazy"> </a> <figcaption><p>Always add enough padding to make it easier to tap an element. Again, we are aiming for interactive area of at least 44px radius for every interactive element.</p> </figcaption> </figure> <p>Ahmad Shadeed presents <a href="https://ishadeed.com/article/clickable-area/">a few useful examples of using spacing</a> to increase clickable areas and prevent rage clicks. Any Lupe provides even more suggestions in her article on <a href="https://craftcms.com/blog/accessible-target-sizes">accessible target sizes</a>.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/accessible-tap-target-sizes/#wrapping-up">#</a></h2> <p>When designing for touch today, we need to use <strong>at least 27×27px for small links</strong> or icons in the content area, and at least 44×44px for icons at the top and at the bottom of the page.</p> <figure class="c-article__image u-flow--xs"> <a href="https://craftcms.com/blog/accessible-target-sizes"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/accessible-tap-target-sizes/11-click-areas.jpeg" alt="Accessible Target Sizes, by Amy Lupe" width="600" height="360" loading="lazy"> </a> <figcaption><p>Padding is always helpful for any kind of input: be it stylus, pointer or a finger. From <a href="https://craftcms.com/blog/accessible-target-sizes">Accessible Target Sizes</a>, by Amy Lupe</p> </figcaption> </figure> <p>Personally, I would always go up to <strong>30×30px and 48×48px</strong> to make sure mistakes are really difficult to make. And of course, always use full width or full height for the clickable areas. Hopefully this will help us remove rage taps from our websites altogether — and many of your users would sincerely appreciate it.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/accessible-tap-target-sizes/#useful-resources">#</a></h2> <p>There are a few wonderful resources on accessible target sizes that might be helpful if you’d like to dive deeper in the topic:</p> <ul> <li><a href="https://craftcms.com/blog/accessible-target-sizes">Accessible Target Sizes</a>, by Amy Lupe</li> <li><a href="https://www.nngroup.com/articles/touch-target-size/">Touch Targets on Touchscreens</a>, by Aurora Hailey</li> <li><a href="https://ishadeed.com/article/clickable-area/">Enhancing the Clickable Area</a>, by Ahmad Shadeed</li> <li><a href="https://css-tricks.com/looking-at-wcag-2-5-5-for-better-target-sizes/">WCAG 2.55 for Better Target Sizes</a>, by Todd Libby</li> <li><a href="https://www.smashingmagazine.com/2022/02/fitts-law-touch-era/">Fitt’s Law In The Touch Era</a>, by Steven Hoober</li> <li><a href="https://www.smashingmagazine.com/printed-books/touch-design-for-mobile-interfaces/">Touch Design For Mobile Interfaces</a>, by Steven Hoober</li> <li><a href="https://www.4ourthmobile.com/publications/type-sizes-for-every-device-and-user">Type Sizes for Every Device</a>, by Steven Hoober</li> </ul> Thu, 20 Apr 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/accessible-tap-target-sizes/ Drag-and-Drop UX: Guidelines and Best Practices https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/ <p>Drag-and-drop <strong>is not a trivial user interaction</strong>. It’s messy, inaccurate and comes in plenty of flavors — from design states to interaction modes. Yet when we think of drag-and-drop, we typically think of a simple drag’n’drop file upload — which is only one of the many contexts where drag-and-drop appears.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/drag-and-drop-for-design-systems-8d40502eb26d"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/drag-and-drop-ux/01-drag-and-drop-for-design-systems.png" alt="Drag and Drop for Design Systems" width="550" height="290" loading="lazy"> </a> <figcaption><p>Drag-and-drop requires cursor changes and a “ghost” image of the component. From <a href="https://uxdesign.cc/drag-and-drop-for-design-systems-8d40502eb26d">Drag and Drop for Design Systems</a> by Grace Noh.</p> </figcaption> </figure> <p>Yet every time we need to re-order a list, or move around cards, or reshuffle columns in a fancy enterprise table, we’ll probably be dealing with <strong>drag-and-drop interactions</strong>. And too often, they will feel too sluggish, too difficult to use and absolutely inaccessible. Let’s fix it.</p> <p>You can find more details on navigation and interaction design in <a href="https://smart-interface-design-patterns.com/">usability chapters in the video library</a>, with a new UX training coming in September 2023.</p> <h2 id="1-drag-and-drop-should-resemble-physical-movements" tabindex="-1">1. Drag-And-Drop Should Resemble Physical Movements <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/#1-drag-and-drop-should-resemble-physical-movements">#</a></h2> <p>It’s not surprising that many users expect drag-and-drop to feel very much like the offline experience of <strong>moving physical objects</strong> from one place to another. With it come expectations around everything from lifting an item and moving it to spotting available “drop zone” and eventually dropping an item there.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/drag-and-drop-for-design-systems-8d40502eb26d"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/drag-and-drop-ux/02-drag-and-drop-physical-movements.png" alt="Drag and Drop for Design Systems" width="550" height="465" loading="lazy"> </a> </figure> <p>In fact, there are plenty of states to consider:</p> <ul> <li> <p><strong>states for components</strong>: resting, lifted/grabbed, in transit, dropped, erroneous and successful.</p> </li> <li> <p><strong>states for the drop zone</strong>: empty, hidden, revealed, disabled, ready and contentful.</p> </li> <li> <p><strong>other states</strong>: changes in drag handle and grab cursor, but also adjustments of drop shadows and drop targets.</p> </li> </ul> <p>Each of these states must be designed with <strong>affordance</strong> in mind, and provide instant feedback for the changes made — whether they are possible or not.</p> <h2 id="2-use-the-right-cursors-and-grab-handles" tabindex="-1">2. Use The Right Cursors and Grab Handles <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/#2-use-the-right-cursors-and-grab-handles">#</a></h2> <p>If a UI component doesn’t provide any clues about its support of drag-and-drop, we shouldn’t really expect users to discover it on their own. This is similar to right-click interactions which, without any clues, often have a very low discovery rate. With drag-and-drop, the cursor should change on hover to indicate that tapping or clicking will initiate a grab.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdesign.cc/drag-and-drop-for-design-systems-8d40502eb26d"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/drag-and-drop-ux/03-drag-and-drop-mac-win-cursors.jpg" alt="Cursors we can use to indicate drag-and-drop on Mac and on Windows" width="550" height="282" loading="lazy"> </a> <figcaption><p>Cursors we can use to indicate drag-and-drop on Mac and Win. From <a href="https://uxdesign.cc/drag-and-drop-for-design-systems-8d40502eb26d">Drag-and-Drop in Design Systems</a>.</p> </figcaption> </figure> <p>This isn’t enough though. Hover alone assumes that users will discover it on their own, which will not be the case for keyboard users. The component must also be focusable and include a focused state — along with controls to move the component. To be on the safe side, we can clearly indicate for each item that it can be dragged by <strong>adding a “grab” or “move” handle</strong> on it.</p> <p>The <strong>mouse cursor</strong> could change to indicate that an item is being dragged — from the “move” or “grab” cursor (which indicates something can or is to be moved) to the “grabbing” cursor (which indicates that something is being moved).</p> <p>Usually there is no need to reinvent the cursor and design an entirely new set of drag-and-drop icons.</p> <h2 id="3-elevate-lifted-items-with-drop-shadow-and-tilting" tabindex="-1">3. Elevate Lifted Items With Drop-Shadow and Tilting <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/#3-elevate-lifted-items-with-drop-shadow-and-tilting">#</a></h2> <p>Whenever we are moving an item from one place to another, we almost instinctively follow a pattern that we are used to in physical spaces, too. <strong>We lift an item, move it</strong>, make space for it, drop it to its new spot. Each of these movements is familiar and obvious — and on the web, we can imitate it, too.</p> <p>In UI terms, that means “lifting up” an item towards a user once it has been grabbed, in the z-dimension. Not only does the item then stand out from the others; the elevation also indicates that the item’s <strong>state has now changed</strong>. In fact, it could be achieved in a few different ways:</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/drag-and-drop-ux/04-drag-and-drop-tilted-cards.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/drag-and-drop-ux/04-drag-and-drop-tilted-cards.png" alt="Tilting cards on drag action when moving items in Trello." width="550" height="404" loading="lazy"> </a> <figcaption><p>Tilting cards on drag action when moving items in <a href="https://trello.com/b/LGHXvZNL/kanban-template">Trello</a>.</p> </figcaption> </figure> <ul> <li> <p>Add a <strong>drop-shadow</strong> to add depth and elevation,</p> </li> <li> <p>Add an <strong>outline</strong> around the component,</p> </li> <li> <p>Slightly tilt the object (Trello pattern displayed above),</p> </li> <li> <p>Leave a <strong>“ghost” image</strong> where the component used to be.</p> </li> </ul> <p>Whatever options you choose to use, consider also using indentation with some <strong>horizontal and vertical offset</strong>, so the item appears quite different from the items that are currently in place. This will help avoid confusion when you need it the least.</p> <h2 id="4-collapse-large-items-into-summaries" tabindex="-1">4. Collapse Large Items Into Summaries <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/#4-collapse-large-items-into-summaries">#</a></h2> <p>And here comes the never-ending question: as the item is being dragged, when do we actually remove it from its original position? This seems like a question with an obvious answer, but there are <strong>5 important considerations</strong> which every drag-and-drop experience might need to consider:</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/drag-and-drop-ux/05-drag-and-drop-collapse-into-summaries.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/drag-and-drop-ux/05-drag-and-drop-collapse-into-summaries.png" alt="Collapse a grabbed item into a summary as it’s being moved. Example: Gmail." width="550" height="326" loading="lazy"> </a> <figcaption><p>Collapse a grabbed item into a summary as it’s being moved. Example: <a href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/drag-and-drop-ux/05-drag-and-drop-collapse-into-summaries.png">Gmail</a>.</p> </figcaption> </figure> <ul> <li> <p>A dragged item should follow user’s movements immediately.</p> </li> <li> <p>Always leave a <strong>ghost image</strong> of the component to indicate where it used to be.</p> </li> <li> <p>As the item is being moved, make sure it stands out from the rest of the list.</p> </li> <li> <p>For large items, collapse them into a <strong>summary of the contents</strong>.</p> </li> <li> <p>Remove the ghost image on drop, but support undo.</p> </li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/drag-and-drop-ux/06-drag-and-drop-moving-items.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/drag-and-drop-ux/06-drag-and-drop-moving-items.png" alt="Google Drive shows where the folder used to be, what is in transit and highlight an area which would capture it once it’s dropped. No surprises here." width="550" height="286" loading="lazy"> </a> <figcaption><p><a href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/drag-and-drop-ux/06-drag-and-drop-moving-items.png">Google Drive</a> shows where the folder used to be, what is in transit and highlight an area which would capture it once it’s dropped. No surprises here.</p> </figcaption> </figure> <p>The summary pattern seems to work best when we are <strong>moving large columns, rows, files</strong> or large chunks of data as otherwise they would pollute the entire screen. For smaller items, such as relatively small cards or list item, we don’t need to collapse into summaries, and can move the item directly across the screen.</p> <h2 id="5-reshuffle-items-center-out" tabindex="-1">5. Reshuffle Items Center-Out <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/#5-reshuffle-items-center-out">#</a></h2> <p>As items are travelling across the screen, eventually we also need to either <strong>“capture” them in a drop zone</strong>, or move other content out of the way to make room for them. Usually we change the drop zone to a &quot;ready” state to indicate that it’s ready to capture the dropped content.</p> <p>With other components, we usually <strong>push items out of the way</strong> and use a visual indicator to cue the change (with a horizontal line or a temporary empty card). Both give users a preview about where the item will land once it’s dropped.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.nngroup.com/articles/drag-drop/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/drag-and-drop-ux/07-drag-and-drop-reshuffling-center-out.png" alt="A depiction of one box overlapping another with a red dotted line to indicate the center of the top object having broken the plane of the bottom one" width="550" height="249" loading="lazy"> </a> <figcaption><p>When to reshuffle items? One option is when one item cross the vertical center of the other one. Source: <a href="https://www.nngroup.com/articles/drag-drop/">Norman-Nielsen Group</a>.</p> </figcaption> </figure> <p>The most complex question, however, is when exactly we should start <strong>pushing out components</strong> to make space for a new one?</p> <p>Many implementations start moving items out when their edges meet, but it might be a little premature. An alternative option is to move an item out of the way once the <strong>center of the dragged component overlaps the edge</strong> of the other component — this might be a slightly stronger intent that the user has made up their mind.</p> <h2 id="6-use-magnetism-to-snap-objects-into-place" tabindex="-1">6. Use Magnetism To Snap Objects Into Place <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/#6-use-magnetism-to-snap-objects-into-place">#</a></h2> <p>Drag-and-drop is <strong>inherently inaccurate</strong>, so whenever an item can be comfortably dropped, we might want to make it obvious to users. We could do so with a slightly different outline of a dropzone that the target area is ready for the drop.</p> <p>Even better if we can animate the drop with a <strong>short transition (100ms)</strong> into its new home position, so it feels like it snaps an object into place.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/drag-and-drop-ux/08-drag-and-drop-magnetism.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/drag-and-drop-ux/08-drag-and-drop-magnetism.jpg" alt="A file upload drop zone with a red dotted line indicating where the actual drop zone interaction border is, despite it being invisible to the user" width="550" height="247" loading="lazy"> </a> <figcaption><p>A file upload drop zone with a red dotted line indicating where the actual drop zone interaction border is, despite it being invisible to the user. Source: <a href="https://www.nngroup.com/articles/drag-drop/">Norman Nielsen Group</a>.</p> </figcaption> </figure> <p>Typically a dotted or dashed area indicate that an item will be safely captured once it’s dropped. Notice how on Dropbox (pictured below), a <strong>file is collapsed into a summary</strong>, indicating just how many files there are and they type of the file as well.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/drag-and-drop-ux/09-drag-and-drop-striped-borders.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/drag-and-drop-ux/09-drag-and-drop-striped-borders.png" alt="Large dashed area in blue on Dropbox indicates a dropzone." width="550" height="466" loading="lazy"> </a> <figcaption><p>Large dashed area in blue on <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/f88eb99d-060d-433f-2e17-da6607ac2769.png">Dropbox</a> indicates a dropzone.</p> </figcaption> </figure> <h2 id="7-allow-users-to-undo" tabindex="-1">7. Allow Users To Undo <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/#7-allow-users-to-undo">#</a></h2> <p>Mistakes are inevitable, and eventually items will end up in wrong places. To help users recover from these mistakes, we might want to support an option to <strong>“Undo” the last action</strong> and restore the initial position of the item. It could be as simple as an “Undo” button that remains visible until the user moves on to the next operation. It could also be a stack of last changes that users could revert back to.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/drag-and-drop-ux/10-drag-and-drop-undo-actions.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/drag-and-drop-ux/10-drag-and-drop-undo-actions.png" alt="Allow Users To Undo" width="550" height="385" loading="lazy"> </a> <figcaption><p>Drag-and-drop isn’t a trivial interaction, so we can help users recover from mistakes by adding an option to Undo.</p> </figcaption> </figure> <h2 id="8-on-mobile-use-action-buttons" tabindex="-1">8. On Mobile, Use Action Buttons <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/#8-on-mobile-use-action-buttons">#</a></h2> <p>Because drag-and-drop is inaccurate, an alternative way to prevent errors or mistakes is by providing an option to select one or multiple items and move them by using a <strong>dedicated “Move to” button</strong>, as it’s used in some mobile applications (see below). That’s a simple way to make drag-and-drop more accessible in general, but it is extremely useful especially on narrow mobile screens.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/drag-and-drop-ux/11-drag-and-drop-move-to-action.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/drag-and-drop-ux/11-drag-and-drop-move-to-action.png" alt="GMail using a Move to button on mobile, creating fewer avenues for mistakes" width="550" height="410" loading="lazy"> </a> <figcaption><p>GMail uses a “Move to” button on mobile, creating fewer avenues for mistakes. Source: <a href="https://www.nngroup.com/articles/drag-drop/">Norman Nielsen Group</a>.</p> </figcaption> </figure> <h2 id="9-accessible-drag-and-drop" tabindex="-1">9. Accessible Drag-And-Drop <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/#9-accessible-drag-and-drop">#</a></h2> <p>There is a common assumption that drag-and-drop can’t be accessible. But there are some implementations that make the interaction fully accessible without a mouse. On mobile, sometimes interface use a <a href="https://www.nngroup.com/articles/drag-drop/">subtle haptic “bump”</a> to indicate that an object has been grabbed.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/salesforce-ux/4-major-patterns-for-accessible-drag-and-drop-1d43f64ebf09"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/drag-and-drop-ux/12-drag-and-drop-screenreader-messages.png" alt="Salesforce's accessible drag and drop pattern library" width="550" height="487" loading="lazy"> </a> <figcaption><p><a href="https://salesforce-ux.github.io/dnd-a11y-patterns/">Salesforce’s accessible drag and drop pattern library</a> supports screenreader messages.</p> </figcaption> </figure> <p><strong>Keyboard users</strong> need to be able to focus on handle icons and receive screen reader messages about the changes they are about to make, implemented with <a href="https://medium.com/salesforce-ux/4-major-patterns-for-accessible-drag-and-drop-1d43f64ebf09">ARIA live regions</a>. The actual drag-and-drop experience need to be implemented with keyboard keys.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/drag-and-drop-ux/13-drag-and-drop-dragging-controls.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/drag-and-drop-ux/13-drag-and-drop-dragging-controls.png" alt="Keyboard users need to be able to focus on handle icons and receive screen reader messages about the changes they are about to make, implemented with ARIA live regions." width="550" height="267" loading="lazy"> </a> <figcaption><p>Keyboard users need to be able to focus on handle icons and receive screen reader messages about the changes they are about to make, implemented with ARIA live regions.</p> </figcaption> </figure> <p>The <a href="https://salesforce-ux.github.io/dnd-a11y-patterns/#/?_k=8qmiww">Salesforce implementation</a> allows users to use <strong>Tab/Shift+Tab</strong> to navigate to an item, press <strong>Space</strong> to enter into drag mode, then use <strong>Down/Right, Up/Left</strong> arrow keys to select a new position and then press <strong>Space</strong> to drop item in new position. For each of them, we also need to design a separate state.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/#wrapping-up">#</a></h2> <p>Indeed, drag-and-drop is not a trivial interaction. Hopefully the pointers listed above will help you design slightly <strong>better and more accessible drag-and-drop UX</strong> without making users confused about just how painful and slow the experience is.</p> <p>Here’s a <strong>quick summary</strong> of the pointers mentioned above:</p> <ul> <li> <p>Users should feel like they are moving <strong>physical objects</strong>.</p> </li> <li> <p>Design states for components and drop zone areas.</p> </li> <li> <p>Dragged items <strong>should move towards users</strong> in the z-dimension.</p> </li> <li> <p><strong>Animate the drop</strong> of an item (100ms) into its new home position.</p> </li> <li> <p><strong>Add shadows and elevation</strong> to make interaction obvious.</p> </li> <li> <p>Simulate a “magnetic” effect that snaps objects into place.</p> </li> <li> <p>Reshuffle when a center of a dragged item overlaps an edge.</p> </li> <li> <p>Collapse large components into <strong>summaries</strong> during transit.</p> </li> <li> <p>Keep handle icons accessible and support screen readers.</p> </li> <li> <p>Support <strong>Spacebar</strong> to pick up, <strong>Arrow</strong> keys to move, <strong>Space</strong> to drop.</p> </li> <li> <p>Use grab-handle icons and adjust system cursors.</p> </li> <li> <p>Use a <strong>haptic “bump”</strong> to indicate grabbing on mobile.</p> </li> </ul> <h2 id="further-resources" tabindex="-1">Further Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/#further-resources">#</a></h2> <p>Of course, the techniques listed above barely scratch the surface. Here are some fantastic resources all around drag-and-drop, from design considerations to technical implementations and ready-to-use libraries:</p> <ul> <li> <p><a href="https://pencilandpaper.io/articles/ux-pattern-drag-and-drop/">Drag and Drop UX Best Practices</a>, by Ceara Crawshaw</p> </li> <li> <p><a href="https://uxdesign.cc/drag-and-drop-for-design-systems-8d40502eb26d">Drag and Drop UX for Design Systems</a>, by Grace N.</p> </li> <li> <p><a href="https://blog.prototypr.io/building-a-responsive-drag-and-drop-ui-5761fd5281d5">Building a Drag and Drop UI</a>, by Graeme Fulton</p> </li> <li> <p><a href="https://medium.com/@alexandereardon/rethinking-drag-and-drop-d9f5770b4e6b">Rethinking Drag and Drop</a>, by Alex Reardon</p> </li> <li> <p><a href="https://www.nngroup.com/articles/drag-drop/">Drag–and–Drop: How to Design for Ease of Use</a>, by Page Laubheimer</p> </li> <li> <p><a href="https://salesforce-ux.github.io/dnd-a11y-patterns/#/?_k=woofca">Salesforce Drag and Drop Interaction Patterns</a></p> </li> <li> <p><a href="https://commadot.com/drag-and-drop-order-ux-pattern/">Drag and Drop Order UX Pattern</a>, by Glen Lipka</p> </li> <li> <p><a href="https://medium.com/salesforce-ux/4-major-patterns-for-accessible-drag-and-drop-1d43f64ebf09">Major Interaction Patterns for Accessible Drag and Drop</a>, by Jesse Hausler</p> </li> <li> <p><a href="https://github.com/atlassian/react-beautiful-dnd">Beautiful Drag And Drop, A React Library</a></p> </li> </ul> <p>Happy drag-and-dropping, everyone!</p> Wed, 12 Apr 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/ The Best Handoff Is No Handoff https://smart-interface-design-patterns.com/articles/design-handoff/ <p>Many companies <strong>organize their workflows</strong> around projects and departments. Especially in large companies, work often travels from one place to another, often getting stuck between emails and Slack messages, and often “refined” on its never-ending journey <strong>between design and engineering teams</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/bc4a1bc6-fcbd-3713-02a8-fa9a712e3f3a.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-handoff/design-handoff-things-not-going-as-expected.jpg" alt="Too often things don’t go as expected" width="550" height="412" loading="lazy"> </a> <figcaption><p>Too often things don’t go as expected. Illustration by <a href="https://ux.shopify.com/the-design-process-is-a-lie-465a7064a733">José Torre</a>.</p> </figcaption> </figure> <p>This inevitably brings up the question about the <strong>design hand-off</strong>: that magical moment when designers are done with their work and developer can take over. Most importantly, that’s where designers must stop working, and move on to other work — unless the scope changes or late adjustments creep their way in.</p> <h2 id="the-no-handoff-method" tabindex="-1">The “No Handoff” Method <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-handoff/#the-no-handoff-method">#</a></h2> <p>Last week, I stumbled upon an <a href="https://smart-interface-design-patterns.com/">interesting article about the no-handoff method</a>, in which Shamsi Brinn shows an alternative to typical design hand-offs. Shandi shows a <strong>fluid model</strong> where product and engineering teams work on the product iteratively all the time, with functional prototyping being the central method of working together.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/bc4a1bc6-fcbd-3713-02a8-fa9a712e3f3a.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-handoff/fluid-design-handoff-model.png" alt="The good ol’ Double Diamond on the top, an alternative “no handoff” method on the bottom" width="550" height="374" loading="lazy"> </a> <figcaption><p><a href="https://uxdesign.cc/ending-design-handoff-this-is-our-fight-b376d2b58e4a">Before and after</a>: the good ol’ Double Diamond on the top, an alternative “no handoff” method on the bottom.</p> </figcaption> </figure> <p>With the process, the working prototype is the <strong>living spec</strong> of the project and a shared language for the team. No more translation is needed because everyone works on the same prototype. The problem space and the solution space are <strong>explored by designers and engineers collaboratively</strong>, and the entire workflow is organized around the product, rather than company’s internal structure.</p> <h2 id="the-hot-potato-process" tabindex="-1">The “Hot Potato” Process <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-handoff/#the-hot-potato-process">#</a></h2> <p>This reminded me of the <a href="https://danmall.com/posts/hot-potato-process/">Hot Potato Process</a> by Dan Mall and Brad Frost, where ideas are <strong>passed quickly back and forth</strong> from designer to developer and back to designer then back to developer for the entirety of a product creation cycle — similar to throwing hot potato back and forth (<a href="https://www.youtube.com/watch?v=isNBAN_nlIU&amp;ab_channel=InVision">audio</a>, <a href="https://vimeo.com/367846576">video</a>).</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/design-handoff/design-handoff/hot-potato-design-process.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-handoff/hot-potato-design-process.png" alt="The “Hot Potato” process, with designers and engineers throwing mock-ups and prototypes to each other repeatedly" width="550" height="271" loading="lazy"> </a> <figcaption><p>The <a href="https://danmall.com/posts/hot-potato-process/">“Hot Potato” process</a>, with designers and engineers throwing mock-ups and prototypes to each other repeatedly.</p> </figcaption> </figure> <p>From my personal experience, I can only testify that the best collaboration <strong>doesn’t have any handoffs between teams</strong>. There, work flows seamlessly from design to engineering and back — with both teams working simultaneously, and discussing issues as they occur, during the entire product lifecycle.</p> <p>There are phases of <strong>independent</strong> work for sure, but there are also plenty of overlaps for collaborative work, which are opportunities to discuss the progress, explore what is and what isn’t viable and hence avoid lurking issues down the line.</p> <h2 id="create-as-many-overlaps-as-possible" tabindex="-1">Create As Many Overlaps As Possible <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-handoff/#create-as-many-overlaps-as-possible">#</a></h2> <p>Of course, the process works well for small product teams. But what if a part of the product is outsourced to an <strong>external agency</strong>? Many companies choose the route of extensive documentation — almost to the last pixel, along with a brief explaining the strategy and the thinking behind the design.</p> <p>This isn’t enough though. Design decisions have to be <strong>informed by technical implementations</strong> and its limitations. There is no universal language around design patterns and their interaction design either. And not every design detail can be implemented in an accessible and performant way. This is why beautiful mock-ups turn into painfully slow and inaccessible monsters.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/74e9068b-d4cc-8615-e878-0f985146fb9a.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-handoff/contributing-to-design-process.jpg" alt="Engineers could and often should contribute to the design process. Illustration by José Torre." width="550" height="456" loading="lazy"> </a> <figcaption><p>Engineers could and often should contribute to the design process. Illustration by <a href="https://ux.shopify.com/designing-a-more-effective-portfolio-7725f46ad79e">José Torre</a>.</p> </figcaption> </figure> <p>We can reduce the risks of hand-offs with <strong>dedicated overlaps</strong> between designers and engineering teams. With regular check-ins. Weekly reviews. Shared channels for communications. Visibility into the work done. Usability testing of functional prototypes and small but regular design revisions.</p> <p><strong>Design is a team work</strong>. It involves everybody who contributes to the website — from customer service and marketing to developers and designers. Any overlaps you can create will benefit the teams, their productivity, and ultimately your users.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-handoff/#wrapping-up">#</a></h2> <p>So we want to move away from handoffs. But how to convince teams to change their workflow entirely? With a <strong>small experiment on a small project</strong>. Pick a project where you could test the waters and suggest a collaborative process. Ask what designers could do while developers are busy. Ask what developers could do while designers iterate. And enable both teams to work together, at the same time.</p> <p>Ultimately, the success depends on one simple thing: just how well the teams work together. And if they can’t collaborate particularly well, chances are high that a design hand-off won’t make it any better, and a <strong>major change in the team culture</strong> will need to happen first.</p> <p>You can find more details on <strong>design patterns and UX</strong> in the <a href="https://smart-interface-design-patterns.com/">video library on Smart Interface Design Patterns</a> — with a <a href="https://smart-interface-design-patterns.com/">live UX training</a> that’s coming up in March 2024.</p> <p><em>Sending a lot of optimism, hope and good energy your way! Happy designing, and thank you for reading!</em></p> Sat, 01 Apr 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/design-handoff/ How To Avoid Bias in UX Research https://smart-interface-design-patterns.com/articles/how-to-avoid-bias-in-ux-research/ <p>Recently I stumbled upon the article <a href="https://medium.com/@genis.hti/bias-in-ux-research-ba1e6e61a50d">How To Avoid Bias in UX Research</a>, with pointers on how to anticipate, identify and overcome biases in your research by being more strategic about how you ask questions and how you run the test. A concise write-up by Genís Frigola.</p> <p>Here are some useful points (with a few additions from my end):</p> <ul> <li> <p>Check your emotions: be boring and neutral.</p> </li> <li> <p>Talk less, listen and observe instead.</p> </li> <li> <p>Think carefully about the sequence of questions.</p> </li> <li> <p>Ask a question, then get out of the way.</p> </li> <li> <p>Let users follow their own paths.</p> </li> <li> <p>Never suggest your opinions or views.</p> </li> <li> <p>Never respond positively or negatively.</p> </li> <li> <p>Never use leading words and limit guidance.</p> </li> <li> <p>Watch out for your tone and body language.</p> </li> <li> <p>You don’t need to fill silences — let them be.</p> </li> <li> <p>Avoid close-ended questions or opinions.</p> </li> <li> <p>Repeat what users say and ask if you got it right.</p> </li> <li> <p>Get enough time to recruit the right people.</p> </li> <li> <p>Space out the scheduling of interviews.</p> </li> <li> <p>Ask colleagues to shadow you for second opinions.</p> </li> </ul> <p>Personally, I tend to avoid focus groups as they usually result in a few people taking a lead in the conversation and ultimately guiding other people in their direction, leaving no opportunity for others to make up their mind on their own.</p> <p>Also, with a wonderful advice by Gerry McGovern, I’ve stopped asking users to walk me through the test as they complete tasks. Instead, I just give them a task and observe them trying to complete it. Whenever issues occur, I ask questions to better understand what the problem actually is.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/how-to-avoid-bias-in-ux-research/confirmation-bias.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/how-to-avoid-bias-in-ux-research/confirmation-bias.png" alt="" width="540" height="541" loading="lazy"> </a> </figure> <p><strong>Further resources</strong></p> <ul> <li> <p><a href="https://npr.design/overcoming-cognitive-bias-in-user-research-e4082f4506a">Overcoming Cognitive Bias in User Research</a>, by Adam Kiryk</p> </li> <li> <p><a href="https://www.userinterviews.com/blog/how-to-reduce-bias-in-ux-research">What To Do About Bias in UX Research</a>, by Lizzy Burnam</p> </li> <li> <p><a href="https://www.nngroup.com/articles/confirmation-bias-ux/">Confirmation Bias in UX</a>, by Jennifer Junge</p> </li> <li> <p><a href="https://uxdesign.cc/10-cognitive-biases-to-avoid-in-user-research-and-how-to-avoid-them-993aa397c8c6">10 Cognitive Biases to Avoid in User Research</a>, by Sundar Subramanian</p> </li> <li> <p><a href="https://dscout.com/people-nerds/cognitive-biases-user-research">10 Cognitive Biases Anyone Doing UX Research Should Know</a>, by Nikki Anderson</p> </li> </ul> <p>A huge thanks to everyone kindly contributing to all these resources!</p> Wed, 22 Mar 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/how-to-avoid-bias-in-ux-research/ Navigating The UX Team Of One https://smart-interface-design-patterns.com/articles/navigate-the-team-of-one/ <p>Are you the only designer on the team? <a href="http://jamieryan.ie/ux-team-of-one">Navigating The UX Team Of One</a> is a very honest article about the things to keep in mind in the open waters of technology-driven teams. Written by <strong>Jamie Ryan</strong>.</p> <ul> <li> <p>Document everything, from your work to org charts.</p> </li> <li> <p>Ask a lot of questions, listen and build credibility.</p> </li> <li> <p>Make yourself known to every team.</p> </li> <li> <p>Reach out to key figures from every department.</p> </li> <li> <p>Find your allies among non-designers.</p> </li> <li> <p>Find where you add value, and spend your time there.</p> </li> <li> <p>Protect your work from people telling you how to design.</p> </li> <li> <p>Understand the language of each department.</p> </li> <li> <p>Always speak about their goals, not yours.</p> </li> <li> <p>Always give your points firmly: no soft cloud landings.</p> </li> <li> <p>Watch out for red flags, and write them down.</p> </li> <li> <p>You will need other people to carry your design in action.</p> </li> <li> <p>Make your work visible to other people, and bring them in.</p> </li> <li> <p>Good design execution is about relationship management.</p> </li> <li> <p>Protect your time and keep a file with your achievements.</p> </li> </ul> <p>Plenty of actionable recommendations — and I can only emphasize just how important it is to establish good relationships with key people in other organizations, and understand and speak the language of the business. This is how changes happen — in big and small organizations. Safe sailing, everyone! ⛵</p> <p><strong>Further reading</strong>:</p> <ul> <li> <p><a href="https://www.theonlydesigner.com/">The Only Designer</a></p> </li> <li> <p><a href="https://www.designernews.co/stories/72242-advice-for-a-young-designer-joining-a-startup-as-the-only-designer">Advice For Young Designers Joining a Start-up As The Only Designer</a></p> </li> <li> <p><a href="https://rosenfeldmedia.com/books/the-user-experience-team-of-one/">The UX Team of One: A Research and Design Survival Guide</a>, by Leah Buley</p> </li> <li> <p><a href="https://www.oreilly.com/library/view/articulating-design-decisions/9781491921555/">Articulating Design Decisions</a>, by Tom Greever</p> </li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/navigate-the-team-of-one/navigating-the-team-of-one.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/navigate-the-team-of-one/navigating-the-team-of-one.jpg" alt="Navigating The UX Team Of One" width="550" height="318" loading="lazy"> </a> </figure> Tue, 21 Mar 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/navigate-the-team-of-one/ Red Flags To Check In Your Design Interviews https://smart-interface-design-patterns.com/articles/design-interviews-red-flags/ <figure class="c-article__image u-flow--xs"> <a href="https://unsplash.com/photos/hsHurvbWRvc"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-interviews-red-flags/red-flags.jpg" alt="An illustration of a red flag" width="550" height="318" loading="lazy"> </a> <figcaption><p>Red flags to check in your design interviews. Photo by <a href="https://unsplash.com/photos/hsHurvbWRvc">Carson Masterson</a>.</p> </figcaption> </figure> <p>I’ve recently stumbled upon <a href="https://uxplanet.org/red-flags-things-to-check-in-your-design-interviews-and-why-59d26d1f1a53">Red Flags To Check In Your Design Interviews</a>, a quick guide on how to work out if a team is right for you, and what it's going to be like to work in that company, or with that team. A great reminder, kindly put together by <strong>Morgane Peng</strong>, with a few useful pointers:</p> <ul> <li>Your interviewers aren't all recent hires.</li> <li>Design decisions aren’t made by managers.</li> <li>Designers aren’t expected to do non-design tasks.</li> <li>People seem to feel positive about their colleagues.</li> <li>There seems to be a proper onboarding process in place.</li> <li>Design process isn’t stale but evolves over time.</li> </ul> <p>Wonderful points, and I would expand it a little bit to make sure the company has at least some commitment to design and UX, and an inclusive and supportive culture :</p> <ul> <li>The company is public about its values and beliefs.</li> <li>There is a well-defined design career ladder.</li> <li>There are regular 1:1-meetings and feedback sessions.</li> <li>There is a commitment to user research and UX.</li> <li>The environment seems to be inclusive, diverse and supportive.</li> </ul> <p><strong>Further reading</strong>:</p> <ul> <li> <p><a href="https://bootcamp.uxdesign.cc/questions-to-ask-your-product-design-interviewers-f71d43668645">Questions to ask your product design interviewers</a>, by Poyi Chen</p> </li> <li> <p><a href="https://uxplanet.org/5-questions-you-should-ask-to-avoid-working-for-a-toxic-ux-manager-445861bc7827">Questions You Should Ask to Avoid Working for a Toxic UX Manager</a> by Vivianne Castillo</p> </li> <li> <p><a href="https://medium.com/iq-design/finding-the-perfect-match-10-questions-designers-should-ask-before-joining-a-new-company-f78dc32a17a9">Questions Designers Should Ask Before Joining a New Company</a>, by Catriona Shedd</p> </li> <li> <p><a href="https://medium.com/uxcollections/ux-interview-questions-you-should-ask-55c5adfdbae4">UX Interview Questions You Should Ask</a>, by Poyi Chen</p> </li> <li> <p><a href="https://uxdesign.cc/questions-to-ask-when-interviewing-for-a-design-job-bc4b0e32d2c4">Questions to Ask When Being Interviewed For a Design Job</a>, by Michael McWatters</p> </li> <li> <p><a href="https://bootcamp.uxdesign.cc/questions-to-ask-in-your-head-of-design-interview-a7d1261f9526">Questions to ask in your Head of Design interview</a>, by Martyn Reding</p> </li> <li> <p><a href="https://jeremybird276.medium.com/interviewing-your-ux-interviewer-9527b69a314a">Interviewing Your UX Interviewer</a>, by Jeremy Bird 🇺🇸🇧🇷</p> </li> <li> <p><a href="https://hbr.org/2022/05/38-smart-questions-to-ask-in-a-job-interview">Smart Questions to Ask in a Job Interview</a>, by Amy Gallo</p> </li> <li> <p><a href="https://www.thecut.com/article/questions-to-ask-in-a-job-interview.html">Questions to Ask in a Job Interview</a>, by Alison Green</p> </li> </ul> <p>Good luck with your interviews, everyone! 🌱</p> Tue, 21 Mar 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/design-interviews-red-flags/ Five Simple Steps For Better Autocomplete UX https://smart-interface-design-patterns.com/articles/autocomplete-ux/ <p><strong>Autocomplete!</strong> Their design seems to be almost obvious at first, yet there are some common usability issues that appear over and over again, preventing users from using them effectively. Let’s fix that — by exploring <strong>5 autocomplete UX details</strong> where the design pattern can be improved.</p> <h2 id="1-always-show-suggestions-on-focus" tabindex="-1">1. Always Show Suggestions On Focus <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/autocomplete-ux/#1-always-show-suggestions-on-focus">#</a></h2> <p>When do we start showing suggestions? Typically, this happens after a few first keystrokes — and usually that’s a recipe for trouble. There will always be some portion of users who <strong>always look at the keyboard while typing</strong> — usually we just don't know how many people do so.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxplanet.org/why-is-online-checkout-so-difficult-and-how-to-simplify-it-eeb3da2ea530"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/autocomplete-ux/autocomplete-country-suggestions.jpg" alt="Almost perfect autocomplete UX." width="550" height="332" loading="lazy"> </a> <figcaption><p><a href="https://uxplanet.org/why-is-online-checkout-so-difficult-and-how-to-simplify-it-eeb3da2ea530">Almost perfect autocomplete UX</a> from a lengthy series on forms by DKO.</p> </figcaption> </figure> <p>Often it’s only after a user finishes at least some part of their input that they will <strong>verify it on screen</strong>. So if we display autocomplete suggestions too late, some people will never learn that your site provides an excellent autocomplete support.</p> <p>We can indicate autocomplete with a search icon, or a chevron icon, as well as a sensible placeholder, such as “Select an option...”. It also works best to always display <strong>autocomplete suggestions immediately</strong>: with frequently used or most relevant options, for example. It’s just more obvious this way.</p> <h2 id="2-use-tap-ahead-autocomplete-suggestions" tabindex="-1">2. Use Tap-Ahead Autocomplete Suggestions <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/autocomplete-ux/#2-use-tap-ahead-autocomplete-suggestions">#</a></h2> <p>If you take a close look at the example below, can you spot the <strong>arrow on the right-hand side</strong> of keyword suggestions? Now, do you know exactly what they are, and how they are different from regular keywords? Chances are high that you don't.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mediamarkt.de/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/autocomplete-ux/autocomplete-type-ahead-arrow.jpg" alt="One of the many: autocomplete suggestions by Mediamarkt, a German eCommerce retailer." width="550" height="332" loading="lazy"> </a> <figcaption><p>One of the many: autocomplete suggestions by <a href="https://mediamarkt.de/">Mediamarkt</a>, a German eCommerce retailer.</p> </figcaption> </figure> <p>While the tap or click on the keyword will bring you to a search result page, the click on the arrow <strong>appends the search query to the search box</strong>, without executing search. So you can gradually construct a more sophisticated search query, relying on relevant suggestions. It’s useful as users can move forward confidently, and never end up on a zero-results page.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.theverge.com/2022/9/28/23375691/google-search-multisearch-visual-keywords"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/autocomplete-ux/autocomplete-type-ahead-bubbles.jpg" alt="A much better way to display tap-ahead suggestions: with pills underneath the search box." width="550" height="511" loading="lazy"> </a> <figcaption><p>A much better way to display tap-ahead suggestions: with pills underneath the search box.</p> </figcaption> </figure> <p>The problem is that this pattern has <strong>very low discoverability</strong>. Most people just don’t know how it works. A much better way to design this feature is by providing chips or badges underneath the search box, like the newer iteration of Google does. This pattern is often called <strong>tap-ahead suggestions</strong> — and it’s always a great add-on for every autocomplete.</p> <h2 id="3-show-a-diversity-of-suggestions" tabindex="-1">3. Show A Diversity Of Suggestions <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/autocomplete-ux/#3-show-a-diversity-of-suggestions">#</a></h2> <p>We often assume that users are just looking for the right search query, but it’s not always true. The search box is often used as a <strong>shortcut strategy</strong> to get to a particular category or products, and we can help users get there.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxtools.co/challenges"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/autocomplete-ux/autocomplete-suggestions-categories.jpg" alt="Autocomplete can do more than just showing keywords: Prisma.fi, Hema.nl and IKEA add more diversity to suggestions add more diversity to suggestions." width="550" height="330" loading="lazy"> </a> <figcaption><p>Autocomplete can do more than just showing keywords: <a href="https://www.prisma.fi/fi/prisma">Prisma.fi</a>, <a href="https://hema.nl/">Hema.nl</a> and <a href="https://www.ikea.com/">IKEA</a></p> </figcaption> </figure> <p>Additionally to keyword suggestions, we can show relevant categories, or even <strong>products with thumbnails</strong>, <strong>availability and pricing</strong>. Of course, they also need to include distinct icons and typographic treatment to be recognized as such.</p> <p>Showing a diversity of suggestions helps users get where they need to go, faster — and it might work very well as an additional way to <strong>expose featured products</strong>. In fact, users might appreciate this feature very much.</p> <h2 id="4-provide-autocomplete-filters" tabindex="-1">4. Provide Autocomplete Filters <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/autocomplete-ux/#4-provide-autocomplete-filters">#</a></h2> <p>If a large number of your users are expert users, consider turning the search autocomplete into a <strong>sophisticated query builder</strong> — with filters, sorting and attributes that can be defined straight from the search box.</p> <figure class="c-article__image u-flow--xs"> <a href="https://stackoverflow.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/autocomplete-ux/autocomplete-suggestions-search-filters.jpg" alt="A screenshot of a stackoverflow.com" width="550" height="333" loading="lazy"> </a> <figcaption><p>On <a href="https://stackoverflow.com/">Stackoverflow</a>, users can <strong>define filters for search results directly</strong>: by specifying the status of a question asked to tags and the number of answers, with a special pre-defined search query syntax.</p> </figcaption> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://www.stripe.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/autocomplete-ux/autocomplete-suggesed-filters.jpg" alt="A screenshot of a stripe.com" width="550" height="288" loading="lazy"> </a> <figcaption><p><a href="https://www.stripe.com/">Stripe</a> follows a similar pattern, with suggested filters and search tips that allow expert users to not only search, but also reduce the scope of search straight away. It might be a bit too complex for new users, but just what is needed for experts.</p> </figcaption> </figure> <h2 id="5-support-keyboard-navigation" tabindex="-1">5. Support Keyboard Navigation <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/autocomplete-ux/#5-support-keyboard-navigation">#</a></h2> <p>It’s worth stating that a good autocomplete UX always supports keyboard navigation. Usually users would use <strong>Up/Down</strong> keys to navigate the list, and <strong>Enter</strong> to submit a search query. This of course requires a <strong>selected search query to be highlighted</strong> during navigation in the list, and the search suggestion should be announced by screen readers as well.</p> <figure class="c-article__image u-flow--xs"> <a href="https://adamsilver.io/blog/building-an-accessible-autocomplete-control/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/autocomplete-ux/autocomplete-with-dropdown-chevron.png" alt="A screenshot of a https://adamsilver.io/" width="550" height="363" loading="lazy"> </a> <figcaption><p><a href="https://adamsilver.io/blog/building-an-accessible-autocomplete-control/">Autocomplete from start to finish</a>, a thorough guide by Adam Silver.</p> </figcaption> </figure> <p>You can find an example of an <strong>accessible autocomplete component</strong> in Adam Silver's article on <a href="https://adamsilver.io/blog/building-an-accessible-autocomplete-control/">Building an accessible autocomplete control</a>, along with the markup, CSS, JavaScript and a <a href="http://nostyle.herokuapp.com/examples/autocomplete">working demo</a>.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/autocomplete-ux/#wrapping-up">#</a></h2> <p>Autocomplete can do <strong>much more than just highlighting keyword suggestions</strong>. By showing suggestions on focus, using tap-ahead suggestions, exposing users to relevant details from the search box and allowing experts to make the best out of the results before even executing search, we can make autocomplete more efficient and relevant.</p> <p>The main benefit of autocomplete is the <strong>increased speed of accurate and relevant input</strong>. Once users know that there is autocomplete, and understand how it works, we can help them increase task completion rates and task completion speed. And that’s something not many component can do as well as autocomplete does.</p> Wed, 15 Mar 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/autocomplete-ux/ Things I Wish I’d Known Earlier In My Design Career https://smart-interface-design-patterns.com/articles/lessons-learned/ <p>Too often, our individual goals and plans are left far behind the company’s goals and product development roadmaps. That’s not right. Below are some of the tips around design career that I wish somebody had told me earlier in my career, and that I hope will be <strong>useful for your career</strong> as well.</p> <!-- To be perfectly honest, the newsletter today doesn’t have much to do with [Smart Interface Design Patterns](https://smart-interface-design-patterns.com/), but I hope that you will find these tips worth your time nevertheless. --> <figure class="c-article__image u-flow--xs"> <a href="https://unsplash.com/photos/zEqkUMiMxMI"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/lessons-learned/lessons-learned.jpg" alt="Plan your negotiation strategy ahead of time." width="550" height="367" loading="lazy"> </a> <figcaption><p>You need to plan your negotiation strategy ahead of time. <a href="https://unsplash.com/photos/zEqkUMiMxMI">Estée Janssens</a>.</p> </figcaption> </figure> <h2 id="1-never-tell-your-salary-expectations-first" tabindex="-1">1. Never Tell Your Salary Expectations First <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/lessons-learned/#1-never-tell-your-salary-expectations-first">#</a></h2> <p>Usually it doesn’t take long until a recruiter or HR manager asks you about your salary expectations. Of course, you’d like to make a good first impression, and my first instinct has always been to provide a slightly discounted ballpark figure.</p> <p>Salary isn’t everything, but it’s important. Be very careful and strategic when negotiating your salary. It should be <strong>fair and comparable</strong> to your colleagues. If asked about your expectations, politely reject and ask for an average salary for your level in the company instead.</p> <p>Also, do your research upfront (via <a href="https://www.teamblind.com/">TeamBlind</a>, <a href="https://www.levels.fyi/">Levels.fyi</a>, <a href="https://www.glassdoor.com/">Glassdoor</a> and know what to expect as a minimum.</p> <h2 id="2-pay-close-attention-to-your-job-title" tabindex="-1">2. Pay Close Attention To Your Job Title <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/lessons-learned/#2-pay-close-attention-to-your-job-title">#</a></h2> <p>We often think that titles don’t matter as much as the work that we are actually doing. Yet throughout the years, I’ve been proved wrong over and over again. Titles do matter. They define salary levels and your growth opportunities.</p> <p>Be very careful and strategic about the role you apply for, and make sure it matches the role stated in your contract. There are vast differences between UX Designer and Senior UX Designer roles, for example, and growing from one level to another can be quite difficult.</p> <h2 id="3-always-have-a-comfortable-salary-range-in-mind" tabindex="-1">3. Always Have a Comfortable Salary Range in Mind <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/lessons-learned/#3-always-have-a-comfortable-salary-range-in-mind">#</a></h2> <p>Don’t focus too much on your current salary as it might not account for inflation, gender gap, and other costs. Instead, explore what a reasonable salary for your role is and for your level of experience in your region. You might even increase it a bit to leave enough room for negotiations.</p> <p>Ask yourself what salary <strong>would make you enthusiastic enough</strong> to be heavily invested in the product and deliver your best work. But never provide a number on the call, and defer it to an email if you must.</p> <h2 id="4-you-cant-have-it-all" tabindex="-1">4. You Can’t Have It All <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/lessons-learned/#4-you-cant-have-it-all">#</a></h2> <p>Who doesn’t want to have a lovely combination of ownership in the team, a decent salary with stock options, stability, great managers, fantastic people, and a good work-life balance? It was quite a surprise to me that getting everything neatly packaged in one job opening was quite an <strong>unrealistic expectation</strong>.</p> <ul> <li> <p>In a <strong>start-up</strong>, you might have a lot of ownership, but with it often comes slightly chaotic management with last-minute changes and mid-night fixes.</p> </li> <li> <p>In <strong>large corporations</strong>, you would have a reasonable salary and stability, but you probably won’t feel like you make significant contributions to the product. But you learn a lot from your team and grow significantly as a professional.</p> </li> <li> <p>As a <strong>contractor or freelancer</strong>, you always need to chase your projects, and with it comes a healthy dose of accounting, estimates, scopes of work, and eventually, last-minute changes and deadlines. This adds to the pressure and stress levels that you might want to avoid.</p> </li> <li> <p>In an <strong>agency</strong>, you’ll learn a lot about different knowledge domains, but you’ll be jumping from one project to another, sometimes working on multiple projects at once. The salary might be lower than in a product team, and you’re likely to work on deadlines.</p> </li> </ul> <p>Be clear what is more important to you, and what combination are you after: team, culture, ownership, flexibility, stability, salary, work-life-balance. You rarely will find a perfect match, and you will have to compromise. Just have your priorities clearly defined.</p> <h2 id="5-keep-record-of-your-achievements" tabindex="-1">5. Keep Record of Your Achievements <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/lessons-learned/#5-keep-record-of-your-achievements">#</a></h2> <p>Why is it so difficult to grow from one role into another? Well, we often think that if we just work hard enough, we will get noticed, and we will be promoted to senior positions. But your growth heavily depends on how attentive and caring your managers and your company are.</p> <p>However, in many companies <strong>managers change</strong>, companies evolve, teams get restructured. You might not ever get a chance to have a proper conversation about a promotion.</p> <p>Maintain an <strong>up-to-date record of your achievements</strong>, milestones, projects and learnings, workshops and trainings you’ve attended, articles you’ve written and talks you’ve given, your help with onboarding new employees, your contribution to weekly UX meetings, etc. (a Google Doc would do). This will help you argue better in your 1:1’s with your manager(s).</p> <h2 id="6-test-the-company-during-your-probation-period" tabindex="-1">6. Test The Company During Your Probation Period <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/lessons-learned/#6-test-the-company-during-your-probation-period">#</a></h2> <p>Watch out for red flags. Do people leave for strange reasons? Do managers change frequently? Do people get promoted at all? Are designers being listened to in the company? Track the impact of your work, and anything that stands in the way.</p> <h2 id="7-switching-companies-is-how-you-make-more-money" tabindex="-1">7. Switching Companies Is How You Make More Money <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/lessons-learned/#7-switching-companies-is-how-you-make-more-money">#</a></h2> <p>Jumps from one company to another help climb the career ladder and improve salary, yet as a result, you might end up <strong>without any ownership at all</strong>. Just because you don’t get enough time to contribute and see the impact of your contributions in real projects. And to me, that’s always been very important, and more important than the salary.</p> <p>In the industry, it’s common to be jumping between companies <strong>every 12–18 months</strong>, and in fact that’s how you usually would make more money. But if you feel valued and appreciated, the team is great and salary is fine, stay. But: make sure you don’t leave too early or too late. Leaving after 8 months will raise red flags in your future job interviews.</p> <h2 id="8-think-about-passive-income-early" tabindex="-1">8. Think About Passive Income Early <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/lessons-learned/#8-think-about-passive-income-early">#</a></h2> <p>When you are in your 20s, it’s easy to dismiss the notion of passive income. After all, you have all the time in the world to make your financial decisions later. But I can’t stress it enough: <strong>do think early about your passive income</strong>.</p> <p>The earlier you start investing into ETFs or creating digital products, the more you can accumulate over the years. You don’t need much money to start building up your passive income. Even putting aside $100 a month <a href="https://smartasset.com/investing/investment-calculator#bUuwyGpt6Q">will pay off long term</a>. <strong>Be visible</strong> by writing, sharing, open-sourcing. That’s a great investment of your time for decades to come.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/lessons-learned/#wrapping-up">#</a></h2> <p>Don’t put your hard work and efforts into something that might not even be worth your energy. You are talented, skilled, and hard-working, and there are plenty of good uses for your skills out there. So settle for a while if you must, but never stop looking for options that would suit you better if you can.</p> Tue, 07 Mar 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/lessons-learned/ Designing A Time Zone Selection UX https://smart-interface-design-patterns.com/articles/time-zone-selection-ux/ <p>Designing a <strong>time-zone selection</strong> is hard. Not only are time zones difficult to scan and understand; they also change over time, with or without daylight saving at different times, and there is no universal way of organizing and displaying them.</p> <figure class="c-article__image u-flow--xs"> <a href="https://lukasz.medium.com/on-time-time-zones-and-software-6617a4c22d05"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/time-zone-selection-ux/01-time-zones-complexity.jpg" alt="A screenshot of lukasz.medium.com" width="550" height="309" loading="lazy"> </a> <figcaption><p><a href="https://lukasz.medium.com/on-time-time-zones-and-software-6617a4c22d05">Time zones are hard</a>, a wonderful article by Łukasz Tyrała with details about time zones and tips for better time-zone selection UX.</p> </figcaption> </figure> <p>And then there are <strong>dozens of time zones</strong> and hundreds of mysterious abbreviations — UTC, GMT, DST, CET — which sometimes change, and sometimes not. Ironically, users often need most time when choosing the right time zone. How do we make it easier for them? Let’s figure it out. (You can find more details on that in the <a href="https://smart-interface-design-patterns.com/">usability chapters in the video library</a>.)</p> <h2 id="1-use-a-complete-list-of-time-zones" tabindex="-1">1. Use a Complete List of Time Zones <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/time-zone-selection-ux/#1-use-a-complete-list-of-time-zones">#</a></h2> <p>In total, there are <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">352 time zones around the world</a>, with 245 different abbreviations (as defined by the <a href="https://www.iana.org/time-zones">Time Zone Database</a>). Of course <strong>time zones evolve over time</strong>; they get changed or deprecated, so it shouldn’t be surprising to discover that our legacy applications might be showing some time zones which are no longer relevant.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/3853277e-f22f-a9bd-e6cc-b4b8fcbb6e01.jpeg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/time-zone-selection-ux/02-time-zones-global-map.jpg" alt="A section of time zones around the world" width="550" height="471" loading="lazy"> </a> <figcaption><p>A section of time zones around the world: <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/3853277e-f22f-a9bd-e6cc-b4b8fcbb6e01.jpeg">download the complete list</a>.</p> </figcaption> </figure> <p>Of all the different time zones, <em>Coordinated Universal Time</em> (or UTC) is the one reliable, true compass for time definition. It never changes and serves as a <strong>constant time of reference</strong>, in which other time zones are relative. It’s also seen as a successor to the Greenwich Mean Time (GMT). Unsurprisingly, it will have to make its appearance in our time-zone selection UI.</p> <h2 id="2-users-think-in-their-local-time" tabindex="-1">2. Users Think in Their Local Time <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/time-zone-selection-ux/#2-users-think-in-their-local-time">#</a></h2> <p>Because UTC is standardized, we should be able to rely on it and display just that. However, as it turns out, <strong>users often don’t think about UTC</strong> at all. <a href="https://www.nngroup.com/articles/time-zone-selectors/">Nor do they understand time zones</a>, or the difference between UTC and GMT, or when and where daylight saving times are. However, GMT in general is better understood than UTC.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.nngroup.com/articles/time-zone-selectors/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/time-zone-selection-ux/03-proportion-of-correct-offset-selections.jpg" alt="Time Zone Selectors UX study" width="550" height="408" loading="lazy"> </a> <figcaption><p><a href="https://www.nngroup.com/articles/time-zone-selectors/">Time Zone Selectors UX study</a>. All groups had more correct selections in GMT than UTC. But it was statistically significant only in UK.</p> </figcaption> </figure> <p>Instead, users typically think about the <strong>local time in their city</strong>, or in their region. And when arranging a call or meeting, they need to look-up the time for a specific date in a specific location where their partner will be connecting from. In fact, the selection of a city is way more important than time zones.</p> <h2 id="3-always-add-autocomplete-for-location" tabindex="-1">3. Always Add Autocomplete For Location <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/time-zone-selection-ux/#3-always-add-autocomplete-for-location">#</a></h2> <p>It’s not surprising that scrolling through the endless list of countries and time zones isn’t particularly exciting. So whenever possible, include autocomplete to allow users to <strong>type their city or country</strong> and locate the needed time zone faster.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/51e8fb86-ae6d-14ad-60e6-ef5c960df672.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/time-zone-selection-ux/04-time-zone-selection-zoom.png" alt="Always encourage users to start typing." width="550" height="408" loading="lazy"> </a> <figcaption><p>Always encourage users to start typing. When placeholders matter: “Start typing” might work better than “Select” as users might scroll instead.</p> </figcaption> </figure> <p>Most people will be searching for a specific city, but they can type larger areas — counties, states and localities — as well. This typically means that we need to <strong>support cities and countries</strong> as a minimum. And if a country has more than one time zone, we need to highlight distinct time zones for each country match.</p> <h2 id="4-show-current-times-in-locations" tabindex="-1">4. Show Current Times in Locations <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/time-zone-selection-ux/#4-show-current-times-in-locations">#</a></h2> <p>Sometimes selecting a time zone is only one part of the story though. What if a user needs to make a decision about the right timing as well? We can display the current time on location to help there.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/816fe5ca-f208-f0ae-dc18-c7b08fab58f7.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/time-zone-selection-ux/05-time-zone-selection-grouping.png" alt="No UTC/GMT times are displayed on Calendly." width="550" height="575" loading="lazy"> </a> <figcaption><p>No UTC/GMT times are displayed on <a href="https://calendly.com/">Calendly</a>. Instead, they show the current time on location instead. Source: <a href="https://www.nngroup.com/articles/time-zone-selectors">NN Group</a>.</p> </figcaption> </figure> <h2 id="5-detect-and-suggest-users-time-zone" tabindex="-1">5. Detect and Suggest User’s Time Zone <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/time-zone-selection-ux/#5-detect-and-suggest-users-time-zone">#</a></h2> <p>Based on current user’s location and their past selections, we can suggest a time zone that is most likely to work for the user. These suggestions would be displayed above the list for quick access. Of course, IP detection is never bulletproof, so we need to always include a way to <strong>override the suggestions</strong> as well.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/7818b0ae-7f00-fde4-8acc-9e163aea6587.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/time-zone-selection-ux/06-time-zone-selection-autocomplete.png" alt="We can suggest a time zone based on user’s current location and their preferences." width="550" height="277" loading="lazy"> </a> <figcaption><p>We can suggest a time zone based on user’s current location and their preferences. <a href="https://www.nngroup.com/articles/time-zone-selectors/">Source: NN Group</a>.</p> </figcaption> </figure> <h2 id="6-sort-countries-alphabetically-not-by-utcgmt-offsets" tabindex="-1">6. Sort Countries Alphabetically, Not By UTC/GMT Offsets <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/time-zone-selection-ux/#6-sort-countries-alphabetically-not-by-utcgmt-offsets">#</a></h2> <p>Since many users orient themselves in time zones through cities and countries, we could sort time zones options alphabetically, by country and at least large cities. We still need to provide UTC/GMT offsets or current time as well.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.youtube.com/watch?v=GnJe-psrUA8&ab_channel=Grafana"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/time-zone-selection-ux/07-time-zone-selection-type-to-search.png" alt="A sophisticated time zone selection UX in Grafana." width="550" height="349" loading="lazy"> </a> <figcaption><p>A sophisticated time zone selection UX in <a href="https://www.youtube.com/watch?v=GnJe-psrUA8&amp;ab_channel=Grafana">Grafana</a>.</p> </figcaption> </figure> <p>In <a href="https://www.youtube.com/watch?v=GnJe-psrUA8&amp;ab_channel=Grafana">Grafana</a>, users can search by region, country, city, UTC offsets time zone abbreviations or use default settings. All cities and countries are sorted alphabetically and grouped into continents.</p> <h2 id="time-zone-selection-ux-checklist" tabindex="-1">Time Zone Selection UX Checklist <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/time-zone-selection-ux/#time-zone-selection-ux-checklist">#</a></h2> <p>Our goal is to drive users towards an accurate selection, faster. To do that, we can embed a few little details into our interfaces:</p> <ul> <li> <p><strong>Detect and suggest user’s time zones</strong>.</p> </li> <li> <p>Support typing for city, country, locality, UTC offset.</p> </li> <li> <p>Always show current times in locations.</p> </li> <li> <p>Use a placeholder &quot;Start typing...&quot; or &quot;Search...&quot;</p> </li> <li> <p><strong>Display local time zone names</strong> (CEST, PST etc.).</p> </li> <li> <p>Sort counties and cities alphabetically.</p> </li> <li> <p>Don’t sort time zone options by UTC/GMT offsets.</p> </li> <li> <p><strong>Surface critical details</strong> (calendar availability, weather conditions, custom preferences etc.)</p> </li> <li> <p>Keep your timezone database up-to-date.</p> </li> </ul> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/time-zone-selection-ux/#useful-resources">#</a></h2> <ul> <li> <p><a href="https://gist.github.com/sandcastle/ad1e527388cad4b1236d68724a78db00">A Complete Timezone List</a>, a list with grouping by timezone, in TypeScript.</p> </li> <li> <p><a href="https://i.stack.imgur.com/KDJun.jpg">Standard Time Zones Of The World</a> (as of April 2014).</p> </li> <li> <p><a href="https://www.nngroup.com/articles/time-zone-selectors/">It’s Time We Addressed Time-Zone Selectors</a>, a wonderful usability study by Norman-Nielsen Group.</p> </li> <li> <p><a href="https://lukasz.medium.com/on-time-time-zones-and-software-6617a4c22d05">On Time, Time Zones, and Software</a>, a fantastic write-up all around time zones, UX and implementation details by Łukasz Tyrała.</p> </li> </ul> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/time-zone-selection-ux/#wrapping-up">#</a></h2> <p>Sometimes allowing users to type instead of scrolling is much faster. Time-zone selection is just an example of that. This also goes for country selectors, sliders and sometimes even navigation. The challenge is to <strong>hide complexity</strong> by showing users things that matter and hiding things that do not.</p> Sat, 04 Mar 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/time-zone-selection-ux/ Seven Fantastic Design Systems https://smart-interface-design-patterns.com/articles/design-systems/ <p>Nobody is surprised by design systems these days. A novelty just half a decade ago, they have become an established part of the design process, helping teams <strong>bridge the gap</strong> between design and code.</p> <p>I'd love to share with you some of the <strong>useful features of design systems</strong> that I keep referring to often in my work — and hopefully they can boost your design system, too.</p> <h2 id="1-accessibility-and-naming-conventions" tabindex="-1">1. Accessibility and Naming Conventions <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-systems/#1-accessibility-and-naming-conventions">#</a></h2> <p><a href="https://nordhealth.design/">Nordhealth</a> is created for healthcare applications for clinics and practices, and as such, it’s heavily focused on <strong>accessibility</strong>. There are also dedicated guides to <a href="https://nordhealth.design/naming/">naming conventions</a> and <a href="https://nordhealth.design/localization/">localization guidelines</a>. Plus, there is a plenty of customization options, themes and a fully-fledged CSS framework. Unfortunately, the Figma toolkit isn’t open-sourced yet.</p> <figure class="c-article__image u-flow--xs"> <a href="https://nordhealth.design/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-systems/01-nordhealth-design-system.png" alt="A screenshot of a nordhealth.design" width="550" height="344" loading="lazy"> </a> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://nordhealth.design/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-systems/02-nordhealth-design-system.jpg" alt="A screenshot of a nordhealth.design" width="550" height="326" loading="lazy"> </a> </figure> <h2 id="2-branding-and-multi-lingual-design" tabindex="-1">2. Branding and Multi-Lingual Design <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-systems/#2-branding-and-multi-lingual-design">#</a></h2> <p><a href="https://olympics.com/ioc/olympic-brand">Olympics Design System</a> is focused on <strong>branding and identity design</strong>, but also provides examples of ilustrations and graphic elements. It shows how to manage multi-lingual challenges and how to use typography, with plenty of good and not-so-good examples and many guidance notes along the way.</p> <figure class="c-article__image u-flow--xs"> <a href="https://olympics.com/ioc/olympic-brand"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-systems/03-olympics-design-system-color-swatches.jpg" alt="A screenshot of a olympics.com" width="550" height="405" loading="lazy"> </a> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://olympics.com/ioc/olympic-brand"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-systems/04-olympics-design-system-grid-tiles.jpg" alt="A screenshot of a olympics.com" width="550" height="438" loading="lazy"> </a> </figure> <h2 id="3-comprehensive-live-examples" tabindex="-1">3. Comprehensive, Live Examples <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-systems/#3-comprehensive-live-examples">#</a></h2> <p><a href="https://workbench.gusto.com/">Workbench Design System</a> is a wonderful design system by Gusto, with usage guidelines, do's and don'ts, visual explanations and implementation details. What really stands out to me are very, <strong>very comprehensive live examples</strong> that explain how exactly components should be used in different contexts.</p> <p>The developers have also built a <a href="https://marketplace.visualstudio.com/items?itemName=gusto-design-systems.workbench-vscode">Gusto Workbench VS Code Extension</a> with common snippets for their UI components.</p> <figure class="c-article__image u-flow--xs"> <a href="https://workbench.gusto.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-systems/05-workbench-design-system-live-example.jpg" alt="Workbench Design System" width="550" height="392" loading="lazy"> </a> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://workbench.gusto.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-systems/06-workbench-design-system-timeline.jpg" alt="Workbench Design System" width="550" height="520" loading="lazy"> </a> </figure> <h2 id="4-content-guidelines-and-ux-writing" tabindex="-1">4. Content Guidelines and UX Writing <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-systems/#4-content-guidelines-and-ux-writing">#</a></h2> <p><a href="https://dpp.bahn-x.de/">Deutsche Bahn Design System</a> is a lovely design system with <strong>content guidelines</strong>, accessibility considerations, components and contextual examples of components in use. It also provides a number of guidelines around <a href="https://dpp.bahn-x.de/content/ux-writing">UX writing</a> (in German) and helpful visual guides to accessibility and logo.</p> <figure class="c-article__image u-flow--xs"> <a href="https://dpp.bahn-x.de/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-systems/07-deutsche-bahn-brand-identity.jpg" alt="Deutsche Bahn Design System" width="550" height="550" loading="lazy"> </a> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://dpp.bahn-x.de/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-systems/08-deutsche-bahn-focus-styles.jpg" alt="Deutsche Bahn Design System" width="550" height="460" loading="lazy"> </a> </figure> <h2 id="5-decision-trees-and-flow-charts" tabindex="-1">5. Decision Trees and Flow Charts <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-systems/#5-decision-trees-and-flow-charts">#</a></h2> <p><a href="https://canvas.workday.com/patterns/errors-and-alerts/#tab=usage">Workday Design System</a> seems like a regular design system with content guidelines, UI components, patterns and accessibility guidelines. However, what really stands out to me are <strong>decision trees and flow charts</strong> that are used to help designers and developers make a decision around a particular component or how it could be used.</p> <figure class="c-article__image u-flow--xs"> <a href="https://workbench.gusto.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-systems/09-workday-design-system-decision-trees.jpg" alt="Workday Design System" width="550" height="429" loading="lazy"> </a> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://workbench.gusto.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-systems/10-workday-design-system-decision-trees.jpg" alt="Workday Design System" width="550" height="318" loading="lazy"> </a> </figure> <h2 id="6-visual-examples-of-dos-and-donts" tabindex="-1">6. Visual Examples of Do’s and Don’ts <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-systems/#6-visual-examples-of-dos-and-donts">#</a></h2> <p><a href="https://www.audi.com/ci/en/guides/user-interface/introduction.html">Audi Design System</a> has been around for a while. Along with brand appearance guidelines and UI components, one useful feature it provides is a comprehensive set of <strong>visual examples</strong> of how a component should and shouldn’t be used in Audi’s interfaces. There is also a freely available <a href="https://www.audi.com/content/dam/ci/Downloads_EN/220930_Audi_Figma_UI-Kit_and_Icons.zip">Audi UI Kit for Figma</a> and Sketch UI library.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.audi.com/ci/en/guides/user-interface/introduction.html"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-systems/11-audi-design-system-showcase-examples.jpg" alt="Audi Design System" width="550" height="449" loading="lazy"> </a> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://www.audi.com/ci/en/guides/user-interface/introduction.html"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-systems/12-audi-design-system-showcase-examples.jpg" alt="Audi Design System" width="550" height="436" loading="lazy"> </a> </figure> <h2 id="7-free-design-systems-figma-kits" tabindex="-1">7. Free Design Systems Figma Kits <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-systems/#7-free-design-systems-figma-kits">#</a></h2> <p><a href="https://www.designsystemsforfigma.com/">Design Systems Figma Kits</a> is a growing repository of <strong>freely available Figma kits</strong> of design systems — grouped, organized and searchable. Additionally, I can only recommend <a href="https://www.figma.com/community/file/946837271092540314">Gov.uk design system Figma kit</a>, focused specifically on complex user journeys and web forms.</p> <figure class="c-article__image u-flow--xs"> <a href="https://https//www.designsystemsforfigma.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-systems/13-design-systems-showcase-repository.jpg" alt="Audi Design System" width="550" height="362" loading="lazy"> </a> </figure> <h2 id="and-thats-a-wrap" tabindex="-1">And That’s A Wrap! <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-systems/#and-thats-a-wrap">#</a></h2> <p>Obviously there is no reason to copy-paste an existing design system, but we can <strong>get inspired</strong> for features and the ways to present do’s and don’ts, for various contexts. I hope that some of these examples will be helpful for your work.</p> Fri, 03 Mar 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/design-systems/ Designing Better Meetings https://smart-interface-design-patterns.com/articles/designing-better-meetings/ <p>Meetings can be utterly exhausting and frustrating, but also valuable and productive. Here are <strong>some of the formats and guidelines</strong> that seem to be working slightly better, especially in large organizations.</p> <h2 id="best-practices-for-meetings" tabindex="-1">Best Practices For Meetings <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/designing-better-meetings/#best-practices-for-meetings">#</a></h2> <ul> <li>There should be <strong>no surprises in a meeting</strong>.</li> <li>Meeting invites come with an agenda, pre-read and objectives.</li> <li>The agenda must be sent ahead of time (at latest 24h).</li> <li>Meetings without an agenda get cancelled automatically.</li> <li>Meetings are <strong>time-boxed to 14, 27 or 42 mins</strong>.</li> <li>3×27 mins sessions often more productive than 1×1.5h meeting.</li> <li>Meetings are most productive with <strong>5-8 people max</strong>.</li> <li>Not everyone has to speak, but everyone has to feel heard.</li> <li>Always start on time, and never finish late.</li> <li>Record meetings by default for async consumption.</li> <li>Alignment sessions work better in the morning.</li> <li>Retrospectives work better in the evening.</li> <li>Create <strong>focus day(s)</strong> when no meetings take place.</li> </ul> <h2 id="meetings-types" tabindex="-1">Meetings Types <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/designing-better-meetings/#meetings-types">#</a></h2> <p>It's a good idea to always define a specific meeting type, with a custom emoji and a color coding for your calendar. I love <strong>the meeting format suggested by Rich Watkins</strong>:</p> <ul> <li><strong>Broadcast Meetings</strong> 📣 for announcements and townhalls,</li> <li><strong>Rhythm Meetings</strong> 🥁 for regular status updates,</li> <li><strong>Planning Meetings</strong> 🏗️ to define timelines and provide estimates,</li> <li><strong>Problem-Solving Meetings</strong> 🛠 for workshops and solution finding,</li> <li><strong>Exploration Meetings</strong> 🏕️ for big questions and complex problems,</li> <li><strong>Team Building Meetings</strong> 💚 for team spirit and collaboration,</li> <li><strong>Review Meetings</strong> 🏆 for retrospectives, 1:1, performance meetings.</li> </ul> <h2 id="10-points-meetings-checklist" tabindex="-1">10-Points Meetings Checklist <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/designing-better-meetings/#10-points-meetings-checklist">#</a></h2> <p>Larger meetings need to be structured and formalized. For example, with <strong>a 10-point meeting document that's distributed ahead of time</strong>:</p> <ol> <li>Format of the meeting, title, date, time</li> <li>Zoom/Teams URL for remote meetings,</li> <li>Purpose and desired outcome,</li> <li>High-level agenda,</li> <li>List of attendees,</li> <li>Questions to be discussed or decisions to be made,</li> <li>How much time each question would get,</li> <li>Off-topic items that were parked during the meeting,</li> <li>Action points and ownership/roles for each,</li> <li>Link to the video recording + transcript.</li> </ol> <p>Poorly designed meetings are wasteful; but good meetings are a critical part of productive work — from setting priorities and information sharing to brainstorming and collaboration.</p> <h2 id="further-reading" tabindex="-1">Further reading <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/designing-better-meetings/#further-reading">#</a></h2> <ul> <li><a href="https://async.twist.com/flipped-meeting-model/">The Flipped Meeting Model</a> by Becky Kane,</li> <li><a href="https://www.atlassian.com/blog/teamwork/how-to-run-effective-meetings">How To Run Effective Meetings</a> by Sarah Goff-Dupont,</li> <li><a href="https://twitter.com/polak_jasper/status/1621864657228021761">Meeting Checklist by Jasper Polak</a>,</li> <li><a href="https://www.linkedin.com/pulse/you-cant-just-cancel-76500-hours-meetings-becky-kane/">You can't just cancel 76,500 hours of meetings</a> by Becky Kane.</li> </ul> <p>Happy meetings, everyone!</p> Mon, 27 Feb 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/designing-better-meetings/ Useful Miro Templates For UX Designers https://smart-interface-design-patterns.com/articles/miro-templates/ <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/miro-templates/free-miro-templates.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/miro-templates/free-miro-templates.jpg" alt="Miro" width="493" height="278" loading="lazy"> </a> </figure> <ul> <li> <p><a href="https://miro.com/miroverse/virtual-5-day-design-sprint-template/">Full Remote Design Sprint Template</a>, by TED</p> </li> <li> <p><a href="https://miro.com/miroverse/reflection-island-end-of-year-team-retro/">Reflection Island: End of Year Team Retro</a>, by Aryanna Martin</p> </li> <li> <p><a href="https://miro.com/miroverse/product-design-principles-workshop/">Product Design Principles Workshop Template</a>, by Stu Collett</p> </li> <li> <p><a href="https://miro.com/miroverse/structured-problem-solving/">Structured Problem Solving Workshop</a></p> </li> <li> <p><a href="https://miro.com/miroverse/ux-health-persona/">UX Persona for Healthcare Projects</a></p> </li> <li> <p><a href="https://miro.com/miroverse/system-mapping-toolkit/">System Mapping Toolkit</a></p> </li> <li> <p><a href="https://miro.com/miroverse/user-research-kick-off-canvas/">User Research Kick-off Canvas</a>, by Michael Bierens de Haan</p> </li> <li> <p><a href="https://miro.com/miroverse/kickoff-workshop/">Kick-Off Workshop Template</a>, by Aneta Kmiecik</p> </li> <li> <p><a href="https://miro.com/miroverse/user-journey-map/">User Journey Map Board</a>, by Stéphanie Walter</p> </li> <li> <p><a href="https://miro.com/miroverse/user-task-canvas/">User Task Canvas</a>, by Geoffrey Crofte</p> </li> <li> <p><a href="https://miro.com/miroverse/problem-statement-for-logistic/">UX Problem Statement Map</a> for Logistics Projects</p> </li> <li> <p><a href="https://miro.com/miroverse/research-plan-one-pager/">UX Research Plan One-Pager</a>, by Alba Losada</p> </li> <li> <p><a href="https://miro.com/miroverse/the-sustainable-ux-design-toolkit/">The Sustainable UX Design Toolkit</a></p> </li> <li> <p><a href="https://miro.com/miroverse/users-feedback-workshop-user-testing/">User Testing Observations Template</a></p> </li> <li> <p><a href="https://miro.com/miroverse/remote-usability-study/">Remote Usability Study Workshop Template</a></p> </li> <li> <p><a href="https://miro.com/templates/design-critique/">Design Critique Template</a></p> </li> <li> <p><a href="https://miro.com/miroverse/features-prioritization-tool/">Features Prioritization Board Template</a>, by Yuval Eitan</p> </li> </ul> Thu, 02 Feb 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/miro-templates/ Frequently Asked Questions UX https://smart-interface-design-patterns.com/articles/frequently-asked-questions/ <p>Barely any website can escape the curse of the <strong>FAQ section</strong>. Even seemingly simple products eventually grow roots as the user base expands. Sadly, the <a href="https://www.smashingmagazine.com/2023/01/usability-2023/">web is not a particularly friendly place</a>, and so users have all kinds of doubts, objections, questions and concerns — and they need to be addressed.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.walmart.com/plus/faq"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/frequently-asked-questions/01-frequently-asked-questions-section-walmart.png" alt="A screenshot of Walmart.com" width="483" height="371" loading="lazy"> </a> <figcaption><p><a href="https://www.walmart.com/plus/faq">Walmart FAQ</a> hub highlights multiple FAQ guides, depending on the topic of interest, sometimes with one-line answers.</p> </figcaption> </figure> <p>But are FAQs a good solution to do just that? Not necessarily. Let’s explore some of the issues that FAQs have, and how to actually help customers find what they need. You can find more details on that in the <a href="https://smart-interface-design-patterns.com/">usability chapters in the video library</a>.</p> <h2 id="usability-pitfalls-with-faqs" tabindex="-1">Usability Pitfalls With FAQs <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/frequently-asked-questions/#usability-pitfalls-with-faqs">#</a></h2> <p>We’ve learned to rely upon dedicated FAQ sections over the years, and users seem to understand the concept very well. However, on an FAQ page they typically <strong>scan questions for a specific keyword</strong>, or use in-browser search to find what might be relevant for them.</p> <p>The <strong>questions format</strong>, however, doesn’t aid in quick navigation to the answer. And with accordions, the answers usually aren’t accessible without opening each accordion.</p> <figure class="c-article__image u-flow--xs"> <a href="https://support.airtable.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/frequently-asked-questions/02-frequently-asked-questions-section-airtable.png" alt="A screenshot of Airtable.com" width="483" height="371" loading="lazy"> </a> <figcaption><p><a href="https://support.airtable.com/">On Airtable Help Center</a>, there are no FAQs. Instead all topics are presented as cards, front-loaded with keywords.</p> </figcaption> </figure> <p>This reveals some <strong>significant usability issues</strong>:</p> <ul> <li> <p><a href="https://www.nngroup.com/articles/quicklinks-label-intranet/">FAQ is unlikely to help</a> if customers don't know if a particular piece of content or feature exist on the site. People don't call support about tools they don't know exist.</p> </li> <li> <p><a href="https://gds.blog.gov.uk/2013/07/25/faqs-why-we-dont-have-them/">FAQs are too slow to use</a>: they are convenient for writers, but take significantly more time for users to scan and understand.</p> </li> <li> <p><a href="https://gds.blog.gov.uk/2013/07/25/faqs-why-we-dont-have-them/">FAQs lead to duplication</a>: as multiple pages repeat the same information, they pollute search,</p> </li> <li> <p><a href="https://blogs.ed.ac.uk/future-student-experience/5-reasons-why-faq-pages-deliver-a-bad-user-experience/">FAQs are difficult to navigate</a>: they force content designers to group content by general type or format, rather than task (e.g. toolkits, resources, videos),</p> </li> <li> <p><a href="https://blogs.ed.ac.uk/future-student-experience/5-reasons-why-faq-pages-deliver-a-bad-user-experience/">FAQs need to be actively maintained</a>: customer’s questions change frequently, and multiple sections of the site must be updated.</p> </li> <li> <p><strong>FAQs also have governance issues</strong>: every piece of content needs an owner, but it’s difficult to assign an owner to an FAQ page spanning multiple topics.</p> </li> </ul> <p>In general, just like PDFs, FAQs are examples of <a href="https://www.linkedin.com/pulse/faqs-dinosaurs-web-navigation-gerry-mcgovern-1/">organization-centric form of navigation</a> and content. Since many customers don’t know how the organization is structured and how it works, they often experience issues finding an answer in a myriad of <strong>poorly organized questions</strong>.</p> <h2 id="the-best-faq-isnt-even-there" tabindex="-1">The Best FAQ Isn’t Even There <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/frequently-asked-questions/#the-best-faq-isnt-even-there">#</a></h2> <p>Typically FAQs emerge because users can't easily find a particular piece of information on the site, and keep sending similar questions to the service desk — after all, these questions are “frequently asked”.</p> <p>However, this isn't really an indicator that an FAQ section is needed, but rather that <strong>IA, navigation and search aren't working very well</strong>. Before setting up an FAQ page, we can try to find a way to show answers where users actually expect to find them.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/frequently-asked-questions/With%20this%20design,%20customers%20are%20likely%20to%20have%20plenty%20of%20questions%20about%20the%20product:%20from%20delivery%20costs%20to%20payment%20options."> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/frequently-asked-questions/03-ecommerce-mockup-no-FAQ.jpg" alt="A mock-up of an eCommerce site without FAQ" width="550" height="381" loading="lazy"> </a> </figure> <p>In the eCommerce example above, we leave customers with plenty of unanswered questions. We need to <strong>highlight all the details</strong> about taxes and fees, delivery times, shipping costs, returns policy and payment options — as prominently as possible. But we don’t really need an FAQ for that — we could show them right away (pictured below ↓).</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/frequently-asked-questions/Addressing%20concerns%20about%20delivery%20and%20returns,%20all%20at%20once.%20[Large%20view](https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/96a15ed6-93b6-6b5e-0755-5f575d3ef029.png)."> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/frequently-asked-questions/04-ecommerce-mockup-no-FAQ.jpg" alt="eCommerce mockup without any FAQ" width="550" height="357" loading="lazy"> </a> </figure> <p>We might need to do a bit more work. We could break down the pieces of content and publish relevant content where people naturally look for it. We also might need to <strong>iterate on IA</strong>, navigation design, labels and layout with <a href="https://alistapart.com/article/what-really-matters-focusing-on-top-tasks/">top tasks</a> and <a href="https://www.nngroup.com/articles/tree-testing/">tree testing</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.airbnb.com/help?audience=guest"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/frequently-asked-questions/05-help-hubs-instead-of-FAQs.jpg" alt="A screenshot of Airbnb.com" width="550" height="274" loading="lazy"> </a> <figcaption><p>There are no FAQs on <a href="https://www.airbnb.com/help?audience=guest">AirBnB</a>. Instead, topics with short headlines and front-loaded keywords.</p> </figcaption> </figure> <p>And once it all set in motion, we might set up <a href="https://help.patagonia.com/s/">help hubs</a>, or if absolutely necessary, an FAQ page as a temporary solution.</p> <h2 id="a-well-designed-faq" tabindex="-1">A Well-Designed FAQ <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/frequently-asked-questions/#a-well-designed-faq">#</a></h2> <p>But what if we do need an FAQ after all? Of course we need to <strong>group questions by topics</strong>, and probably design them as accordions. Displaying all answers as is would work with in-browser search, but it might make the page too lengthy to be usable.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/frequently-asked-questions/On%20some%20Booking.com%20pages,%20all%20questions%20are%20organized%20by%20topics,%20with%20a%20set%20of%20tabs%20and%20accordions%20in%20each%20tab."> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/frequently-asked-questions/06-well-designed-FAQs-Booking.png" alt="An example of a split-screen on Booking FAQ page" width="550" height="525" loading="lazy"> </a> </figure> <p>Here are some of the <strong>useful features of FAQ pages</strong> that you might want to consider:</p> <ul> <li> <p>Include the <strong>FAQ link in the footer</strong> of each page,</p> </li> <li> <p>Include a table of contents (perhaps sticky),</p> </li> <li> <p>Alternatively, group accordions in a split-menu (as displayed above),</p> </li> <li> <p>Use <a href="https://elementor.com/help/">autocomplete search</a> to find specific details in the FAQ might be helpful,</p> </li> <li> <p>Add jump-links with an option to go back to the overview,</p> </li> <li> <p>Allow customers to <strong>open multiple questions at once</strong>,</p> </li> <li> <p>Instead of long passages of text, use <strong>bulleted points</strong> and shorter, concise sentences,</p> </li> <li> <p>Front-load questions with <strong>keywords</strong> as far as possible,</p> </li> <li> <p>Validate the quality of FAQ with a “Did this answer your question?” prompt?</p> </li> <li> <p>For longer FAQs, or those with complex answers, screenshots, or videos, you might want to set up <strong>separate answer pages</strong> (or topic pages).</p> </li> </ul> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/frequently-asked-questions/#wrapping-up">#</a></h2> <p>FAQs are difficult to navigate and maintain, but they do gather critical information in one single place, and hence can be helpful. But we need to <strong>measure just how helpful they are</strong>.</p> <p>Measure how much traffic your FAQ page has and how often people mark answers as helpful. Establish a regular maintenance review for the content of the page as it might be something that users heavily rely on.</p> <p>You might not need an FAQ page after all. Perhaps you could break down the answers to each question within the interface. Or perhaps you could create a <a href="https://www.coursera.support/s/learner-help-center?language=en_US">help hub</a>, or a <a href="https://www.trajectorywebdesign.com/blog/should-my-website-have-a-faq-page/">full support</a> guide with how-to articles, screenshots and videos, dedicated Q&amp;A blog posts and a decent autocomplete. This might be much more efficient than a never-ending list of nested FAQ sections.</p> Tue, 31 Jan 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/frequently-asked-questions/ Design KPIs https://smart-interface-design-patterns.com/articles/design-kpis/ <p>Imagine that you’ve just received an invite to a new meeting. The description is a bit vague, but the title is sitting right there, with its heavy weight, making you a bit worried: <strong>design KPIs</strong>. Now, what do you think the meeting is going to be about?</p> <p>It wouldn’t be surprising to hear about conversion rates, new A/B testing results and bounce rates; perhaps exit pages and SERPs and funnel drops. We might expect data from Google Analytics, and perhaps a report about generated leads.</p> <p>What we expect to see are <strong>data points</strong> scattered across charts. Each of the data points represents a <em>unique experience</em>, and when put together, they represent an average behavior in our products. The <strong>average user doesn’t exist</strong>, of course, but the data helps us identify trends and changes over time.</p> <p>These trends are indeed valuable insights. But they also are only one part of the full story.</p> <h2 id="hidden-costs" tabindex="-1">Hidden Costs <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-kpis/#hidden-costs">#</a></h2> <p>Over the decades, we’ve become remarkably good in digital design. We’ve learned how to craft truly beautiful interfaces and well-orchestrated interactions. And we’ve also learned how to encourage action to meet project’s requirements and <strong>drive business metrics</strong>. We can make pretty anything work really.</p> <figure class="c-article__image u-flow--xs"> <a href="https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/97b19432-5060-42af-bf84-dacaec8d7592/01-design-kpis-shoes.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-KPIs/01-design-kpis-shoes.jpg" alt="https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/97b19432-5060-42af-bf84-dacaec8d7592/01-design-kpis-shoes.jpg" width="550" height="275" loading="lazy"> </a> <figcaption><p>Can you spot what’s not quite right in this mock-up? Designed by Paul Boag. <a href="https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/97b19432-5060-42af-bf84-dacaec8d7592/01-design-kpis-shoes.jpg">Large view</a>.</p> </figcaption> </figure> <p>In the mock-up above, the option &quot;Add to basket&quot; is beautifully highlighted in green, indicating a way forward, with insurance added in automatically. That’s a clear <strong>dark pattern</strong>, of course. The design, however, will drive business KPIs, i.e. increase a spend per customer. But it will also generate a wrong purchase. The implications of it for businesses might be severe and irreversible — with plenty of complaints, customer support inquiries and high costs of processing returns.</p> <p>Many organizations focus on a few selected business metrics; yet they need a holistic overview of metrics that have an impact on the entire business. As Paul Boag explains <a href="https://www.smashingmagazine.com/printed-books/click/">in his recent book</a>, there are plenty of <strong>hidden costs</strong> that often stay in the shadows of business KPIs. This usually leads to short-term improvements with expensive long-term implications.</p> <figure class="c-article__image u-flow--xs"> <a href="https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5dcd914d-b532-4a6b-845c-190ea3f88db0/02-useful-kpis.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-KPIs/02-useful-kpis.png" alt="https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5dcd914d-b532-4a6b-845c-190ea3f88db0/02-useful-kpis.png" width="550" height="275" loading="lazy"> </a> <figcaption><p>Healthy business metrics mix. <a href="https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5dcd914d-b532-4a6b-845c-190ea3f88db0/02-useful-kpis.png">Large view</a>.</p> </figcaption> </figure> <p>A <strong>healthy business metrics mix</strong> usually includes KPIs that go a bit beyond data from Google Analytics. We also need to consider life-time value, time to first purchase, time to upgrade, loss in processing returns, cost of support, sales, marketing, acquisition and ratio of negative reviews, to name a few.</p> <p>And that’s exactly where another significant set of metrics comes into play — design KPIs.</p> <h2 id="design-kpis" tabindex="-1">Design KPIs <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-kpis/#design-kpis">#</a></h2> <p>How can we <strong>speak objectively</strong> about a particular design? It appears to be such a subjective thing, with plenty of personal opinions and individual experiences that flow into every individual design process. Yet ultimately design solves problems, and we surely should be able to measure how well a particular problem is being solved.</p> <p>In fact, just like we define business KPIs, we can also establish design KPIs and track their performance over time. Design KPIs are key attributes that <strong>capture customer’s experience</strong> for top tasks that users frequently perform in a product.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/620f33ef-0ca2-0305-f5be-34f14bea7fca.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-KPIs/03-design-kpis-leaderboard.png" alt="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/620f33ef-0ca2-0305-f5be-34f14bea7fca.png" width="550" height="546" loading="lazy"> </a> <figcaption><p>A leaderboard for design KPIs for a project with a few separate products. Each value is normalized on the scale from 1 to 10. Heavily inspired by incredible work by Dan Mall on <a href="https://superfriendly.com/design-systems/articles/design-systems-pilots-scorecards/">Design Systems Scorecards. Large view</a>.</p> </figcaption> </figure> <p>Recently I’ve started setting up <strong>dashboards of design KPIs</strong> in organizations that I work with. Together, we decide on key attributes that are important to provide a better UX, and then we track them repeatedly over time.</p> <p>There are, as it turns out, plenty of helpful design KPIs, but these are the ones that usually deserve special attention:</p> <ul> <li> <p>top tasks completion rates,</p> </li> <li> <p>top tasks completion times,</p> </li> <li> <p><strong>accuracy of data</strong> submitted by users,</p> </li> <li> <p>ratio of content vs. navigation (mobile/desktop),</p> </li> <li> <p>error frequency,</p> </li> <li> <p>error recovery rate (= quality of error messages),</p> </li> <li> <p>speed of publishing,</p> </li> <li> <p><strong>quality of leads</strong>,</p> </li> <li> <p>time to release,</p> </li> <li> <p>time to upgrade,</p> </li> <li> <p>conversion rate,</p> </li> <li> <p><a href="https://www.websitecarbon.com/">carbon footprint impact</a>,</p> </li> <li> <p><a href="https://stuart-cunningham.github.io/sus/">System Usability Scale Score</a> (ideally over 75),</p> </li> <li> <p>accessibility score,</p> </li> <li> <p>web performance score.</p> </li> </ul> <p>These metrics are much more focused around the <strong>actual user experience</strong> and user behavior, rather than ambiguous data points in analytics that represent an average behavior. Of course, we also need to keep track on these KPIs as time evolves. And this requires measurements.</p> <h2 id="measuring-design-kpis" tabindex="-1">Measuring Design KPIs <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-kpis/#measuring-design-kpis">#</a></h2> <p>Once we have defined the KPIs, how do we measure them? We can rely on Gerry McGovern’s <a href="https://alistapart.com/article/what-really-matters-focusing-on-top-tasks/">Top Tasks approach</a> and identify the most frequent tasks that users complete in a product. We conduct research to discover the <strong>most important tasks</strong>. We study search queries and server logs, run user interviews and workshops with stakeholders.</p> <figure class="c-article__image u-flow--xs"> <a href="https://alistapart.com/article/what-really-matters-focusing-on-top-tasks/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-KPIs/04-top-tasks.jpg" alt="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/aa67612a-ce6d-ebd8-4d57-fdf22d43d2e4.jpg" width="550" height="546" loading="lazy"> </a> <figcaption><p><a href="https://alistapart.com/article/what-really-matters-focusing-on-top-tasks/">What really matters: focusing on Top Tasks</a>, an article by Gerry McGovern that introduces the Top Tasks methodology. Illustration by wonderful <a href="https://alistapart.com/author/bradcolbow/">Brad Colbow</a>.</p> </figcaption> </figure> <p>Once we have that list, we bring users in to vote on the tasks that they consider to be important for them. Then we write down <strong>task instructions</strong> for each top task. These instructions will be handed to users in usability tests to validate that they can actually complete these tasks successfully.</p> <p>Finally, we run tests with the <strong>same task instructions</strong> to the same segments of users, repeatedly, every 8–12 weeks. Based on these tests, we measure and plot success rates and completion times over time. As long as we improve our design KPIs, we should be on the right path. And we have data to prove it!</p> <p>Design KPIs help us stay on track in driving metrics that actually matter. With them, we can <strong>gradually improve UX over time</strong> and gain evidence that our design decisions are actually effective in practice.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-kpis/#wrapping-up">#</a></h2> <p>It’s worth noting that the definition of design KPIs should have a significant impact on how the <strong>quality of work</strong> is measured. Rather than focusing on the amount of produced pages or websites, bounce rates or click rates alone, we should be aligned towards producing quality content that is useful for people consuming that content.</p> <p>Next time you are working on a project, consider establishing <strong>design KPIs alongside business KPIs</strong> and create a more holistic and healthy mix of metrics that capture user experience and business goals. In the end, both sides will only benefit from it, with a sustainable and effective strategy that keeps users and business stakeholders happy.</p> Fri, 27 Jan 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/design-kpis/ Designing Better Breadcrumbs UX https://smart-interface-design-patterns.com/articles/breadcrumbs-ux/ <p>Nobody gets particularly excited about <strong>breadcrumbs</strong>. Those tiny little crumbles that illustrate where a user currently is in the intricate hierarchy of the website. They might be unnecessary on smaller websites, but they can make a difference on complex websites.</p> <p>When users come from <strong>search engines</strong>, messaging apps or social media, they need to understand where they are on the site. They might need to navigate forwards, backwards or sideways, exploring similar or related pages. In all these cases, <strong>breadcrumbs are invaluable</strong>.</p> <p>So how can we make them more useful to our users? Well, here are a few ideas.</p> <h2 id="breadcrumbs-work-best-under-global-navigation" tabindex="-1">Breadcrumbs Work Best Under Global Navigation <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/breadcrumbs-ux/#breadcrumbs-work-best-under-global-navigation">#</a></h2> <p>To help users understand where they are, breadcrumbs need to <strong>be visible to users</strong>. Ideally, we would place them right under the main navigation, or at least above the headings, easy to spot, find and use. This also indicates a clear connection between breadcrumbs and what they refer to, the current page.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/breadcrumbs/Australia-Post-breadcrumbs.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/breadcrumbs/Australia-Post-breadcrumbs.jpg" alt="A screenshot of an Australia Post Service breadcrumbs" width="550" height="382" loading="lazy"> </a> </figure> <p>On <a href="https://auspost.com.au/id-and-document-services/licence-renewals-and-applications/sa-drivers-licence-renewals#tab1">Australia Post Service</a>, for example, various kinds of navigation need to work together. The primary navigation, the breadcrumbs, the sidebar and tabs. Users can <strong>jump between various levels</strong>, go backwards with breadcrumbs, move forward with horizontal navigation, move sideways with the sidebar navigation and switch contexts within sections with tabs.</p> <h2 id="avoid-disabled-breadcrumbs" tabindex="-1">Avoid “Disabled” Breadcrumbs <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/breadcrumbs-ux/#avoid-disabled-breadcrumbs">#</a></h2> <p>For legacy reasons, every now and again some breadcrumbs appear as links, while others are disabled, merely representing the <strong>location of a given page</strong> in the overall hierarchy.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/breadcrumbs/breadcrumbs-disabled-Sparkasse.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/breadcrumbs/breadcrumbs-disabled-Sparkasse.jpg" alt="A screenshot of a Sparkasse’s breadcrumbs" width="550" height="426" loading="lazy"> </a> </figure> <p>In <a href="https://www.sparkasse.de/unsere-loesungen/privatkunden/karten.html">Sparkasse’s</a> breadcrumbs, “Startseite” (Homepage) and “Karten” are actually links, but the sections in between are not. There might be very good reasons for this decision, but the general expectation is very clear: all breadcrumbs should be links, except the last one.</p> <h2 id="breadcrumbs-should-probably-point-to-the-right" tabindex="-1">Breadcrumbs Should (Probably) Point To The Right <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/breadcrumbs-ux/#breadcrumbs-should-probably-point-to-the-right">#</a></h2> <p>In left-to-right-interfaces, relationships are usually indicated with icons pointing to the right. Because we usually consider browsing through pages as a <strong>horizontal experience</strong> on a timeline, we usually move from left to right.</p> <p>However, sometimes breadcrumbs point to the left, rather than to the right. On <a href="https://www.tvm.nl/verzekeringen/weg">TVM</a>, for example, arrows reluctantly point to the left. Since breadcrumbs are usually <strong>explored right to left</strong>, the icons indicate where a particular section or page belongs to.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/breadcrumbs/breadcrumbs-arrows-TVM.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/breadcrumbs/breadcrumbs-arrows-TVM.jpg" alt="A screenshot of a TVM breadcrumbs" width="550" height="399" loading="lazy"> </a> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/breadcrumbs/breadcrumbs-chevrons-Unilever.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/breadcrumbs/breadcrumbs-chevrons-Unilever.jpg" alt="A screenshot of a Unilever breadcrumbs" width="550" height="458" loading="lazy"> </a> </figure> <p>We all would probably point to the right, since it’s more conventional. But in usability tests, we couldn’t find any preferences or differences at all. While it might not matter that much, pointing to the <strong>right is more familiar</strong> to most people.</p> <h2 id="distinguish-between-links-and-text-labels" tabindex="-1">Distinguish Between Links and Text Labels <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/breadcrumbs-ux/#distinguish-between-links-and-text-labels">#</a></h2> <p>If a component in the UI behaves differently or serves a different purpose, we make it stand out by <strong>highlighting</strong> it in some way. In the case of breadcrumbs, there are two different types of crumbs: the current page (if we choose to display it), and the breadcrumbs on the path to that page.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/breadcrumbs/breadcrumbs-unclear-Deutsche-Bahn.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/breadcrumbs/breadcrumbs-unclear-Deutsche-Bahn.jpg" alt="A screenshot of a DeutcheBahn breadcrumbs" width="550" height="361" loading="lazy"> </a> </figure> <p>On <a href="https://www.bahn.de/angebot/bahncard/bahncard50">Deutsche Bahn</a>, the styles for text labels and links are identical — unless you start hovering or tabbing through the sections. Plain underlines would make it slightly more obvious.</p> <h2 id="showing-current-page-might-be-unnecessary" tabindex="-1">Showing Current Page Might Be Unnecessary <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/breadcrumbs-ux/#showing-current-page-might-be-unnecessary">#</a></h2> <p>In breadcrumbs, current page shows where a user currently is, and there is no need to navigate there because the user is there already. If breadcrumbs live close to the main heading of the page, repeating them in breadcrumbs might be unnecessary.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/breadcrumbs/breadcrumbs-clear-Gov-UK.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/breadcrumbs/breadcrumbs-clear-Gov-UK.jpg" alt="A screenshot of a Gov.uk breadcrumbs" width="550" height="373" loading="lazy"> </a> </figure> <p>Breadcrumbs on <a href="https://www.gov.uk/apply-funding-community-project">Gov.uk</a> don’t include the current page. However, the futher away the breadcrumbs are placed from the main heading of the page, the more likely it is that the current page will need to be present in the breadcrumbs.</p> <h2 id="on-mobile-use-breadcrumbs-accordions" tabindex="-1">On Mobile, Use Breadcrumbs Accordions <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/breadcrumbs-ux/#on-mobile-use-breadcrumbs-accordions">#</a></h2> <p>Websites with many levels of navigation often don’t have space to display the entire path with breadcrumbs. One common way to deal with this problem is to <strong>truncate intermediate steps</strong> in the breadcrumbs navigation, or show just one item at a time. However, this makes previous levels inaccessible.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/breadcrumbs/breadcrumbs-accordions-European-Comission.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/breadcrumbs/breadcrumbs-accordions-European-Comission.jpg" alt="A screenshot of a European Commission's website breadcrumbs accordions" width="550" height="343" loading="lazy"> </a> </figure> <p>On the <a href="https://ec.europa.eu/info/business-economy-euro/recovery-coronavirus/recovery-and-resilience-facility/finlands-recovery-and-resilience-plan_en#">European Commission’s website</a>, the parent category of the current page is always displayed in full, but the parents of that section are truncated. When a user taps or activates the truncated area (which is a link), <strong>entire breadcrumbs appear</strong>. Notice the visual difference between the current page (text label) and breadcrumbs (links).</p> <h2 id="curtain-reveal-breadcrumbs" tabindex="-1">Curtain Reveal Breadcrumbs <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/breadcrumbs-ux/#curtain-reveal-breadcrumbs">#</a></h2> <p>Another approach on mobile is to try to show as much as possible with an option to <strong>show/hide breadcrumbs</strong>. This could be with breadcrumbs appearing on the same line, encouraging users to swipe left and right, or by encouraging users to tap around to the point of interest.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/breadcrumbs/curtain-reveal-breadcrumbs.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/breadcrumbs/curtain-reveal-breadcrumbs.jpg" alt="A screenshot of a Curtain Reveal Breadcrumbs" width="550" height="343" loading="lazy"> </a> </figure> <h2 id="use-sideways-breadcrumbs" tabindex="-1">Use Sideways Breadcrumbs <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/breadcrumbs-ux/#use-sideways-breadcrumbs">#</a></h2> <p>Often, breadcrumbs are mostly a static representation of the information architecture on the site. They support backward navigation, but moving forward or sideways <strong>always requires another click</strong>. There is an alternative way of helping users move forward faster.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/breadcrumbs/ADAC-breadcrumbs-dropdown.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/breadcrumbs/ADAC-breadcrumbs-dropdown.jpg" alt="A screenshot of an ADAC's Breadcrumbs" width="550" height="456" loading="lazy"> </a> </figure> <p>At <a href="https://www.adac.de/produkte/versicherungen/autoversicherung/tarife-und-leistungen/">ADAC</a>, breadcrumbs are sort of extended — with a drop-down that allows users to jump to other sections within the category quickly. The last chevron in breadcrumbs might be missing to make the expected interaction perfectly clear, but the design pattern per se is useful since it significantly <strong>speeds up jumps between siblings</strong>.</p> <p>We could even take it to the next level. <a href="https://www.bfs.admin.ch/bfs/en/home.html">Federal Administration of Statistics in Switzerland</a> displays <strong>global sideways breadcrumbs</strong> that help users jump between different departments of the administration. The breadcrumbs are the first thing that users encounter on the site.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/breadcrumbs-ux/#wrapping-up">#</a></h2> <p>Breadcrumbs alone aren’t enough. The aren’t sufficient to navigate the site easily and always complement existing navigation patterns, but can’t really replace them.</p> <p>Every time we design breadcrumbs, we need to <strong>keep them visible without scrolling</strong>, create a clear relationship with the main heading and maximize the speed of interaction from intent to result. Not many components can do it as well as breadcrumbs do, so keep them close in your toolbox.</p> Sat, 14 Jan 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/breadcrumbs-ux/ We Don’t Need Hamburger Icons https://smart-interface-design-patterns.com/articles/avoid-hamburger-menus/ <p>There are many <strong>flavors of hamburger icons</strong> out there. From chocolate cakes and hot dogs to fries and veggie burgers. They all hide navigation, oftentimes critical navigation that users need to comfortably use the site.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/avoid-hamburger-menus/Hamburger%20icons%20come%20in%20many%20flavors."> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/avoid-hamburger-menus/hamburger-icon-flavours.png" alt="https://twitter.com/alexmuench/status/1090550334286692352" width="550" height="537" loading="lazy"> </a> <figcaption><p>Hamburger icons come in many flavors. Designed by <a href="https://twitter.com/alexmuench/status/1090550334286692352">Alex Münch</a>.</p> </figcaption> </figure> <p>But not in a single usability session did they help users navigate faster than a boring, dull yet remarkably efficient <strong>“Menu” button</strong>. No icon, just a button with a text label. Perhaps with a chevron pointing down to indicate a drop-down behavior (as pictured below).</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/avoid-hamburger-menus/No%20hamburger%20icons%20on%20[Gov.uk](https://www.gov.uk/):%20instead,%20a%20%E2%80%9CMenu%E2%80%9D%20button%20that%E2%80%99s%20really%20difficult%20to%20misunderstand."> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/avoid-hamburger-menus/menu-button-navigational-page.png" alt="No hamburger icons on Gov.uk: instead, a “Menu” button that’s really difficult to misunderstand." width="550" height="505" loading="lazy"> </a> </figure> <p><strong>A simple “Menu” button never fails</strong>. It’s large, so it’s always easy to tap and click. As a button, it’s perceived as interactive. It works for frequent and inexperienced users. It works for teenagers and senior citizens. It has an information scent. It’s universally understood.</p> <p>Simpler is always better. <strong>Obvious always wins</strong>. And it makes it damn hard for anybody to make a mistake, accidentally or not.</p> <p>So no hamburgers or fries for me, I’m afraid. Consider me old-fashioned, but I’m going to stick with the “Menu” button for the time being.</p> Sun, 08 Jan 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/avoid-hamburger-menus/ Designing A Better Birthday Input https://smart-interface-design-patterns.com/articles/birthday-picker/ <p>Every time you apply for a job application, open a bank account or book a flight, you probably will be typing in your <strong>date of birth</strong>. As designers, we don’t just care about the completion rates, but also <strong>completion times</strong> and the accuracy of input.</p> <p>We also want to support browser’s auto-fill and minimize mistakes. To achieve the last goal, we often rely on a <strong>date-picker-widget</strong> (native or custom) or a group of drop-downs.</p> <p>It turns out that both solutions are <strong>suboptimal</strong>, and unnecessary — and they often cause more accessibility issues that can be avoided with a much simpler technique.</p> <h2 id="the-pitfalls-of-native-date-pickers" tabindex="-1">The Pitfalls Of Native Date Pickers <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/birthday-picker/#the-pitfalls-of-native-date-pickers">#</a></h2> <p>Unfortunately, <strong>native date pickers</strong>, prompted by <code>&lt;input type=&quot;date&quot;&gt;</code>, come along with <a href="https://www.hassellinclusion.com/blog/input-type-date-ready-for-use/">plenty of accessibility nightmares</a>. At the moment of writing, when used out-of-the-box, they <strong>aren’t a very accessible choice</strong> for pretty much any kind of date input. Not only are there plenty of screen reader issues, but also focus and layout issues as well as confusing and generic error messages.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/birthday-picker/A%20screenshot%20of%20a%20calendar%20view"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/birthday-picker/birthday-picker-calendar-inaccessible-keyboard-issues.png" alt="https://vimeo.com/548336844" width="550" height="445" loading="lazy"> </a> <figcaption><p>A calendar view with very strict input requirements. Accessible only for mouse users. The keyboard input is disabled. It took me 52 seconds (!) to provide my birthday. <a href="https://vimeo.com/548336844">(Video preview)</a></p> </figcaption> </figure> <p>On top of that, many implementations <strong>disable keyboard input</strong> altogether, requiring customers to use a native date picker’s calendar widget exclusively to reduce mistakes. Without a keyboard input fallback, users have to embark on a long-winded journey between days, months and years, taking up <strong>dozens and dozens of taps or clicks</strong>.</p> <p>As humans, we usually know our birthday, and we don’t really need to look it up in a calendar. Yet the interface requires us to navigate between dates, and then find our date in the calendar overview once we get there. This is useful when booking a flight, but not very useful when typing a birthday.</p> <h2 id="the-pitfalls-of-drop-downs" tabindex="-1">The Pitfalls of Drop-Downs <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/birthday-picker/#the-pitfalls-of-drop-downs">#</a></h2> <p>Compared to native date pickers, <strong>drop-downs</strong> seem to be much faster and easier to navigate. They are accessible by default, plus rather than navigating between months and years, it’s enough to locate the right numbers in 3 lists — days, months and years.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/birthday-picker/A%20screenshot%20of%20iOS%20calendar"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/birthday-picker/date-of-birth-ios-wheel.png" alt="https://www.hassellinclusion.com/blog/input-type-date-ready-for-use/" width="550" height="474" loading="lazy"> </a> <figcaption><p>The iOS calendar reels are shown after tapping onto the date control. <a href="https://www.hassellinclusion.com/blog/input-type-date-ready-for-use/">(Image source)</a></p> </figcaption> </figure> <p><a href="https://designnotes.blog.gov.uk/2013/12/05/asking-for-a-date-of-birth/">But drop-downs are still slow</a>. They have <a href="https://twitter.com/JoshWComeau/status/1379782931116351490">zooming issues</a>. Pinching scrollable options is tiring. <strong>They take up a lot of space</strong>. The list of years is long. And when specifying the input, we need to tap the control, then scroll (usually more than once), find and select the target, and continue to the next dropdown. <a href="https://medium.com/re-write/you-know-what-fuck-dropdowns-5b29151eddd5">It’s not exhilarating either</a>.</p> <p>That’s why <a href="https://www.lukew.com/ff/entry.asp?1950">dropdowns are considered the UI of last resort</a>, and usually replaced with buttons (e.g. for filters), toggles, segmented controls, or autocomplete boxes. Dropdowns can be useful for a long list of selections; but “operating” them takes a lot of time, and it’s not comfortable either.</p> <h2 id="the-default-values-dilemma" tabindex="-1">The Default Values Dilemma <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/birthday-picker/#the-default-values-dilemma">#</a></h2> <p>And then there is a question about default values. While with dropdowns we default to no input whatsoever (mm/dd/yyyy), with a date picker we need to provide some starting point. In the latter case, ironically, the “starting” date usually happens to be just around the date of when the form is filled. This doesn’t appear optimal of course, but what should be the <em>right</em> date? We need to start <em>somewhere</em>, right?</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/birthday-picker/A%20screenshot%20of%20airbnb.com"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/birthday-picker/birthday-picker-airbnb-menu.jpg" alt="https://airbnb.io/projects/react-dates/" width="550" height="383" loading="lazy"> </a> <figcaption><p>When a date-picker with default values makes sense: when booking flights or vacation. <a href="https://airbnb.io/projects/react-dates/">Open sourced</a> by AirBnB. <a href="https://vimeo.com/548336844">(Video preview)</a></p> </figcaption> </figure> <p>Well, <strong>there really isn’t a right date</strong>. We could start early or late, 3 months ago or tomorrow, but in the case of a birthday picker, all of these options are pure guesswork. And as such, they are somewhat frustrating: without any input, customers might need to scroll all the way from 1901 to the late 1980s, and with some input set, they’ll need to correct it, often jumping decades back and forth.</p> <p>No matter what choice we make, we will be <strong>wrong almost all the time</strong>. This is likely to be different for a hotel booking website, or a food delivery service, and plenty of other use cases — just not birthday input.</p> <h2 id="designing-a-better-birthday-input" tabindex="-1">Designing A Better Birthday Input <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/birthday-picker/#designing-a-better-birthday-input">#</a></h2> <p>If somebody asks you for your birthday, you probably will have a particular string of digits in mind. It might be ordered in dd/mm/yyyy or mm/dd/yyyy, but it will be a string of 8 digits that you’ve been repeating in all kinds of documents since a very young age.</p> <p>We can tap into this simple model of what a birthday input is with a <strong>simple, single-input field</strong> which would combine all three inputs — day, month, and year. That would mean that the user would just type a string of 8 numbers, staying on the keyboard all the time.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/birthday-picker/A%20screenshot%20of%20a%20good%20input"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/birthday-picker/birthday-picker-single-inputs.png" alt="https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c616aff8-a308-4a4c-823e-93b03f930698/7-birthday-picker.png/" width="550" height="186" loading="lazy"> </a> <figcaption><p>Using one input for a date is ambiguous and difficult to validate. Using multiple inputs for date is not ambiguous, and much easier to validate. Designed by <a href="https://adamsilver.io/blog/form-design-multiple-inputs-versus-one-input/">Adam Silver</a>. <a href="https://adamsilver.io/blog/form-design-multiple-inputs-versus-one-input/">(Large preview)</a></p> </figcaption> </figure> <p>However, this approach brings up a few issues:</p> <ul> <li> <p>we need to support <strong>auto-formatting and masking</strong>,</p> </li> <li> <p>we need to explain the position of the day/month input,</p> </li> <li> <p>we need to support the behavior of the Backspace button across the input,</p> </li> <li> <p>we need to <strong>support jumps</strong> into a specific value (e.g. month),</p> </li> <li> <p>we need to minimize rage clicks and navigation within the input to change a specific value on mobile devices,</p> </li> <li> <p>If auto-making isn’t used, we need to come up with a set of <strong>clean-up and validation rules</strong> to support any kind of delimiters.</p> </li> </ul> <p>In his book on <a href="https://formdesignpatterns.com/">Form Design Patterns</a>, Adam Silver argues that <a href="https://adamsilver.io/blog/form-design-multiple-inputs-versus-one-input/">using multiple inputs instead of one input</a> is rarely a good idea, but it is a <strong>good option for dates</strong>. We can clearly communicate what each input represents, and we can highlight the specific input with focus styles. Also, validation is much easier, and we can communicate easily what specific part of the input seems to be invalid, and how to fix it.</p> <p>To explain the input, we’d need to provide <strong>labels</strong> for the day, month and year, and perhaps also show an example of the correct input. <a href="https://www.smashingmagazine.com/2021/03/floating-labels-performance-lighthouse/">The labels shouldn’t be floating labels</a> but could live comfortably above the input field, along with any hints or examples that we might want to display. Plus, every input could be highlighted on focus as well.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/birthday-picker/A%20screenshot%20of%20a%20Design%20pattern"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/birthday-picker/date-of-birth-input-separate-input-fields.jpg" alt="https://design-system.service.gov.uk/components/date-input/" width="500" height="206" loading="lazy"> </a> <figcaption><p>Design pattern, as <a href="https://design-system.service.gov.uk/components/date-input/">suggested</a> by Gov.UK team. <a href="https://design-system.service.gov.uk/components/date-input/date-of-birth/index.html">(Jump to the demo)</a></p> </figcaption> </figure> <p>Over the years, I couldn’t spot a single problem with this solution throughout years of testing, and it’s not surprising the pattern <a href="https://design-system.service.gov.uk/components/date-input/">being used on Gov.uk</a> as well.</p> <h2 id="when-you-need-a-date-picker-after-all" tabindex="-1">When You Need A Date Picker After All <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/birthday-picker/#when-you-need-a-date-picker-after-all">#</a></h2> <p>While the solution above is probably more than enough for a birthday input, it might not be good enough for more general situations. We might need a date input that’s less literal than a birth day, where customers will have to pick a day rather than provide it (e.g. <em>“first Saturday in July”</em>).</p> <p>For this case, we could enhance the three input fields with a <strong>calendar widget</strong> that users could use as well. A default input would depend on either the current date, or a future date that most customers tend to choose.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/birthday-picker/A%20screenshot%20of%20a%20simple%20code%20example%20for%20the%20Memorable%20date%20pattern"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/birthday-picker/birthday-picker-separate-inputs.png" alt="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/6aa970a5-fd9e-62a6-cb7d-1c2cf4590801.png" width="470" height="527" loading="lazy"> </a> <figcaption><p>Adam provides a simple <a href="https://nostyle.herokuapp.com/components/memorable-date">code example</a> for the Memorable date pattern in his <a href="https://nostyle.herokuapp.com/">NoStyle Design System</a>.</p> </figcaption> </figure> <p>Adam provides a simple <a href="https://nostyle.herokuapp.com/components/memorable-date">code example</a> for the Memorable date pattern in his <a href="https://nostyle.herokuapp.com/components/memorable-date">NoStyle Design System</a>. It solves plenty of development work and avoids plenty of accessibility issues, and all of that by avoiding tapping around calendar widgets or unnecessary scrolling around dropdown wheels.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/birthday-picker/#wrapping-up">#</a></h2> <p>Of course, a good form control depends on the kind of date input that we are expecting. When we ask our customers about their <strong>date of birth</strong>, we are asking for a very specific date — a very specific string, referring to an exact day, month, and year.</p> <p>In that case, a <strong>drop-down is unnecessary</strong>. Neither is a calendar look-up, defaulting to a more-or-less random value. If you do need one, avoid native date pickers and native drop-downs if possible and use an accessible custom solution instead. And rely on three simple input fields, with labels and explanations placed above the input field.</p> Sat, 07 Jan 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/birthday-picker/ AI Tools For Designers https://smart-interface-design-patterns.com/articles/ai-tools-for-designers/ <p>I have to admit that I used to be very skeptical about the entire topic of <strong>AI and algorithmic design</strong>, and how it is going to change and shape design on the web. To the point that I was reluctant to even try out Midjourney and DALL-E — there were enough of artifacts produced by those tools all around the web.</p> <p>My attitude changed entirely when I encountered <a href="https://www.erikdkennedy.com/">Erik Kennedy's</a> take on AI in his recent newsletter. Erik suggested a few <strong>AI tools for research and inspiration</strong> in the design process, and it has started an entire rabbit hole trip for me.</p> <figure class="c-article__image u-flow--xs"> <a href="https://lexica.art/aperture"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ai-tools-for-designers/ai-generated-images.jpg" alt="A screenshot of a lexica.art" width="550" height="410" loading="lazy"> </a> <figcaption><p>An incredible result generated by <a href="https://lexica.art/aperture">Lexica Aperture</a> for a 'portrait of a master chocolate maker in an artisan chocolate shop'.</p> </figcaption> </figure> <h2 id="useful-ai-design-tools" tabindex="-1">Useful AI Design Tools <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ai-tools-for-designers/#useful-ai-design-tools">#</a></h2> <p>Below are some of the tools that I've discovered, and I hope that you will find them useful as well:</p> <ul> <li> <p>For AI portraits and photos, use <a href="https://lexica.art/aperture">Lexica Aperture</a>,</p> </li> <li> <p>For AI-generated model photos, use <a href="https://generated.photos/">Generated.photos</a>,</p> </li> <li> <p>For AI-generated rare photos, use <a href="https://www.raretifacts.com/">Raretifacts</a>,</p> </li> <li> <p>For AI image editing, use <a href="https://prisma-ai.com/lensa">Lensa</a>,</p> </li> <li> <p>For AI headlines and CTAs, use <a href="https://chat.openai.com/">ChatGPT</a>,</p> </li> <li> <p>For AI textures, icons, visual assets, use <a href="https://openai.com/dall-e-2/">DALL-E</a>,</p> </li> <li> <p>For AI logos, use <a href="https://www.logoai.com/">LogoAI</a>,</p> </li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://www.raretifacts.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/ai-tools-for-designers/ai-generated-headphones.jpg" alt="A screenshot of a raretifacts.com" width="550" height="467" loading="lazy"> </a> <figcaption><p>This set of headphones has never existed — except in the AI's imagination. Designed with <a href="https://www.raretifacts.com/">Raretifacts</a>.</p> </figcaption> </figure> <ul> <li> <p>For AI font picking, use <a href="https://chat.openai.com/">ChatGPT</a>,</p> </li> <li> <p>For AI image retouching, use <a href="https://icons8.com/bgremover">Background Remover</a> or <a href="https://www.remove.bg/">Remove Background</a>,</p> </li> <li> <p>For AI color palette generator, use <a href="https://www.khroma.co/">Khroma</a>,</p> </li> <li> <p>For AI image upscaling, use <a href="https://letsenhance.io/">Let's Enhance</a>,</p> </li> <li> <p>For AI video generation, use <a href="https://www.synthesia.io/">Synthesia</a>,</p> </li> <li> <p>For AI doodles generator, use <a href="https://experiments.withgoogle.com/autodraw">Autodraw</a>,</p> </li> <li> <p>For AI eye-tracking/heatmap testing, use <a href="https://www.visualeyes.design/">Visualeyes</a>,</p> </li> <li> <p>For AI avatar generator, use <a href="https://starryai.com/starrytars">StarryAI</a>,</p> </li> <li> <p>For AI mock-ups generator, use <a href="https://uizard.io/">uizard</a>.</p> </li> </ul> <p>Surely there are plenty of other AI tools available out there, and <a href="https://www.futurepedia.io/">Futurepedia</a> features <strong>100s of of small and large AI tools</strong> that might come in handy for a project.</p> <p>And if you are looking for a <strong>showcase of specific AI outputs</strong>, there is a growing repository of <a href="https://promptbase.com/">AI Prompts</a> as well.</p> <h2 id="a-little-bit-odd-a-little-bit-cold" tabindex="-1">A Little Bit Odd, A Little Bit Cold <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ai-tools-for-designers/#a-little-bit-odd-a-little-bit-cold">#</a></h2> <p>The results produced by AI are quite remarkable, but they are <strong>far from perfect</strong>. Sometimes you'll end up with weird artefacts for human hands and typography, and sometimes results feel extremely polished and unnatural. AI’s output can work as-is, but often it won’t — and will require human intervention.</p> <p>A problematic part is that AI systems are trained on existing work by creatives, building on top of <strong>individual human contributions</strong>, which is highly questionable on its own. This goes for illustrations, UI design and headlines. Still, the output always feels... a little bit odd and a little bit cold. And if you want to adjust it, there aren't enough tools to make those refinements and tiny adjustments as needed.</p> <p>That doesn't mean that we shouldn't be using AI as a research tool though. It actually <strong>works really well for research</strong>, be it quick brainstorming or exploration. It also is great at collecting data, but also structuring and making sense of it. In fact, there is a lot of value in the output that might provide actionable insights within seconds.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/ai-tools-for-designers/#wrapping-up">#</a></h2> <p>AI is interesting. It probably deserves the attention it gets, and the best results will come with advanced tooling allowing us to granularly adjust AI's output. But hopefully the tools listed above will help you get there. That’s a <strong>pretty good start</strong>, especially if you are as skeptical about AI as I was just a few weeks ago.</p> Mon, 02 Jan 2023 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/ai-tools-for-designers/ Billboard Navigation Design Pattern https://smart-interface-design-patterns.com/articles/billboard-navigation-pattern/ <p>Not every navigation item is equally important. Some items are more important or more frequently used, so they might deserve a little bit more spotlight in your navigation. In fact, if some items are more important than others, we can use the <strong>billboard pattern</strong> and display them more prominently.</p> <h2 id="korean-post-mosaic" tabindex="-1">Korean Post Mosaic <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/billboard-navigation-pattern/#korean-post-mosaic">#</a></h2> <p><a href="https://www.koreapost.go.kr/">Korea Post</a> uses a <strong>colorful mosaic-alike grid</strong> on desktop and on mobile to guide visitors straight to the main features of the site. There is also a big mega-drop-down-hover menu, yet the front and center of the experience is all about the <strong>most important tasks</strong> that people perform on the site — on the homepage and on the category pages.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.koreapost.go.kr/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/billboard-navigation-pattern/korean-post-billboard-pattern.jpg" alt="Korean Post Mosaic." width="550" height="274" loading="lazy"> </a> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://www.koreapost.go.kr/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/billboard-navigation-pattern/korean-post-billboard-pattern-mobile.jpg" alt="Korean Post Mosaic." width="550" height="515" loading="lazy"> </a> </figure> <h2 id="sparkasse-mosaic" tabindex="-1">Sparkasse Mosaic <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/billboard-navigation-pattern/#sparkasse-mosaic">#</a></h2> <p><a href="https://www.sparkasse.de/">Sparkasse</a>, a German bank, uses a similar approach with important features presented as <strong>a mosaic-grid of larger buttons</strong> both on desktop and on mobile, along with some features getting slightly less attention. The <strong>order of features</strong> should be defined by how critical or important the tasks are (for users and for business).</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.sparkasse.de/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/billboard-navigation-pattern/sparkasse-billboard-navigation-pattern.jpg" alt="Sparkasse Mosaic." width="550" height="423" loading="lazy"> </a> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://www.sparkasse.de/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/billboard-navigation-pattern/sparkasse-billboard-navigation-pattern-mobile.jpg" alt="Sparkasse Mosaic." width="550" height="509" loading="lazy"> </a> </figure> <h2 id="deutsche-post-billboard" tabindex="-1">Deutsche Post Billboard <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/billboard-navigation-pattern/#deutsche-post-billboard">#</a></h2> <p>In their mobile navigation, <a href="https://deutschepost.de/">Deusche Post</a> features most important tasks prominently as <strong>5 large buttons above</strong> the regular navigation. The highlighted features stand out; they appear differently than the rest of the navigation and are always displayed when a user opens the navigation drawer.</p> <figure class="c-article__image u-flow--xs"> <a href="https://deutschepost.de/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/billboard-navigation-pattern/deutsche-post-billboard-navigation-pattern-mobile.jpg" alt="Deutsche Post Billboard." width="550" height="323" loading="lazy"> </a> </figure> <h2 id="ecommerce-billboards" tabindex="-1">eCommerce Billboards <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/billboard-navigation-pattern/#ecommerce-billboards">#</a></h2> <p><a href="https://www.otto.de/">Otto</a>, one of the major retailers in Germany, focuses on lage buttons both on category pages and in the main navigation. As the first choice of category is the most critical one, the first level navigation <strong>items include illustrations</strong> — presented in a two-column grid.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.otto.de/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/billboard-navigation-pattern/otto-billboard-navigation-pattern-mobile.png" alt="A screenshot of an otto.de" width="550" height="325" loading="lazy"> </a> </figure> <p>This pattern is actually quite common in eCommerce as it seems to better <strong>drive engagement</strong> in a seemingly endless list of options, and <a href="https://www.coolblue.nl/en/mobile-phones/smartphones">Coolblue</a>, <a href="https://en.zalando.de/">Zalando</a> and <a href="https://www.target.com/">Target</a> use it, too.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.coolblue.nl/en/mobile-phones/smartphones"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/billboard-navigation-pattern/coolblue-billboard-navigation-pattern-mobile.jpg" alt="A screenshot of a coolblue.nl" width="550" height="518" loading="lazy"> </a> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://www.target.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/billboard-navigation-pattern/target-billboard-navigation-pattern-mobile.jpg" alt="A screenshot of a target.com" width="550" height="509" loading="lazy"> </a> </figure> <h2 id="insurance-billboards" tabindex="-1">Insurance Billboards <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/billboard-navigation-pattern/#insurance-billboards">#</a></h2> <p>Typically, a billboard includes plenty of cards, and often with illustrations. They don’t have to appear only on the homepage though; on <a href="https://www.dnb.no/">DNB</a> and <a href="https://www.folksam.se/">Folksam</a>, many <strong>category pages display large signposts</strong> with available options, like in the examples below.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.dnb.no/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/billboard-navigation-pattern/dnb-billboard-navigation-pattern-mobile.jpg" alt="A screenshot of a dnb.no" width="550" height="510" loading="lazy"> </a> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://www.folksam.se/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/billboard-navigation-pattern/folksam-billboard-navigation-pattern-mobile.jpg" alt="A screenshot of a folksam.se" width="550" height="511" loading="lazy"> </a> </figure> <h2 id="top-topics" tabindex="-1">Top Topics <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/billboard-navigation-pattern/#top-topics">#</a></h2> <p>Sometimes we don’t need to highlight main features, but it might be a good idea to highlight top topics. <a href="https://zh.ch/">Kanton Zürich</a>, the public service of the Zurich county in Switzerland, and <a href="https://www.gov.il/">Gov.il</a> do just that: the prominent area on the top are <strong>links or cards to the most important topics</strong> that visitors might find useful at the moment.</p> <figure class="c-article__image u-flow--xs"> <a href="https://zh.ch/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/billboard-navigation-pattern/kanton-zurich-billboard-navigation-pattern-mobile.jpg" alt="A screenshot of a zh.ch" width="550" height="513" loading="lazy"> </a> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://www.gov.il/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/billboard-navigation-pattern/gov-il-billboard-navigation-pattern-mobile.jpg" alt="A screenshot of a gov.il" width="550" height="512" loading="lazy"> </a> </figure> <h2 id="summary" tabindex="-1">Summary <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/billboard-navigation-pattern/#summary">#</a></h2> <p>If something requires more attention, we don’t necessarily need flashy animations or large carousels. We can just show the navigation more prominently. If it’s important, it <strong>shouldn’t be hidden</strong> behind a menu-button. That’s where the billboard pattern helps: as a grid, list of cards or just plain links.</p> <p>We just need to be very <strong>careful of what goes on a billboard</strong> and what doesn’t. Sometimes it can change over time, but when top tasks don’t change, the billboard shouldn’t change either. Either way, the billpoard pattern can help in focusing on what matters, and avoiding distractions when they are unnecessary.</p> Fri, 30 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/billboard-navigation-pattern/ Right Timing Matters https://smart-interface-design-patterns.com/articles/timing-matters/ <p>Imagine a <strong>shiny newsletter pop-up</strong>. A pop-up making its splendid appearance on an eCommerce site just as you are about to make your way to a product page. You didn’t even have a chance to explore a single product yet; nor did you have a chance to learn about prices and materials and delivery options. But here you are, distracted and annoyed, almost instinctively dismissing that pop-up before even fully realizing what it says.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/timing-matters/A%20beautiful%20pop-up%20that%20might%20not%20work%20very%20well*.%20[Image%20source](https://www.smartrmail.com/blog/examples-of-effective-popups-for-ecommerce-fashion-stores/)."> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/timing-matters/pop-up.jpg" alt="A screenshot of pop-up that might not work very well" width="550" height="397" loading="lazy"> </a> </figure> <p>That pop-up is right there, and it’s there for a reason. It’s there because there are established KPIs and expectations that somebody in the company needs to reach. These KPIs expect leads, and the more charming (or intrusive) that pop-up is, the more leads it will generate, boosting revenue projections and bonus pay-outs.</p> <h2 id="a-short-story-about-a-large-pop-up" tabindex="-1">A Short Story About A Large Pop-Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/timing-matters/#a-short-story-about-a-large-pop-up">#</a></h2> <p>A while back I was working with a large eCommerce retailer operating just like that. There was a strong desire to generate new leads, so the team has spent weeks tweaking headings and copy and labels and visuals and calls to action and their positions and backgrounds.</p> <p>By the end, the pop-up was so large and so loud that you could barely see anything else on the page. And it worked! Indeed, just a few weeks in, the list has started to grow considerably, and there was even a dashboard set up to celebrate new leads coming steadily minute after minute.</p> <p>It was weeks until the management has discovered that the growth of the list wasn’t resulting in the growth of the revenue.</p> <p>The company was indeed getting plenty of leads, but those leads were poor and noisy. They were a mixed bag of disposable, temporary emails, creative but non-existent aliases and just random text strings, and as such, they weren’t generating any noticeable revenue at all. The same leads actually <strong>cost money</strong> because the pop-up — showing up on every other page — drove people away from the site.</p> <p>It didn’t work because what the company wanted wasn’t just leads; they wanted good leads. They wanted emails with low bounce rates and high opening rates; emails that would have high conversion and high engagement; emails that wouldn't get filtered out or marked as spam. They wanted <strong>new, engaged and excited customers</strong> who would trust and love the brand. A loud newsletter pop-up wasn’t helping them get there.</p> <p>What did help the company was removing the pop-up altogether, and subtly integrate a bit of newsletter messaging all across the site, from product pages to confirmation emails.</p> <h2 id="strategy-to-generate-good-leads" tabindex="-1">Strategy To Generate Good Leads <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/timing-matters/#strategy-to-generate-good-leads">#</a></h2> <p>Over the years studies showed over and over how <a href="https://www.nngroup.com/articles/modal-nonmodal-dialog/">reluctant</a> people are to respond positively to any promotional message if their workflow is massively disrupted. This goes for a modal, a pop-up, a notification and anything in-between. In fact, any interruption of a task at hand is seen as a <strong>major distraction</strong> that needs to be dealt with urgently. And urgently rarely works in favor of user experience.</p> <p>In the end, <strong>it’s all about the right timing</strong>. If we want a good response, we need to find the time in a user’s journey when we can almost guarantee that users will appreciate the disruption, and will response positively. And that means being very thoughtful about the right time and the right places to surface our messages in a humble, respectful way.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/timing-matters/A%20beautiful%20pop-up%20that%20might%20not%20work%20very%20well.%20Based%20on%20[Argos](https://www.argos.co.uk/product/1303782?clickPR=plp:1:5)"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/timing-matters/mock-up.png" alt="A screenshot of a mock-up of what a better newsletter integration could be like." width="530" height="653" loading="lazy"> </a> </figure> <p>Just a mock-up of what a better newsletter integration could be like. Based on Argos.</p> <p>There are a couple of options that we can explore:</p> <ul> <li> <p><strong>Integrated messaging</strong>. The more integrated our messages appear with the rest of the page, and the more connected they are with a task at hand, the better they will be performing. Think of empty states, 404 errors, product pages and blog posts.</p> </li> <li> <p><strong>Success moments</strong>. Identify moments when a user completes a task or reaches a particular milestone, and integrate your messaging there. E.g. when an invoice is paid, when a request is approved, when a transaction is completed.</p> </li> <li> <p><strong>Nonmodal dialogs</strong>. To ease distraction, consider using collapsible <a href="https://accessuse.eu/en/non-modal-dialogs.html">nonmodal dialogs</a> that don’t block the rest of the UI. Users can dismiss them for a while, and return back if needed.</p> </li> <li> <p><strong>Confirmation pages</strong>. That’s where users linger for a while until they get a confirmation email. That’s also a great place to ask users for more details, ask to review email or set up a password, and get a 15% discount in return.</p> </li> <li> <p><strong>Confirmation email link</strong>. As users are eagerly expecting that email, we can allow people to subscribe to a newsletter with one single click on a link in the confirmation email.</p> </li> <li> <p><strong>Next to the price</strong>. We could integrate the newsletter box on most important pages, right next to the pricing of a product, prompting them to subscribe to get 10–15% off the first purchase.</p> </li> </ul> <h2 id="what-about-that-ecommerce-retailer" tabindex="-1">What About That eCommerce Retailer? <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/timing-matters/#what-about-that-ecommerce-retailer">#</a></h2> <p>Of course, what has worked for one company might not work for you, so it’s probably a good idea to try out all these options and see what actually works best.</p> <p>In the case of the eCommerce retailer, integrating the newsletter box next to the price and making the newsletter pop-up a <strong>collapsible non-modal</strong> dialog worked best. This change didn’t produce as many leads as the initial pop-up, but the leads were much better in quality and longevity.</p> <p>We need to give users a chance to develop trust towards the brand. This requires a more humble approach and a more patient team, but the results might be significantly better, with customers coming back and giving a company exactly what it has always wanted.</p> Mon, 26 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/timing-matters/ Reviews And Ratings UX https://smart-interface-design-patterns.com/articles/reviews-and-ratings-ux/ <p>When we make purchasing decisions, we often rely on expertise from people like us who have already purchased that item. And so we seek user ratings, often looking for a high enough <strong>review score</strong> and a good number of reviews.</p> <p>In fact, <a href="https://baymard.com/blog/user-ratings-distribution-summary">95% of users rely on reviews</a> to make their decisions and learn more about how well a product fits their needs. Unfortunately, too often the way we design reviews and ratings UX confuses and frustrates users, rather than helping them.</p> <p>Let’s fix that.</p> <h2 id="1-always-show-decimal-ratings-and-total-number-of-reviews" tabindex="-1">1. Always Show Decimal Ratings and Total Number of Reviews <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/reviews-and-ratings-ux/#1-always-show-decimal-ratings-and-total-number-of-reviews">#</a></h2> <p>Many services use <strong>bright orange stars</strong> as indicators of how great or poor the experience has been. However, there are vast differences and nuances between “4 stars”- and “5 stars”-experiences, which are somehow getting lost between two aggressively rounded scores.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.walmart.com/ip/Bose-Noise-Cancelling-Headphones-700-Over-Ear-Wireless-Bluetooth-Earphones-Black/932544113"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/reviews-and-ratings-ux/01-reviews-decimal-rating-total-reviews.jpg" alt="Screenshot of a Wallmart.com" width="550" height="241" loading="lazy"> </a> <figcaption><p><a href="https://www.walmart.com/ip/Bose-Noise-Cancelling-Headphones-700-Over-Ear-Wireless-Bluetooth-Earphones-Black/932544113">Walmart</a> highlights both decimal ratings and the total number of reviews, as well as the distribution of ratings</p> </figcaption> </figure> <p>To provide a slightly better assessment, our rating scores could be a bit more precise. As a general rule, it’s <a href="https://baymard.com/blog/user-perception-of-product-ratings">always a good idea</a> to display a <strong>decimal average score</strong> (e.g. 4.1 out of 5) and <strong>the total number of reviews</strong> (1528 reviews) together.</p> <p>The decimal average score provides a <strong>more granular estimate</strong>, while the total number of reviews guarantees a high enough number of reviewers contributing to that score.</p> <p>Is there a <strong>perfect score</strong>? Well, as long as your product’s score is somewhere <strong>between 4.5 and 4.9</strong> (with a high enough number of reviews), you probably shouldn’t worry too much. But: don’t feel too tempted to hit that score as it’s not the only detail that customers pay attention to.</p> <h2 id="2-display-a-full-rating-distribution-summary" tabindex="-1">2. Display a Full Rating Distribution Summary <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/reviews-and-ratings-ux/#2-display-a-full-rating-distribution-summary">#</a></h2> <p>In addition to bright yellow stars, we’ve learned to rely on <strong>distribution summaries for ratings</strong>. They explain the relation of high-score reviews vs. low-score reviews, and give customers a more granular overview of how good the product is for most people.</p> <figure class="c-article__image u-flow--xs"> <a href="https://medium.com/ux-for-india/online-shopping-insights-from-customer-ratings-in-flipkart-amazon-and-snapdeal-6bd75f1cf8f"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/reviews-and-ratings-ux/02-reviews-many-positive-reviews-some-negative-reviews.jpg" alt="The pattern that performs best: A lot of positive reviews and a good number of negative reviews." width="550" height="241" loading="lazy"> </a> <figcaption><p>The pattern that seems to perform best: a lot of positive reviews and a good number of negative reviews. Source: <a href="https://medium.com/ux-for-india/online-shopping-insights-from-customer-ratings-in-flipkart-amazon-and-snapdeal-6bd75f1cf8f">Flipkart</a></p> </figcaption> </figure> <p>As customers, we do so by looking for <strong>specific patterns</strong> in the rating distribution summary. In it, we need to find a lot of positive reviews, and enough negative reviews. Most importantly, there must be enough negative reviews to give customers pointers about the <strong>most negative experience</strong> that they might have. Products that match that perfect pattern usually appear most trustworthy and perform best.</p> <p>In user research, this “perfect” pattern is called the <strong>J-shaped distribution pattern</strong>. The distribution resembles a capital letter “J”, with a small spike of the most negative reviews <strong>(★)</strong>, a flat middle ground <strong>(★★, ★★★)</strong> and a high spike of the most positive ones <strong>(★★★★★)</strong>. However, as it turns out, it’s not really that perfect and conceals some <a href="https://levelup.gitconnected.com/the-problem-of-j-curves-in-online-ratings-systems-caf94fab4819">troubles for businesses</a>.</p> <h2 id="3-break-rating-distribution-summary-by-product-attributes" tabindex="-1">3. Break Rating Distribution Summary by Product Attributes <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/reviews-and-ratings-ux/#3-break-rating-distribution-summary-by-product-attributes">#</a></h2> <p>Showing a distribution summary <strong>isn’t enough</strong>. For example, a customer might be in interested in how long battery life is, or how sophisticated a particular feature is. To learn both, they’ll need to sip through dozens or even hundreds of reviews, often without any success.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.ikea.com/us/en/p/gurli-cushion-cover-golden-yellow-20395821/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/reviews-and-ratings-ux/03-reviews-individual-ratings-breakdown.png" alt="Ikea provides individual ratings for each part of the experience. This goes for every individual review as well." width="550" height="464" loading="lazy"> </a> <figcaption><p><a href="https://www.ikea.com/us/en/p/gurli-cushion-cover-golden-yellow-20395821/">Ikea</a> provides individual ratings for each part of the experience. This goes for every individual review as well.</p> </figcaption> </figure> <p><strong>For each standalone product attribute</strong> — appearance, value for money, product quality, battery life etc. — we could gather and <strong>highlight average scores</strong>, based on user reviews. When a customer chooses to provide their feedback, we could ask them to evaluate specific qualities of the product, and then calculate a separate average score for each attribute.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.adidas.de/en/adidas-tlrd-impact-training-high-support-bra/HM7901.html"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/reviews-and-ratings-ux/04-reviews-individual-ratings-breakdown-adidas.png" alt="On Adidas, customers can explore ratings and reviews for comfort, quality, fit and support, and filter reviews by commonly used tags." width="550" height="570" loading="lazy"> </a> <figcaption><p>On <a href="https://www.adidas.de/en/adidas-tlrd-impact-training-high-support-bra/HM7901.html">Adidas</a>, customers can explore ratings and reviews for comfort, quality, fit and support, and filter reviews by commonly used tags.</p> </figcaption> </figure> <h2 id="4-allow-users-to-mark-helpful-reviews" tabindex="-1">4. Allow Users To Mark Helpful Reviews <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/reviews-and-ratings-ux/#4-allow-users-to-mark-helpful-reviews">#</a></h2> <p>Not every review is helpful. Some reviews appear very generic, others lack important details, and others again focus too much on irrelevant details. To make sure that <strong>relevant reviews get surfaced to the top</strong> of the reviews list, we could kindly prompt users to mark if they find a review helpful — both for positive and negative reviews.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.glossier.com/products/futuredew"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/reviews-and-ratings-ux/05-reviews-most-heplful-glossier.jpg" alt="On Glossier, most helpful reviews are highlighted at the very top of the “Reviews” section." width="550" height="364" loading="lazy"> </a> <figcaption><p>On <a href="https://www.glossier.com/products/futuredew">Glossier</a>, most helpful reviews are highlighted at the very top of the “Reviews” section.</p> </figcaption> </figure> <p>Marked reviews — a few of each kind — could then be <strong>highlighted on the top of the reviews section</strong>, along with the number of users who found them helpful. This dramatically boosts trustworthiness and reduces time to relevance as highlighted reviews have been validated by other customers. This appears authentic and builds trust.</p> <h2 id="5-reward-users-for-negative-reviews" tabindex="-1">5. Reward Users For Negative Reviews <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/reviews-and-ratings-ux/#5-reward-users-for-negative-reviews">#</a></h2> <p>The more specific negative reviews are, the easier customers can discard irrelevant details and reach that threshold of trust. Especially if negative reviews <strong>simply don’t apply to them</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.glossier.com/products/futuredew"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/reviews-and-ratings-ux/06-reviews-critical-helpful.jpg" alt="OiHerb.com highlights the most helpful positive and the most helpful critical review at the very top of the Reviews section. Discovered by Nick Babich." width="550" height="456" loading="lazy"> </a> <figcaption><p><a href="https://www.iherb.com/r/california-gold-nutrition-gold-c-usp-grade-vitamin-c-1-000-mg-60-veggie-capsules/61864?lang=en-us&amp;sort=6&amp;isshowtranslated=true">iHerb.com</a> highlights the most helpful positive and the most helpful critical review at the very top of the “Reviews” section.</p> </figcaption> </figure> <p>You probably will need some negative reviews to appear trustworthy; they will, in fact, increase conversion and boost customer’s confidence. That’s why encourage customers to <strong>write detailed, honest negative reviews</strong> — and ask them to be very specific about the “bad” parts of the experience and update the review if they’ve been resolved.</p> <p>The more detailed and the more useful the review, the higher should be reward points and coupon codes. Counter-intuitive, but you might be surprised how well it might impact your sales.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/reviews-and-ratings-ux/#wrapping-up">#</a></h2> <p><strong>Getting user ratings right</strong> requires quite a bit of work. We need to gather and highlight relevant reviews, present distribution charts properly and allow users to use filters, tags or search to faster find useful reviews.</p> <p>In general, <strong>every review should have</strong>:</p> <ul> <li> <p>average score presented with decimal numbers,</p> </li> <li> <p>overall number of ratings,</p> </li> <li> <p>distribution chart of ratings,</p> </li> <li> <p>customer’s unedited product photos,</p> </li> <li> <p>ratings for individual features (size, fit, support etc.),</p> </li> <li> <p>(#) of reviews for intermediate values (1.0, 2.0, 3.0, 4.0, 5.0),</p> </li> <li> <p>tags and filters to find relevant reviews,</p> </li> <li> <p>personal details that will help customers find people like them in the reviews,</p> </li> <li> <p>date of publishing,</p> </li> <li> <p>how many people find it helpful,</p> </li> <li> <p>how many customers (%) recommend the product.</p> </li> </ul> <p>Sounds like a lot of effort — and it actually is. The impact of a proper user rating design can be remarkable and <strong>drive your sales efforts</strong> much stronger than any other campaign could have.</p> <p>And once it’s done, it will <strong>work for you long-term</strong>, building up a community of people who trust your brand and recommend it online and offline. And without any doubt — that’s very much worth the effort.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/reviews-and-ratings-ux/#useful-resources">#</a></h2> <ul> <li> <p><a href="https://uxdesign.cc/ux-tips-featuring-customer-reviews-to-increase-conversion-rates-5b86cd34fe86">UX tips: featuring customer reviews to increase conversion rates</a> by Sepre Boyer,</p> </li> <li> <p><a href="https://baymard.com/blog/user-ratings-distribution-summary">User Ratings Design UX Research</a> by Baymard Institute,</p> </li> <li> <p><a href="https://uxplanet.org/how-to-design-user-rating-and-reviews-1b26c0208d3a">How To Design User Rating and Reviews</a> by Nick Babich,</p> </li> <li> <p><a href="https://levelup.gitconnected.com/the-problem-of-j-curves-in-online-ratings-systems-caf94fab4819">The Problem of J-Curves (in Online Ratings Systems)</a>, by Sav Sidorov.</p> </li> </ul> Mon, 26 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/reviews-and-ratings-ux/ What Do PMs Do? https://smart-interface-design-patterns.com/articles/product-managers/ <p>Let me ask you a simple question: what’s the role of a PM? Or more specifically, what’s the difference between <strong>product managers</strong>, product owners and program managers? And how are they different from project managers or technical leads?</p> <p>If you know the answer, you can probably just skip this email alteogether. And if you don’t, let’s figure it out. You can also find more details around cross-team workflow in the <a href="https://smart-interface-design-patterns.com/">design KPI chapter in the video library</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/74e9068b-d4cc-8615-e878-0f985146fb9a.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/product-managers/contributing-to-design-process.jpg" alt="What exactly do PMs do? In different companies, PMs do different things. Illustration by José Torre." width="550" height="456" loading="lazy"> </a> <figcaption><p>What exactly do PMs do? In different companies, PMs do different things. Illustration by <a href="https://ux.shopify.com/designing-a-more-effective-portfolio-7725f46ad79e">José Torre</a>.</p> </figcaption> </figure> <h2 id="for-different-companies-pm-means-different-things" tabindex="-1">For Different Companies, PM Means Different Things <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/product-managers/#for-different-companies-pm-means-different-things">#</a></h2> <p>For a very long time, I was <strong>utterly confused</strong> about the term &quot;PM&quot;. I would ask myself what PMs actually do, or look it up and find all kinds of contradictory definitions. Honestly, I never knew for sure what responsibilities would go along with a role of a PM in a given company.</p> <p>In fact, I would jump from one company to another with wrong assumptions and <strong>wrong expectations</strong>, often asking the wrong questions, and speaking to the wrong people. I would try to understand the context reading between the lines, mostly failing and wasting time.</p> <p>It took me years to realize that different companies define the role of PMs differently. Sometimes it would include finances and marketing and sometimes stretch mostly over design and engineering. So no wonder I could never tell right away what PMs actually do in a given team.</p> <h2 id="pm-is-the-voice-of-the-customer" tabindex="-1">PM is The Voice of The Customer <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/product-managers/#pm-is-the-voice-of-the-customer">#</a></h2> <p>The clarity came unexpectedly. I’ve accidentally stumbled upon what is probably the clearest definition I’ve seen so far in <a href="https://www.buildc.com/the-book">Build</a>, a wonderful book written by Tony Fadell, with actionable, <strong>practical insights</strong> for anyone who is building a team:</p> <ul> <li> <p><strong>Product Managers</strong> are the voice of the customer. Their focus and responsibility is to figure out where customers are unhappy, what product should do, create the description of how it will work, and the facts they want customers to understand. To achieve it, they work with every part of the business — from engineering to finance.</p> </li> <li> <p><strong>Project Managers</strong> are the voice of the project. They coordinate tasks, meetings and assets to enable individual projects to get done in time.</p> </li> <li> <p><strong>Program Managers</strong> supervise groups of projects and project managers, facilitate processes and make sure all projects get done in time.</p> </li> <li> <p><strong>Product Owners</strong> work mostly with the development team to prioritize the product backlog and create user stories. In some way, they dictate what will and what will not make it into the product. (Which is something that actually should be done together with the team, rather than for them.)</p> </li> </ul> <p>Typically the work of a product owner could be done by a product manager, and a good product manager would do that — and a dozen of other things. They need to discover <strong>user problems</strong> and the roots of these problems, and work with the team to solve them.</p> <p>They also need to be close to marketing to communicate the right messaging, and close to sales to make sure the product has a market. Of course they would also work with engineers to get the product built according to spec, and with designers to meet user needs. Getting it all done is usually very challenging and a key to success of a product.</p> <h2 id="avoid-the-term-pm" tabindex="-1">Avoid The Term &quot;PM&quot; <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/product-managers/#avoid-the-term-pm">#</a></h2> <p>Most teams assume that “PM” stands for “product manager”, but I’ve seen people being as confused as I am, trying to figure out the right choice between product managers, project managers and program managers.</p> <p>So perhaps in our Slack messages and emails, we could just avoid “PM” altogether and always be very explicit about what we mean — a “product manager” or “project manager” or “program managers”, or anything in-between. I know for sure that it would have helped me get on the right track much faster back in the day.</p> <p>You will also find some practical advice on design process, design patterns and design KPIs in my <a href="https://smart-interface-design-patterns.com/">video library on UX</a>.</p> <p>Happy designing, and thank you for reading!</p> Mon, 26 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/product-managers/ Onboarding UX https://smart-interface-design-patterns.com/articles/onboarding-ux/ <p>You've just signed up for a service, yet here it comes — the disruptive, annoying, attention-demanding <strong>onboarding tutorial</strong>. It’s right there, asking for attention; yet chances are high that you will never find out what it was all about because you’ll be swiftly dismissing it with the &quot;skip&quot; link.</p> <p>How do we deal with onboarding UX? What's the right way to explain our beautifully crafted <strong>new features or hidden treasures</strong> that our interface provides? Let's figure it out.</p> <h2 id="1-slowly-guide-users-to-small-success-moments" tabindex="-1">1. Slowly Guide Users To Small Success Moments <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/onboarding-ux/#1-slowly-guide-users-to-small-success-moments">#</a></h2> <p>While many onboarding tutorials focus on explaining how to locate some features, it might be a good idea to change the perspective and focus on bringing users to first success moments instead. The learning of the features and their location in the interface, then, happens gradually, slowly, step-by-step, but on the side.</p> <figure class="c-article__image u-flow--xs"> <a href="https://monday.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/onboarding-ux/01-onboarding-monday.jpg" alt="A screenshot of a monday.com." width="550" height="338" loading="lazy"> </a> <figcaption><p><a href="https://monday.com/">Monday.com</a> and <a href="https://notion.so/">Notion</a> bring users to success moments: users are asked to specify their context first; then they get one of the pre-made templates that's customized for their needs.</p> </figcaption> </figure> <p>The goal is simple: we <strong>shorten the time to relevance</strong> as much as possible. For our various use-cases, we create and suggest <strong>presets and templates</strong> that will bring them to a good starting point faster. That's how <a href="https://monday.com/">Monday.com's onboarding</a> works. No interactive tutorials or feature highlights — just a streamlined way to get to the first success moments. This works well.</p> <h2 id="2-avoid-interactive-tutorials-and-walkthroughs" tabindex="-1">2. Avoid Interactive Tutorials and Walkthroughs <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/onboarding-ux/#2-avoid-interactive-tutorials-and-walkthroughs">#</a></h2> <p>Anything that keeps users away from using the product is an unnecessary distraction. That’s why tutorials and walkthroughs are often <strong>dismissed almost instinctively</strong>. Instead, we'd be better off showing hints only if we are absolutely confident that they are going to be well-received and highly appreciated.</p> <p>To do that, we need to <strong>time our onboarding hints well</strong>. We carefully choose and writte our hints and choose the right times and places for <a href="https://youtu.be/EbbjEY-TyhU?t=1963">just-in-time-hints</a> (Luke Wroblewski). In fact, features usually don't come out of nowhere: they <strong>address particular pain points</strong> and help users solve particular tasks.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.sbb.ch/de/fahrplan/mobile-fahrplaene/sbb-mobile.html"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/onboarding-ux/02-touch-time-table-sbb.jpg" alt="A screenshot of a sbb.ch" width="550" height="542" loading="lazy"> </a> <figcaption><p><a href="https://www.sbb.ch/de/fahrplan/mobile-fahrplaene/sbb-mobile.html">SBB Touch-Fahrplan</a> allows users to connect two locations with a line: that’s the input. First time, users are educated how to connect the lines — and only about that feature. <a href="https://www.sbb.ch/de/fahrplan/mobile-fahrplaene/sbb-mobile.html">Video and detals</a>.</p> </figcaption> </figure> <p>We can tap into situations when users lose time by doing repetitive tasks, or make the same mistakes, and frame a feature as something that can help them <strong>solve tasks better and faster</strong>. We meticulously choose the right timings for each feature, and show hints when needed.</p> <h2 id="3-collapsible-onboarding-checklist" tabindex="-1">3. Collapsible Onboarding Checklist <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/onboarding-ux/#3-collapsible-onboarding-checklist">#</a></h2> <p>Probably one of the best ways of teaching users how to use the interface well is via a <strong>collapsible checklist</strong>. We use a <a href="https://www.nngroup.com/articles/modal-nonmodal-dialog/">non-modal dialog</a> with up to 7 accordions that guide users through the necessary steps to complete the set-up or use the service. The onboarding checklist <strong>never blocks the UI</strong>, can be hidden, deferred — and restored later.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.loom.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/onboarding-ux/03-onboarding-checklist-loom.jpg" alt="A screenshot of a loom.com" width="550" height="569" loading="lazy"> </a> <figcaption><p><a href="https://www.loom.com/">Loom</a> makes onboarding optional; it can be collapsed and restored, if needed.</p> </figcaption> </figure> <p><a href="https://www.loom.com/">Loom's</a> onboarding UX is a great example of getting onboarding right. Six simple steps, clearly labeled, eacy to check, easy to hide and restore — with a progress indicator on the top. That's how it could be done.</p> <h2 id="4-prepare-users-with-a-custom-prompt" tabindex="-1">4. Prepare Users With a Custom Prompt <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/onboarding-ux/#4-prepare-users-with-a-custom-prompt">#</a></h2> <p>If we need <strong>user’s permissions</strong> for location or notifications, need their consent, or would love to show them a few new features, why don't we <strong>politely ask users first</strong> if it would be OK for them?</p> <p>Instead of showing anything disruptive immediately, we <strong>explain why we need their input</strong> before prompting any OS prompt. Users then have to activate a UI button first before interacting with the OS modal. At least a modal wouldn’t come as a big surprise, and is likely to have more positive responses.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.li.me/en-pe/the-app"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/onboarding-ux/04-enable-location-services-prompt.jpg" alt="A screenshot of a li.me" width="550" height="615" loading="lazy"> </a> <figcaption><p><a href="https://www.li.me/en-pe/the-app">Lime</a> never shows OS prompts for permissions or notifications right away: it always prepares users with a well-integrated and clear messaging. It’s only on click that an OS prompt is displayed. That’s polite and respectful.</p> </figcaption> </figure> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/onboarding-ux/#wrapping-up">#</a></h2> <p>If a feature is obvious, <strong>you might not need to explain it at all</strong>. As it turns out, the more integrated and &quot;regular&quot; a button appears, the more likely it is to be perceived as an integral part of the interface, and hence be used. Instead of highlighting the new feature, make it more subtle.</p> <p>A &quot;new&quot; badge along with a very subtle background change might be perfectly enough. A single popover at the bottom of the screen might also work well. Anything beyond that might not create the desired result. And: as Adam Fard <a href="https://adamfard.com/blog/ux-onboarding">suggests</a>, <strong>educate users incrementally</strong>, by structuring your suggestions in bite-sized chunks, so that users find them easy to learn.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/onboarding-ux/#useful-resources">#</a></h2> <ul> <li> <p><a href="https://www.nngroup.com/articles/mobile-app-onboarding/">Mobile App Onboarding</a>, by Nielsen Norman Group</p> </li> <li> <p><a href="https://uxdesign.cc/menu-of-ux-onboarding-patterns-and-when-to-use-them-3df2e3880fd1">UX Onboarding Patterns</a>, by Eve Weinberg,</p> </li> <li> <p><a href="https://adamfard.com/blog/ux-onboarding">UX Onboarding Checklist</a> by Adam Fard,</p> </li> <li> <p><a href="https://www.useronboard.com/">UserOnboard.com</a></p> </li> </ul> Mon, 26 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/onboarding-ux/ Never Hide Critical Navigation On Mobile https://smart-interface-design-patterns.com/articles/never-hide-critical-navigation/ <p>Every usability study reveals the same story: hiding important navigation is <strong>harmful</strong>, especially on pages where people tend to navigate a lot. In fact, digital experiences typically have two kinds of pages: navigation pages and content/task pages.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/never-hide-critical-navigation/When%20navigation%20matters.%20On%20navigational%20pages,%20we%20need%20to%20show%20critical%20navigation.%20The%20City%20of%20Montreal,%20University%20of%20Antwerp."> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/never-hide-critical-navigation/01-navigational-pages-links-overview.png" alt="The City of Montreal, University of Antwerp." width="550" height="541" loading="lazy"> </a> </figure> <p><strong>Navigation pages are the journey</strong>. There users spend most of their time looking for the next step, exploring and relying on menus, links and buttons. Hiding navigation there is harmful and counter-productive. In fact, we need to show as much forward-facing navigation as possible.</p> <p><strong>Content/task pages are the destinations</strong>. There users spend most of their time consuming content, reading, examining, comparing, completing tasks, but not navigating. Hiding navigation here is sensible, but there still might be some critical navigation to display — table of contents, progress steps etc.</p> <p>If navigation is important, we need to show it — especially on mobile. Let’s explore a few simple techniques to make it work.</p> <h2 id="1-use-a-billboard-pattern" tabindex="-1">1. Use a Billboard Pattern <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/never-hide-critical-navigation/#1-use-a-billboard-pattern">#</a></h2> <p>Display important actions as cards or <strong>large buttons in a grid</strong>. More important sections would be displayed at the top of the screen and take more size — similar to a billboard.</p> <p>Examples: <a href="https://www.koreapost.go.kr/">Koreapost.go.kr</a> and <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/1e2f0a1a-7254-d572-1bae-b55b38553a1e.png">Sparkasse.de</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/never-hide-critical-navigation/02-billboard-navigation-pattern.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/never-hide-critical-navigation/02-billboard-navigation-pattern.png" alt="A screenshots of Koreapost.go.kr and Sparkasse.de." width="550" height="537" loading="lazy"> </a> </figure> <h2 id="2-rearrange-navigation-in-the-header" tabindex="-1">2. Rearrange Navigation in the Header <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/never-hide-critical-navigation/#2-rearrange-navigation-in-the-header">#</a></h2> <p>Scatter the navigation <strong>across the logo</strong> in the header, or dedicate an entire bar to display important navigation items. If you don’t have a lot of navigation, this might work well.</p> <p>Examples: <a href="https://moma.org/">Moma.org</a> and <a href="https://www.typography.com/">Typography.com</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/never-hide-critical-navigation/03-displaying-navigation-on-mobile-no-hamburgers.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/never-hide-critical-navigation/03-displaying-navigation-on-mobile-no-hamburgers.png" alt="A screenshots of Moma.org and Typography.com." width="550" height="539" loading="lazy"> </a> </figure> <h2 id="3-make-navigation-prominent-with-cards" tabindex="-1">3. Make Navigation Prominent With Cards <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/never-hide-critical-navigation/#3-make-navigation-prominent-with-cards">#</a></h2> <p>Sometimes we don’t need to show content on navigational pages. Instead, we can <strong>prioritize navigation</strong>, and display options as a list of large clickable cards.</p> <p>Examples: <a href="https://www.auswaertiges-amt.de/">Auswaertiges-amt.de</a> and <a href="https://www.nhs.uk/">NHS.uk</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/never-hide-critical-navigation/04-cards-for-navigational-pages.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/never-hide-critical-navigation/04-cards-for-navigational-pages.png" alt="A screenshots of Auswaertiges-amt.de and NHS.uk." width="550" height="539" loading="lazy"> </a> </figure> <h2 id="4-use-progressive-disclosure-to-show-more-and-less" tabindex="-1">4. Use Progressive Disclosure To Show More and Less <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/never-hide-critical-navigation/#4-use-progressive-disclosure-to-show-more-and-less">#</a></h2> <p>Display as much as you can, but then allow users to quickly see more navigation options if needed. Important items should be <strong>visible at all times</strong>.</p> <p>Examples: <a href="https://arbetet.se/">Arbetet.se</a> and <a href="https://www.theguardian.com/international">TheGuardian.com</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/never-hide-critical-navigation/05-show-hide-pattern-mobile-navigation.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/never-hide-critical-navigation/05-show-hide-pattern-mobile-navigation.png" alt="A screenshots of Arbetet.se and TheGuardian.com." width="550" height="539" loading="lazy"> </a> </figure> <h2 id="5-use-a-sticky-navigation-for-top-tasks" tabindex="-1">5. Use a Sticky Navigation For Top Tasks <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/never-hide-critical-navigation/#5-use-a-sticky-navigation-for-top-tasks">#</a></h2> <p>Important items can also be <strong>visible at the bottom</strong> permanently, especially for items such as tracking delivery on a postal service website, or buying tickets on a museum website. Beware: they can quickly get annoying on content/task pages, so they could be smaller there.</p> <p>Examples: <a href="https://posturinn.is/">Posturinn.is</a> and <a href="https://www.franshalsmuseum.nl/">FransHalsMuseum.nl</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/never-hide-critical-navigation/06-bottom-bar-navigation.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/never-hide-critical-navigation/06-bottom-bar-navigation.png" alt="A screenshots of Posturinn.is and FransHalsMuseum.nl." width="550" height="518" loading="lazy"> </a> </figure> <h2 id="6-show-navigation-as-plain-links" tabindex="-1">6. Show Navigation as Plain Links <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/never-hide-critical-navigation/#6-show-navigation-as-plain-links">#</a></h2> <p>Cards take quite a bit of space, but <strong>links are easier to arrange</strong>. Ideally use just one simple column and two if you absolutely must. Each link must look like a link, and have active and focus states.</p> <p>Examples: <a href="https://unegui.mn/">Unegui.mn</a>, <a href="https://www.uantwerpen.be/">UAntwerpen.be</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/never-hide-critical-navigation/07-links-displayed-prominently.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/never-hide-critical-navigation/07-links-displayed-prominently.png" alt="A screenshots of Unegui.mn, UAntwerpen.be." width="550" height="528" loading="lazy"> </a> </figure> <h2 id="7-display-the-sidebar-navigation-on-the-top" tabindex="-1">7. Display The Sidebar Navigation on The Top <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/never-hide-critical-navigation/#7-display-the-sidebar-navigation-on-the-top">#</a></h2> <p>Sometimes users need to <strong>navigate sideways</strong>, exploring a similar section. For important navigation, show it at the very top of the page. Surely it takes space away from the content, but if it’s frequently used, it needs to be visible.</p> <p>Examples: <a href="https://www.gov.uk/find-legal-advice">Gov.uk</a> and <a href="https://www.govt.nz/browse/work/">Govt.nz</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/never-hide-critical-navigation/08-inline-navigation-table-of-contents.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/never-hide-critical-navigation/08-inline-navigation-table-of-contents.png" alt="A screenshots of Gov.uk and Govt.nz." width="550" height="538" loading="lazy"> </a> </figure> <h2 id="8-keep-the-table-of-contents-accessible-for-long-documents" tabindex="-1">8. Keep the Table of Contents Accessible For Long Documents <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/never-hide-critical-navigation/#8-keep-the-table-of-contents-accessible-for-long-documents">#</a></h2> <p>If a page is a part of a guide, or it contains many sections, <strong>include a table of contents</strong> on the top of the page (as an accordion), or at the bottom, revealing it as users start scrolling up.</p> <p>Example: <a href="https://www.nejm.org/">Nejm.org</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/never-hide-critical-navigation/nejm-displayed-navigation-bottom-menu.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/never-hide-critical-navigation/nejm-displayed-navigation-bottom-menu.png" alt="A screenshot of Nejm.org." width="550" height="538" loading="lazy"> </a> </figure> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/never-hide-critical-navigation/#wrapping-up">#</a></h2> <p><strong>Never hide critical navigation</strong>. Hamburger menus are often cluttered closets of our interfaces. And if something is important, we usually keep it close, nearby and visible, right in front of us instead of hiding it away.</p> <p>So show navigation when it matters and hide it when it doesn't. And avoid hamburger menus if you can.</p> Mon, 26 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/never-hide-critical-navigation/ Designing Multi-Lingual UX https://smart-interface-design-patterns.com/articles/multi-lingual-ux/ <p>If you ever had to design a <strong>multi-lingual website</strong>, you probably know the drill. Usually it’s not just a matter of translation. Eventually, <strong>labels get too lengthy</strong> to work everywhere, and we need to dedicate a lot of attention to currencies, dates, different word order, pluralization, colors, and gender pronouns.</p> <p>We need to think about how to <strong>stress test our designs</strong> in various contexts, and a proper <strong>localization strategy</strong> is needed as various versions of sites will be ready at various times.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.smashingmagazine.com/2022/05/designing-better-language-selector/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/multi-lingual-ux/01-language-selector-choose-your-language.png" alt="A screenshot of Designing A Better Language Selector" width="500" height="239" loading="lazy"> </a> <figcaption><p>Designing a language selector isn’t as straightforward as one might think. We’ve just published <a href="https://www.smashingmagazine.com/2022/05/designing-better-language-selector/">a comprehensive UX guide on just that</a>.</p> </figcaption> </figure> <h2 id="1-defensive-design-mindset" tabindex="-1">1. Defensive Design Mindset <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/multi-lingual-ux/#1-defensive-design-mindset">#</a></h2> <p><strong>Internationalization is hard</strong>. As we rarely know how much content will go into every given components we need to design with a <a href="https://defensivecss.dev/">defensive mindest</a> in mind. That means considering special use cases and edge cases early.</p> <figure class="c-article__image u-flow--xs"> <a href="https://defensivecss.dev/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/multi-lingual-ux/02-designing-for-edge-cases.png" alt="A screenshot of Defensive design" width="550" height="306" loading="lazy"> </a> <figcaption><p>Defensive design helps us stay on track when we don’t know in which context our design will be used. Image by <a href="https://defensivecss.dev/">Ahmad Shadeed</a>.</p> </figcaption> </figure> <p>These are the <strong>questions I ask myself</strong> when working on any multi-lingual website:</p> <ul> <li> <p>What if we <strong>double</strong> the number of navigation items?</p> </li> <li> <p>Can we use a <strong>show/hide pattern</strong> to show less if we need to?</p> </li> <li> <p>What if the headline is <strong>much longer</strong>, or much shorter?</p> </li> <li> <p>What if all images/videos have a <strong>wrong aspect ratio</strong>?</p> </li> <li> <p>Do our fonts support <strong>accent characters</strong>?</p> </li> <li> <p>Can we serve <strong>different illustrations</strong> to different audiences?</p> </li> <li> <p>Is our code base prepared for <a href="https://rtlstyling.com/posts/rtl-styling">right-to-left interfaces</a></p> </li> </ul> <p>Surely we need to first know what countries we are designing for. In her wonderful talk on <a href="https://vimeo.com/362150263">International Is The New Mobile First</a> (<strong>video, 50 mins</strong>), Robyn Larsen highlights how much attention we need to spend to everything <strong>from wording to photography</strong> when preparing a product for a new market.</p> <p>A reliable way to stress test just how defensive an interface actually is, is <em>pseudolocalization</em> — and that’s probably one of the first techniques that is likely to come up in conversations about multi-lingual UX.</p> <h2 id="2-testing-with-pseudolocalization" tabindex="-1">2. Testing With Pseudolocalization <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/multi-lingual-ux/#2-testing-with-pseudolocalization">#</a></h2> <p>With pseudolocalization, we test an interface before a translation is ready. We <strong>accent each character</strong> yielding a visibly different but still legible string. For example, French texts are on average 20 percent longer than English ones, while Japanese texts are 30 to 60 percent shorter. So we can <a href="https://www.shopify.com/partners/blog/pseudo-localization">simulate translation-induced expansion</a> and add extra characters and make each word <strong>40-50% longer</strong> to see if the layout still works well.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/34adacd1-cd1a-67e1-de24-46f57d0b481f.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/multi-lingual-ux/03-pseudolocalization-for-testing.png" alt="A screenshot of mcusercontent.com" width="550" height="519" loading="lazy"> </a> <figcaption><p><a href="https://slack.engineering/localizing-slack/">Localizing Slack</a>, a lovely case study on internationalization at scale.</p> </figcaption> </figure> <p>Personally, I always try looking into very long and very short titles, extremely wide and extremely tall images and the content in <strong>German, Cyrillic and Arabic or Hebrew</strong>. This requires also to observe if dates and currencies are displayed properly, and ideally hand over the design to a native speaker to see if the leading and whitespace work well as well.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.figma.com/community/plugin/781155826180092556/Pseudoloc"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/multi-lingual-ux/04-pseudolocalization-examples.png" alt="A screenshot of Pseudoloc" width="550" height="275" loading="lazy"> </a> <figcaption><p><a href="https://www.figma.com/community/plugin/781155826180092556/Pseudoloc">Pseudoloc</a>, a Figma plugin, inspired by <a href="https://netflixtechblog.com/pseudo-localization-netflix-12fff76fbcbe">Netflix case-study</a>.</p> </figcaption> </figure> <p>There are <a href="https://www.shopify.com/partners/blog/pseudo-localization">a few tools for pseudolocalization</a>. For example, <a href="https://www.figma.com/community/plugin/781155826180092556/Pseudoloc">Pseudoloc</a> and <a href="https://www.figma.com/community/plugin/878284525898996812/Psuedo-Localizator">Psuedo Localizator</a> are <strong>Figma plug-ins</strong>, and <a href="http://www.pseudolocalize.com/">Pseudolocalize!</a> is a free online tool that does the same thing for any paragraph of text.</p> <h2 id="3-designing-for-global-audiences" tabindex="-1">3. Designing For Global Audiences <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/multi-lingual-ux/#3-designing-for-global-audiences">#</a></h2> <p>To be prepared for the unexpected, it’s <a href="https://medium.com/dropbox-design/design-for-internationalization-24c12ea6b38f">a good idea</a> to leave enough room for longer translations and avoid putting text in narrow columns. We have to be careful with our icons and metaphors. But sometimes we need to go a little bit beyond that. We also need to address <strong>cultural characteristics</strong> in UX.</p> <figure class="c-article__image u-flow--xs"> <a href="https://blog.prototypr.io/ux-design-across-different-cultures-part-1-1caa12a504c0"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/multi-lingual-ux/05-the-culture-map-matrix.png" alt="A screenshot of blog.prototypr.io" width="550" height="490" loading="lazy"> </a> <figcaption><p>Different audiences are different. Jenny <a href="https://blog.prototypr.io/ux-design-across-different-cultures-part-1-1caa12a504c0">highlights</a> just how different the cultures are around the world.</p> </figcaption> </figure> <p>In her incredible two-part article series <a href="https://blog.prototypr.io/ux-design-across-different-cultures-part-1-1caa12a504c0">“UX Design Across Different Cultures”</a>, Jenny summarized what she has learned from designing for various cultures. Once you know the <strong>culture of the audience</strong> that you are designing for, your design decisions will have to consult and address cultural characteristics of that audience. Jenny also goes into detail of conducting usability tests, measuring data, and localizing copy.</p> <p><a href="https://uxplanet.org/ux-design-across-different-cultures-part-2-761c911e875">Part 2</a> looks into researching mobile device usage in emerging markets, researching local UI patterns and creating <strong>personas of local users</strong>. Jenny also highlights many of these findings in her talk on <a href="https://beyondtellerrand.com/events/berlin-2018/speakers/jenny-shen">Design for users across cultures</a> (video, 35 mins).</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/multi-lingual-ux/#wrapping-up">#</a></h2> <p>Personally, the most important thing to design for global audiences is to <strong>question every single assumption</strong> made in the interface. The wording, the buttons, the visuals, the layout. Our design has to be <strong>defensive and flexible enough</strong> to accommodate for major changes across languages and cultures.</p> <p>That’s not an easy fit, but it has a lovely side effect of helping us migrate our design to any other environment with a bit more confidence. And even if the interface will not be translated to other languages, it will be <strong>resilient enough</strong> for any kind of edge cases that happen in every single project. And that’s something worth striving for.</p> Mon, 26 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/multi-lingual-ux/ Designing Better Links UX https://smart-interface-design-patterns.com/articles/links-ux/ <p>Too often, <strong>links on the web</strong> don’t get the attention they deserve. Their appearance often follows the brandbook, and interaction seems to be so obvious that it doesn’t even come up in design discussions. Let’s fix it — and explore how we can <strong>make links better</strong>.</p> <h2 id="1-link-underlines-remove-ambiguity" tabindex="-1">1. Link Underlines Remove Ambiguity <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/links-ux/#1-link-underlines-remove-ambiguity">#</a></h2> <p>Link underlines are often dismissed, yet they are the clearest and <strong>simplest way to help users discover links</strong>. By default they can be too thick and appear too heavy, especially when in mega-drop-down menus, but we can make them a bit thinner with the <a href="https://css-tricks.com/styling-links-with-real-underlines/">text-decoration-thickness property in CSS</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/2fdf1909-84f8-ac43-863d-faf946b7928a.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/links-ux/01-link-underlines-vodafone.png" alt="For Vodafone, we can simplify the design quite significantly by adding link underlines where they belong." width="550" height="521" loading="lazy"> </a> <figcaption><p>For <a href="https://www.vodafone.de/">Vodafone</a>, we can simplify the design quite significantly by adding link underlines where they belong.</p> </figcaption> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/7e6f9193-57e9-75d6-cffa-2b2bc1e54e28.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/links-ux/02-link-underlines-distinguishing.png" alt="What is a link and what isn’t? Instead of relying on arrows, we can use link underlines: it’s less clutter and more obvious this way." width="550" height="518" loading="lazy"> </a> <figcaption><p>What is a link and what isn’t? Instead of relying on arrows, we can use link underlines: it’s less clutter and more obvious this way.</p> </figcaption> </figure> <p>In the example above, rather than using arrows to indicate a link and mixing them with chevrons indicating accordions, we can underline links and remove arrows altogether.</p> <p>This helps especially in <strong>navigation menus</strong> when we want to make it very clear which action opens an accordion and which action drives users to a category. Underlining links often solves this problem for good.</p> <h2 id="2-focus-and-active-styles-boost-confidence" tabindex="-1">2. Focus and Active Styles Boost Confidence <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/links-ux/#2-focus-and-active-styles-boost-confidence">#</a></h2> <p>It’s not uncommon for users to get lost on a page. Not because the page is confusing, but because the <strong>UI doesn’t provide any noticeable feedback</strong> upon user’s action. That’s when people accidentally click twice or refresh the page, and when they experience <strong>rage clicks and rage taps</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.nhs.uk/live-well/sleep-and-tiredness/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/links-ux/03-link-underlines-focus-styles.png" alt="NHS.uk prominently highlights focused and active states with a bright yellow background and a slightly thicker underline." width="550" height="313" loading="lazy"> </a> <figcaption><p><a href="https://www.nhs.uk/live-well/sleep-and-tiredness/">NHS.uk</a> prominently highlights focused and active states with a bright yellow background and a slightly thicker underline.</p> </figcaption> </figure> <p>Keyboard users often have issues following links as they tab through them; mobile users can’t see past their non-translucent fingers, and often it’s not clear if you actually <strong>missed the target</strong>, or it’s just the slow connection. Focus and active styles help in these situations. <strong>Bright yellow background</strong> is usually a good choice as it helps the link stand out.</p> <p>There are ways of <strong>designing better focus styles</strong>. In <a href="https://www.nicchan.me/blog/tips-for-focus-styles/">Tips For Focus Styles</a> and custom <a href="https://css-tricks.com/having-a-little-fun-with-custom-focus-styles/">:focus styles</a>, Nic Chan and Lari Maza highlight a few helpful tips on how to improve focus styles with better affordance and a bit of padding, offset, and outlines.</p> <h2 id="3-there-is-no-harm-in-visited-state" tabindex="-1">3. There Is No Harm in Visited State <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/links-ux/#3-there-is-no-harm-in-visited-state">#</a></h2> <p>Is it a good idea to communicate to users that they’ve visited a link already? It might be, especially when we expect users to click through many links in a list. If anything, a visited state will help a user to <strong>re-find a section</strong> that they’ve visited before.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.gov.uk/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/links-ux/04-link-underlines-focus-styles.png" alt="Gov.uk changes the color of a link to violet with a heavier underline for visited links, while the other links are blue — except the focused one." width="550" height="279" loading="lazy"> </a> <figcaption><p><a href="https://www.gov.uk/">Gov.uk</a> changes the color of a link to violet with a heavier underline for visited links, while the other links are blue — except the focused one.</p> </figcaption> </figure> <h2 id="4-meaningful-link-labels-and-link-accessibility" tabindex="-1">4. Meaningful Link Labels and Link Accessibility <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/links-ux/#4-meaningful-link-labels-and-link-accessibility">#</a></h2> <p><strong>Link labels matter</strong>. The more contextual they are, the more obvious it is for users to make a choice between navigation options. Thoughtfully composed links <a href="https://www.smashingmagazine.com/2021/12/designing-better-links-websites-emails-guideline/">express respect to readers</a>, whereas jumbled-up ones cause confusion and suspicion. For example, <em>“click here”</em> and <em>“this link”</em> are ambiguous and confusing choices that miss context.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.smashingmagazine.com/2021/12/designing-better-links-websites-emails-guideline/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/links-ux/05-designing-better-link-underlines.png" alt="A well-composed link should make sense alone. In this case it doesn’t." width="550" height="318" loading="lazy"> </a> <figcaption><p>A well-composed link should make sense alone. In this case it doesn’t.</p> </figcaption> </figure> <p>As Slava Shestopalov <a href="https://www.smashingmagazine.com/2021/12/designing-better-links-websites-emails-guideline/">writes in his article</a>, concise self-explanatory phrases inform people about the destination; they are actionable and clear. A well-composed link makes sense out of context and typically combines a <strong>topic</strong> (e.g. security, brand, marketing) and the <strong>format</strong> (questionnaire, request form, guideline, policy etc.).</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.smashingmagazine.com/2021/12/designing-better-links-websites-emails-guideline/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/links-ux/06-well-composed-links.png" alt="Well-composed links typically avoid generic words like 'this' or 'here'." width="550" height="446" loading="lazy"> </a> <figcaption><p>Well-composed links typically avoid generic words like 'this' or 'here'.</p> </figcaption> </figure> <p>It’s also a good idea to indicate if the link will guide users towards a <strong>PDF or any other downloadable file</strong>, so indicating the file size, or the types of content available (HD, SD) is reasonable as well.</p> <h2 id="5-should-links-open-in-new-tabs-by-default" tabindex="-1">5. Should Links Open In New Tabs By Default? <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/links-ux/#5-should-links-open-in-new-tabs-by-default">#</a></h2> <p><a href="https://www.smashingmagazine.com/2008/07/should-links-open-in-new-windows/">Probably not</a>. Ideally we would <strong>leave it to users to choose</strong> how to open a link, as they might want to open an external link in the same tab, rather than seeing it appearing in a new tab and then returning back to close the old tab.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/links-ux/07-links-external-icons.png" alt="if we have an external link, we can indicate it with an icon, but open it in the same page by default." width="550" height="446" loading="lazy"> </a> <figcaption><p>If we have an external link, we can indicate it with an icon, but open it in the same page by default. From <a href="https://smart-interface-design-patterns.com/">Smart Interface Design Patterns</a>.</p> </figcaption> </figure> <p>In general, it’s a good idea to always <strong>open links in the same tab</strong>, unless you are <a href="https://meiert.com/en/blog/links-in-new-tabs/">absolutely certain</a> that the user will appreciate a new tab. This makes sense when a click on a link would disrupt a process (e.g. help-links), or a user might lose data, or it’s a link to an external downloadable file. But in general: leave links be, and let users choose how to open them.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/links-ux/#wrapping-up">#</a></h2> <p>An underline is the <strong>clearest indicator of a link</strong>. Surely they aren’t always necessary but they are always helpful. For navigation menus, we can use links to distinguish between accordions and category links. With <strong>:focus</strong>, <strong>:active</strong> and <strong>:visited</strong> states we make it clear where a user currently is, where a user has been, and where they can navigate to.</p> <p>Meaningful wording <strong>aids accessibility</strong>. The more obvious it is where a user can go without reading the entire sentence, the faster the navigation will be. However, links opening in external pages by default would slow them down and confuse them, so <strong>opening links in the same window</strong> by default is a safer bet.</p> Mon, 26 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/links-ux/ Language Selector UX https://smart-interface-design-patterns.com/articles/language-selector/ <p>Imagine that you’ve just arrived to Tokyo. Full of impatience and excitement, you are just about to hit the road, yet there it comes: an <strong>urgent warning</strong> from your mobile provider, nudging you to top up your dwindling balance.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/language-selector/A%20screenshot%20of%20a%20stripe.com"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/language-selector/01-language-selector-stripe.jpg" alt="https://stripe.com/" width="550" height="570" loading="lazy"> </a> <figcaption><p>There isn’t anything cryptic on <a href="https://stripe.com/">Stripe</a>, with a popover, allowing users to jump to a different country in the footer.</p> </figcaption> </figure> <p>With some justified concern you head to the website, just to be redirected to the <strong>Japanese version of the site</strong>. You can’t read Japanese just yet, yet there is no option to change the location, and there is no option to change the language either. As the data keeps dwindling, you juggle between auto-translation and your VPN options — just to run out of data in the middle of the session.</p> <p>So, how do we fix it? By decouping presets, allowing for overrides and providing users with choice.</p> <h2 id="decouple-location-and-language-selection" tabindex="-1">Decouple Location and Language Selection <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/language-selector/#decouple-location-and-language-selection">#</a></h2> <p>Many websites rely on an assumption that location, language and currency are tightly coupled. After all, if a user chooses a location in Germany, they are very likely to prefer German language and see prices in Euro. However, this is based on assumptions that would work for many people, but <strong>break the experience entirely</strong> for some others.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/language-selector/A%20screenshot%20of%20a%20airbnb.com"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/language-selector/02-language-selector-airbnb.jpg" alt="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/e2518237-0a4a-b9d5-02a8-ef6ad92da2e4.jpg" width="550" height="382" loading="lazy"> </a> <figcaption><p>The language and country selection are decoupled on <a href="https://www.airbnb.com/">AirBnB</a>. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/e2518237-0a4a-b9d5-02a8-ef6ad92da2e4.jpg">Large view</a>.</p> </figcaption> </figure> <p><a href="https://www.airbnb.com/">AirBnB</a> suggests languages and regions in groups, but also allows users to adjust their preferences and choose a language and region of their choice. Additionally, users can opt-in to <strong>automatically translate descriptions</strong> and reviews to English.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/language-selector/A%20screenshot%20of%20a%20ssga.com"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/language-selector/03-language-selector-ETFs-roles.jpg" alt="https://www.ssga.com/de/en_gb/institutional/etfs/funds/spdr-sp-500-ucits-etf-dist-spy5-gy" width="550" height="332" loading="lazy"> </a> <figcaption><p><a href="https://www.ssga.com/de/en_gb/institutional/etfs/funds/spdr-sp-500-ucits-etf-dist-spy5-gy">SSGA</a> goes an extra mile with settings for roles and types of sites. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/951979e4-f171-70c3-c7cf-917c79a248d4.jpg">Large view</a>.</p> </figcaption> </figure> <p>Some slightly different preferences can be defined on the <a href="https://www.ssga.com/de/en_gb/institutional/etfs/funds/spdr-sp-500-ucits-etf-dist-spy5-gy">State Street of Global Advisors</a>. On the first visit, a modal window appears explaining to users some of the assumptions that the interface is making about the location and their interests. Within the modal window, users can change a location, <strong>specify their role</strong> and choose a preferred type of the site for their visit.</p> <h2 id="use-flags-for-countries-text-labels-for-languages" tabindex="-1">Use Flags For Countries, Text Labels For Languages <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/language-selector/#use-flags-for-countries-text-labels-for-languages">#</a></h2> <p>When designing a country selector, it feels almost natural to think about the flags they are represented by. After all, compared to just plain text, it should be much easier for users to locate the icon that they can immediately recognize. This is indeed true, however, as James Offer has suggested in his wonderful blog on <a href="http://www.flagsarenotlanguages.com/blog/">Flags are not languages</a>, flags are specific to countries, but <strong>languages often cross borders</strong>.</p> <p>To avoid misunderstandings, make sure that you use flags if your users need to select a specific country. However, if you’re providing users with a choice of a specific language, then flags are probably not going to work well. There, an autocomplete with all available countries and labels for languages written next to them might work better.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/language-selector/A%20screenshot%20of%20a%20modal%20window%20asking%20for%20a%20language%20and%20a%20destination%20separately."> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/language-selector/04-language-selector-Bol-decoupled.jpg" alt="https://www.bol.com/nl/nl/" width="550" height="475" loading="lazy"> </a> <figcaption><p><a href="https://www.bol.com/nl/nl/">BOL</a> shows a modal window asking for a language and a destination separately. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/61d7e9bb-f7ee-15eb-8832-dacfa1e33ca3.jpg">Large view</a>.</p> </figcaption> </figure> <p>Flags for countries, and plain text for languages. Everything seem to be about right on <a href="https://www.bol.com/nl/nl/">Bol.com</a>. The country selector (with a flag) is located in the right upper corner, where most users expect it.</p> <h2 id="a-case-for-non-modal-dialogs" tabindex="-1">A Case For Non-Modal Dialogs <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/language-selector/#a-case-for-non-modal-dialogs">#</a></h2> <p>Admittedly, modal windows are <a href="https://www.nngroup.com/articles/modal-nonmodal-dialog/">rarely a good idea</a>. They are <strong>disruptive and annoying</strong> as they require immediate attention. They might be appropriate when we need to draw user’s attention to important details, but <a href="https://www.nngroup.com/articles/modal-nonmodal-dialog/">nonmodal dialogs</a> are less intruding and more friendly.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/language-selector/A%20screenshot%20of%20a%20nonmodal%20window%20on%20Patagonia."> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/language-selector/05-language-selector-floating-nonmodal-patagonia.jpg" alt="https://www.patagonia.com/home/" width="550" height="327" loading="lazy"> </a> <figcaption><p><a href="https://www.patagonia.com/home/">Patagonia</a> uses a nonmodal window, and never blocks scrolling or copy-paste. That’s friendly. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/6804fff7-7726-2433-bfae-f9f368c1576e.jpg">Large view</a>.</p> </figcaption> </figure> <p>Upon website entry on <a href="https://www.patagonia.com/home/">Patagonia</a>, a <strong>non-modal window</strong> appears in the left bottom corner. Users can choose location and language and save their preferences as a cookie. They can also always bring the selection back by accessing the preferences bar in the footer.</p> <h2 id="click-through-menu-for-countries" tabindex="-1">Click-Through Menu For Countries <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/language-selector/#click-through-menu-for-countries">#</a></h2> <p>Navigating dozens of options in a <strong>small overlay</strong>, or even a large modal will be a bit cumbersome and require a healthy dose of scrolling. So it’s not very surprising that often websites present all available options on separate pages, broken down by regions and sometimes illustrated with country flags.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/language-selector/A%20screenshot%20of%20a%20click-through%20menu%20of%20Oracle"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/language-selector/06-language-selector-split-screen-oracle.jpg" alt="https://www.oracle.com/index.html" width="550" height="277" loading="lazy"> </a> <figcaption><p><a href="https://www.oracle.com/index.html">Oracle</a> with a click-through menu located in the footer of each page. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/edd9db5b-609d-3e07-8e18-1279215be3b2.jpg">Large view</a>.</p> </figcaption> </figure> <p>However, a slightly different kind of country selector on <a href="https://www.oracle.com/index.html">Oracle</a>: a click-through menu that covers the page, with all countries grouped, rather than displaying a standalone page. That’s a very compact and straightforward solution.</p> <h2 id="use-autocomplete-suggestions" tabindex="-1">Use Autocomplete Suggestions <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/language-selector/#use-autocomplete-suggestions">#</a></h2> <p>Getting autocomplete right isn’t an easy task. For it to work well for a country selector, we need to <strong>support frequent abbreviations</strong>, <a href="https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_and_their_capitals_in_native_languages">endonyms</a> and shorthands for all available options. And then, of course, our autocomplete suggestions should display both countries and languages, with an option to choose one option or another.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/language-selector/A%20screenshot%20of%20Ikea's%20country%20pre-selector"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/language-selector/07-language-selector-large-screen-IKEA.jpg" alt="https://www.ikea.com/" width="550" height="288" loading="lazy"> </a> <figcaption><p><a href="https://www.ikea.com/">IKEA</a> goes big with its country pre-selector on its homepage. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/cce104b4-8f7b-94ef-7fb9-f7f406d7bbd6.jpg">Large view</a>.</p> </figcaption> </figure> <p><a href="https://www.ikea.com/">IKEA</a> doesn’t use an automatic redirect, but a generous country selector that understands domains, endonyms and languages of the largest countries in the world. The “Go shopping” button might be the biggest button in the world and might deserve a spot in the World Guinness Records Book. Unfortunately, on the site, you can change the country, but not always the language.</p> <h2 id="the-globe-icon-instead-of-flags" tabindex="-1">The Globe Icon Instead of Flags <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/language-selector/#the-globe-icon-instead-of-flags">#</a></h2> <p>Since flags can be somewhat problematic, what would be a reasonable alternative to them? We can use icons such as <strong>“Globe” or “Translate”</strong> to indicate the choice of locales. Flags do work slightly better, but both icons are fairly well understood and avoid all the issues outlined above.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/language-selector/A%20screenshot%20of%20an%20IP%20based%20language%20selector"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/language-selector/08-language-selector-globe-icon-Atlassian.jpg" alt="https://www.atlassian.com/it/software/jira" width="550" height="336" loading="lazy"> </a> <figcaption><p><a href="https://www.atlassian.com/it/software/jira">Atlassian</a> nudges users to switch to another language, based on their IP. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/f4af8952-b9fb-25c0-7389-0c18bb94c4fb.jpg">Large view</a>.</p> </figcaption> </figure> <p>On <a href="https://www.atlassian.com/it/software/jira">Atlassian</a>, the language selector is tucked at the very end of the page in the footer, with a globe icon indicating the selection. However, if the user with a different browser language preference enters the site, <strong>it suggests to change the language</strong> at the very top of the page, with a globe icon appearing there, too.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/language-selector/#wrapping-up">#</a></h2> <p>The country and language selector might appear like a quite trivial task, but there are plenty of fine details that make or break the UX. When designing one, always <strong>decouple presets</strong> and reduce assumptions. Users expect the language selector to be located in the header or in the footer of each page, and they often watch out for flags, “Globe” or “Translate” icons to find it.</p> <p>If you have just a few languages, a <strong>drop-down overlay</strong> might be perfectly enough. If you need 10–15 languages, perhaps it’s worth exploring the option of a non-modal overlay with autocomplete. If there are even more options to display, consider using a standalone page, with countries grouped into tabs or accordions.</p> Mon, 26 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/language-selector/ Filtering UX https://smart-interface-design-patterns.com/articles/filtering-ux/ <p><strong>Filters are everywhere</strong>. They are used in pretty much every interface that features more than a handful of data points. It’s not necessarily just the sheer amount of data that is difficult to make sense of though; it’s the <strong>complexity and lack of consistency</strong> that the data usually entails.</p> <p>That requires some solid filtering — such a common scenario in data grids, enterprise dashboards, vaccine tracking and public records registries. Too often, however, <strong>filters require too much work</strong> — too much scrolling, too long to wait for the results to come back, too many pages to browse through.</p> <p>So if we wanted to improve our filters, how would we do that?</p> <h2 id="never-auto-scroll-users-on-a-single-input" tabindex="-1">Never Auto-Scroll Users On A Single Input <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/filtering-ux/#never-auto-scroll-users-on-a-single-input">#</a></h2> <p>You probably have been in a similar situation before. On <a href="https://www.dell.com/">Dell.com</a>, as you choose your laptop features, <strong>only a single input is registered at a time</strong>. If you happen to be selecting multiple options quickly, only the last input will be applied.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.dell.com/en-us/work/shop/dell-laptops-and-notebooks/sr/laptops/latitude-laptops"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/filtering-ux/filtering-blocking-sidebar-dell.gif" alt="A screenshot of a Dell’s filters" width="550" height="351" loading="lazy"> </a> <figcaption><p><a href="https://www.dell.com/en-us/work/shop/dell-laptops-and-notebooks/sr/laptops/latitude-laptops">Dell’s</a> filters aren’t very responsive. If you tap fast, you’ll need to have a bit of luck for all your filter inputs to be registered successfully.</p> </figcaption> </figure> <p>And as an input is registered, the page refreshes, <strong>jumping the customer</strong> all the way to the top of the filtering sidebar. That means that the more filters you want to use — and usually navigate from top to bottom — the more you’ll have to keep scrolling down to find the right filter. That’s annoying.</p> <p>In fact, even if you’d like to specify just 6–10 features this way, you’ll need to embark on a quite stubborn <strong>scrolling fight against the auto-scroll</strong>, with only a single filter registered at a time. It is possible to tap or click on multiple filters at a time, but in this case unfortunately the UI won’t respond as expected.</p> <h2 id="never-freeze-the-ui-on-a-single-input" tabindex="-1">Never Freeze The UI On A Single Input <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/filtering-ux/#never-freeze-the-ui-on-a-single-input">#</a></h2> <p>Every time we freeze the UI on a single input, <strong>we actively slow down our customers</strong> in expressing their intent. We actually make it a bit more cumbersome for them to specify what they are interested in, prioritizing the display of results over the input. This seems to be a wrong prioritization though. Let’s take a look at the example below.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.sears.com/appliances-refrigerators/b-1020022"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/filtering-ux/filtering-blocking-sidebar-sears.gif" alt="A screenshot of a Sears.com filters" width="550" height="351" loading="lazy"> </a> <figcaption><p>It’s common for customers to want to set multiple filters right after another. Freezing the UI on every single input slows them down and makes it just a bit more difficult. Example: <a href="https://www.sears.com/appliances-refrigerators/b-1020022">Sears.com</a>.</p> </figcaption> </figure> <p>At <a href="https://www.sears.com/appliances-refrigerators/b-1020022">Sears.com</a>, every time a selection is made, not only is the UI fully blocked; the users are also <strong>pushed to the top of the page</strong>. That’s especially frustrating for filters that include accordions (“see more” link in “Brand”, for example). With every new filter, the user has to scroll down and open the accordion to find that particular attribute that they want to select.</p> <p>It’s remarkably common for customers to add multiple filters quickly, sometimes in the same category. The behavior of the UI doesn’t support this intent well. What’s the alternative? <strong>Manual &quot;Apply&quot; button</strong>? That’s one option. But we could also do something else.</p> <h2 id="decouple-filters-and-search-results" tabindex="-1">Decouple Filters and Search Results <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/filtering-ux/#decouple-filters-and-search-results">#</a></h2> <p>We could decouple the parts of the UI and <strong>render both of them separately</strong>. In that case, on every filter input, matching results could be updated in parallel, while the filters always remain accessible and at the same place. With every new filter input, the user would see a flash of new content streaming in.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.su.se/english/search-courses-and-programmes?eventopenforinternationalstudents=true&notforcedreason=0&q=&xpanded="> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/filtering-ux/filtering-sidebar-async-stockholm-university.jpg" alt="A screenshot of a Su.se filters" width="550" height="376" loading="lazy"> </a> <figcaption><p>Filters and search results decoupled on <a href="https://www.su.se/english/search-courses-and-programmes?eventopenforinternationalstudents=true&amp;notforcedreason=0&amp;q=&amp;xpanded=">University of Stockholm</a>.</p> </figcaption> </figure> <p>The <a href="https://www.su.se/english/search-courses-and-programmes?eventopenforinternationalstudents=true&amp;notforcedreason=0&amp;q=&amp;xpanded=">University of Stockholm</a> above shows that pattern in action. As we select filters in the left sidebar, they get applied in the background while we can keep selecting more and more filters should we choose to do so. The product list gets updated at the same time. <strong>There is never a disabled state</strong> as new content appears in the list of matching results every time the data gets back from the server.</p> <p>It’s worth emphasizing at this point that every input in the filters area <strong>needs to be registered by the UI</strong>, and then applied to the product list. We’ve noticed that for many customers that’s an expected behavior, unless you keep a floating “Apply” button close to the filters area.</p> <h2 id="display-filters-above-the-results" tabindex="-1">Display Filters Above The Results <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/filtering-ux/#display-filters-above-the-results">#</a></h2> <p>To <strong>avoid layout shifts</strong> altogether, we can display applied filters *<strong>above the product results</strong>. That would keep the filtering area stable and predictable during the entire user interaction. In fact, it doesn’t have to be visible at all times. <a href="https://www.crateandbarrel.com/furniture/dining-benches/">Crate &amp; Barrel</a>, in the example below, allows customers to hide and show filters on demand, while applied filters are added to the dedicated area above products. Note that an option to clear all filters is available as well. (The product page has changed since the video was recorded though.)</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/filtering-ux/No%20layout%20shifts%20in%20sight%20on%20[Crate%20&%20Barrel](https://www.crateandbarrel.com/furniture/dining-benches/).%20A%20very%20calm%20experience,%20with%20a%20filter%20area%20that%20can%20be%20hidden%20if%20not%20needed."> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/filtering-ux/filtering-sidebar-crate.png" alt="A screenshot of a Crate & Barrel filters" width="550" height="392" loading="lazy"> </a> </figure> <p>Another option is to turn all filter sections into overlays and display them on tap/click above the results. In fact, you could even use floating filters, so as a customer scrolls down the page, the filters are still accessible all the time.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/filtering-ux/On%20[Adidas](https://www.adidas.de/en/women-shoes),%20the%20filters%20are%20displayed%20above%20the%20product%20list.%20Each%20filter%20group%20opens%20an%20overlay.%20However,%20with%20every%20filter%20input,%20the%20filter%20group%20would%20need%20to%20be%20re-opened."> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/filtering-ux/adidas-overlay-filtering.png" alt="A screenshot of Adidas.de filters" width="550" height="436" loading="lazy"> </a> </figure> <p>An example of this pattern is <a href="https://www.adidas.de/en/women-shoes">Adidas</a> (see the image below). The filters bar is persistent; even as users are scrolling down the page, the filter overlay <strong>won’t close automatically</strong> — it requires user’s input, again handing over the control to the user.</p> <p>However, it does close automatically once one of the filters is selected. If the user wants to select multiple filters, they have to re-open the same filter group over and over again. <strong>Keeping the filters</strong> visible until the user chooses to apply them might be a better idea. Still, the result: no layout shifts, no frustrating scrolling in narrow corridors, and filters are always accessible.</p> <h2 id="a-case-for-the-apply-button" tabindex="-1">A Case For The &quot;Apply&quot; button <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/filtering-ux/#a-case-for-the-apply-button">#</a></h2> <p>It almost feels a little bit archaic to have an “Apply” button for filters in times when we are getting used to seamless and smooth interactions. However, if we want to drive customers towards a <strong>manageable range of relevant results</strong>, there is hardly a better way of doing so than displaying the number of results as soon as possible.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.galaxus.ch/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/filtering-ux/filtering-vertical-overlay-async.png" alt="A screenshot of a Galaxus.ch filters" width="550" height="436" loading="lazy"> </a> <figcaption><p>Everything in one: on <a href="https://www.galaxus.ch/">Galaxus.ch</a>, filters are displayed above product results, a filter overlay appears on tap/click, and the overlay doesn’t disappear unless the user chooses to dismiss it.Everything in one: on Galaxus.ch, filters are displayed above product results, a filter overlay appears on tap/click, and the overlay doesn’t disappear unless the user chooses to dismiss it.</p> </figcaption> </figure> <p>We could allow customers to refine filters until they get to that range. <a href="https://www.galaxus.ch/">Galaxus.ch</a> provides a <strong>first-class experience</strong> when it comes to filtering. The filters are displayed above product results; a filter overlay appears on tap/click. No slowdowns, fast response times and a lovely integration of active filters with the filters area. A <strong>great reference example</strong> that is worth considering when designing any kind of filter.</p> <p>In general, having an “Apply” button along with real-time updates of the content area seems to be working best. It really combines the best of both solutions: showing results immediately when they arrive, while keeping filters accessible at all times.</p> <h2 id="avoid-split-screens-on-mobile" tabindex="-1">Avoid Split-Screens On Mobile <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/filtering-ux/#avoid-split-screens-on-mobile">#</a></h2> <p>The issues that we’ve explored in the article apply equally to large and small screens. However, on small screens, and especially on slow connections, these issues become even more critical. Most of the time, interfaces tend to block the entire UI on a single filter input, causing <strong>massive delays</strong> for customers on the go.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/8369355f-ca8f-47ab-e943-90f17d064494.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/filtering-ux/overlays-blocking-interaction.png" alt="A screenshot of a mcusercontent.com filters" width="550" height="334" loading="lazy"> </a> <figcaption><p>The usual suspects: blocking the UI and splitting the screen: Walgreens, Nordstrom, Crutchfield. (<a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/8369355f-ca8f-47ab-e943-90f17d064494.png">Large preview</a>)</p> </figcaption> </figure> <p>In general, though, it might be a better idea to experiment if a <strong>full-page overlay for filters</strong> would perform better. It gives more space to experiment with a multi-column view, or perhaps even display a swipeable area to choose filters without having to move between separate pages.</p> <p>In fact, using <strong>accordions</strong> that could collapse and expand instead of bringing the user to a separate page might be a good idea — similar to what we’ve discussed with mega-dropdowns.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/8369355f-ca8f-47ab-e943-90f17d064494.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/filtering-ux/overlay-split-screen-floating-filters.png" alt="A screenshot of a mcusercontent.com filters" width="550" height="333" loading="lazy"> </a> <figcaption><p>Better options for displaying filters: <a href="https://www.myntra.com/women-ethnic-wear">Myntra</a> and <a href="https://tylko.com/shelves/">Tylko</a>. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/b18a1d02-60aa-7b14-04d2-4d516fc0a9d5.png">(Large preview)</a></p> </figcaption> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/91a897e9-33a3-3967-5917-8580c240a5e4.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/filtering-ux/full-screen-filtering-overlay.png" alt="A screenshot of a mcusercontent.com filters" width="550" height="333" loading="lazy"> </a> <figcaption><p>Good reference examples: Galaxus.ch, Wayfair and Lacoste. <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/91a897e9-33a3-3967-5917-8580c240a5e4.png">(Large preview)</a></p> </figcaption> </figure> <p>Having an <strong>“Apply” button</strong> in all these examples is a good idea, and you can make it slightly more useful by adding the amount of products as a label on the button and keeping the button sticky at the bottom as the user is scrolling down.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/filtering-ux/#wrapping-up">#</a></h2> <p>Too often the filtering experience on the web is broken and frustrating, making it just <strong>unnecessarily difficult</strong> for customers to get to that shiny comfortable range of relevant results.</p> <p>When designing the next filter, take a look at some of the common issues that you might want to avoid, and hopefully avoid all the frustration that comes from broken and inaccessible implementations.</p> <ul> <li> <p>Customers often want to set a number of filters of the same type. <strong>Never auto-scroll users on a single input</strong> and never collapse a group of filters automatically.</p> </li> <li> <p><strong>Never freeze the UI on a single input</strong>, and never make your customer wait for an interface to respond back when setting filters.</p> </li> <li> <p>Always update filters and show results <strong>asynchronously</strong>, so that on every filter input, matching results could be updated asynchronously, while the filters always remain accessible and at the same place.</p> </li> <li> <p>Always <strong>avoid layout shifts</strong> on filter input and consider displaying filters above the results.</p> </li> <li> <p>On mobile, <em>“Apply”-button</em> could be sticky at the bottom of the screen. Update the <em>count of products</em> and show them on the button.</p> </li> </ul> Mon, 26 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/filtering-ux/ How To Improve Time Estimates For Designers https://smart-interface-design-patterns.com/articles/estimates/ <p>To get better at estimates, we need to know just how much productive time we have, and how much work we need to complete. Both need a lot of planning to avoid surprises down the line.</p> <figure class="c-article__image u-flow--xs"> <a href="https://halfool.medium.com/how-to-push-the-limits-of-a-design-system-b44fac420be"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/estimates/designing-better-estimates.jpg" alt="An illustration of flashlight uncovering many unknown issues and problems." width="550" height="438" loading="lazy"> </a> <figcaption><p>There are many unknowns that shape your timing: we need to discover them first. Illustration by <a href="https://halfool.medium.com/how-to-push-the-limits-of-a-design-system-b44fac420be">José Torre</a>.</p> </figcaption> </figure> <h2 id="estimate-with-6-65-productive-hours-per-day" tabindex="-1">Estimate with 6–6.5 productive hours per day <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/estimates/#estimate-with-6-65-productive-hours-per-day">#</a></h2> <p>Just because we have around 8 working hours a day, we aren’t actually working productively during that entire time. 8 hours don’t account for so many things, from routine messaging on Slack and urgent errands to sick days and interruptions.</p> <h2 id="break-down-the-scope-of-work-into-smaller-units-of-work" tabindex="-1">Break down the scope of work into smaller units of work <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/estimates/#break-down-the-scope-of-work-into-smaller-units-of-work">#</a></h2> <p>It pays off to invest enough time into writing and signing-off a detailed scope of work, explaining:</p> <ul> <li> <p>how you understood the problem,</p> </li> <li> <p>what the solution requires (with a breakdown of tasks),</p> </li> <li> <p>what your assumptions are,</p> </li> <li> <p>how you are planning to solve it,</p> </li> <li> <p>when customer’s (timely) input will be needed,</p> </li> <li> <p>what the milestones and timeline are,</p> </li> <li> <p>what delivery date you commit to (for the fixed scope),</p> </li> <li> <p>how the pricing and payment are going to work.</p> </li> </ul> <h2 id="estimate-in-ranges-not-precise-numbers" tabindex="-1">Estimate in ranges, not precise numbers <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/estimates/#estimate-in-ranges-not-precise-numbers">#</a></h2> <p>Many companies estimate work using story points, and it helps assess complexity of a task at hand. Whenever estimating, stay away from precise numbers such as 6h or 1 week — always estimate in time ranges to consider both optimistic and pessimistic outcomes. In reality, most of us aren’t pessimistic enough.</p> <h2 id="always-add-at-least-15percent-of-buffer-time" tabindex="-1">Always add at least 15% of buffer time <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/estimates/#always-add-at-least-15percent-of-buffer-time">#</a></h2> <p>The work is rarely done perfectly on time. You might need to cut corners or reduce the scope of delivery for the first prototype. Account for that time and add buffer time to your estimates. If you are an optimist, add 15%, if you are a pessimist, add 25%.</p> <h2 id="explain-that-late-changes-are-expensive-and-cause-delays" tabindex="-1">Explain that late changes are expensive and cause delays <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/estimates/#explain-that-late-changes-are-expensive-and-cause-delays">#</a></h2> <p>Make sure that everybody understands that you are estimating delivery for a fixed scope of work, and late changes will be expensive and might delay the delivery. You might want to repeat that last sentence multiple times. Make sure that you get a clear sign-off from your client (preferably with a signature).</p> <h2 id="have-a-script-ready-for-conversations-with-clients" tabindex="-1">Have a script ready for conversations with clients <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/estimates/#have-a-script-ready-for-conversations-with-clients">#</a></h2> <p>Clients don’t know how you work, so we shouldn’t expect them to know the implications of late scope changes and delays on their end. For every step of the process, make sure to mention — in email, calls, meetings etc. — that late scope changes are very expensive, and when you will need a timely input from them.</p> <h2 id="every-new-team-member-speeds-up-the-process-by-15-18" tabindex="-1">Every new team member speeds up the process by 1.5–1.8× <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/estimates/#every-new-team-member-speeds-up-the-process-by-15-18">#</a></h2> <p>The more people are involved, the higher is the cost of communication. Smaller teams often work more efficiently, but they also need to have meetings, discuss, argue and plan. You can’t double the speed of work by adding another person to the team.</p> <h2 id="life-is-full-of-surprises-budget-accordingly" tabindex="-1">Life is full of surprises: budget accordingly <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/estimates/#life-is-full-of-surprises-budget-accordingly">#</a></h2> <p>Estimates often assume linear, focused, uninterrupted work. They assume regular scenarios and a predictable process. But life isn’t like that at all. Plus, we are very bad at predicting future. Feel free to underpromise and overdeliver, but always include the cost of over-delivery in your estimates.</p> <p>Happy estimating, everyone!</p> Mon, 26 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/estimates/ Error Messages UX https://smart-interface-design-patterns.com/articles/error-messages-ux/ <p>When we design interfaces, we rarely think about <strong>error messages</strong> first. But a strategic and thorough design of these messages can be critical for businesses — especially if they struggle with high abandonment. Error messages can make or break the experience in situations when things go south.</p> <p><strong>Errors are everywhere</strong>, and so are error messages. They are of course common in web forms, but also in complex tables, contradictory filters and failed interactions. They can be small error notes and large error summaries; short <strong>tooltips</strong> and lengthy toast messages. So how do we choose the right ones? Let’s start from the basics.</p> <h2 id="1-never-rely-on-color-alone" tabindex="-1">1. Never Rely On Color Alone <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/error-messages-ux/#1-never-rely-on-color-alone">#</a></h2> <p>With error messages, we almost subconsciously think of <strong>bold red text</strong>. That’s indeed common, but often not enough to indicate to users that something is wrong.</p> <figure class="c-article__image u-flow--xs"> <a href="https://design-system.service.gov.uk/components/error-message/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/error-messages-ux/01-displaying-error-message-above-input.jpg" alt="A screenshot of the Error message component on Gov.uk" width="500" height="247" loading="lazy"> </a> <figcaption><p>The <a href="https://design-system.service.gov.uk/components/error-message/">Error message component</a> on Gov.uk can’t be improved much: the message is clear, fair and with an icon pointing attention to the message.</p> </figcaption> </figure> <p>Due to color vision deficiencies, it’s a good idea to <strong>always complement error messages with an icon</strong>, e.g. white exclamation mark on a red background — next to the error messages, or within the input field.</p> <figure class="c-article__image u-flow--xs"> <a href="https://carbondesignsystem.com/components/notification/usage/#inline-notifications"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/error-messages-ux/02-error-notification-carbon-design-system.png" alt="A screenshot of the Error notification in the Carbon Design System." width="500" height="497" loading="lazy"> </a> <figcaption><p>Error messages in the <a href="https://carbondesignsystem.com/components/notification/usage/#inline-notifications">Carbon Design System</a> by IBM. Error messages appear above the buttons on tap/click.</p> </figcaption> </figure> <p>As you can see in the first example, we can <strong>highlight the entire section</strong>, along with the field, label, the hint, the error message and the input field — e.g. with a thick vertical line next to it. We might also display an <a href="https://design-system.service.gov.uk/components/error-summary/">error summary</a> on the top of the page, with the links to the problematic areas in the form.</p> <h2 id="2-never-cover-users-input" tabindex="-1">2. Never Cover User’s Input <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/error-messages-ux/#2-never-cover-users-input">#</a></h2> <p>When we display error messages, we convey to users that there is a problem, but also try to guide users to a solution. This, however, requires the ability to <strong>consult the error as the error is being fixed</strong>. In other words, users would be able to edit the input field while also reviewing the error message(s) provided to them.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdworld.com/2020/04/22/inline-editing-and-validation-in-tables/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/error-messages-ux/03-inline-editing-and-validation-tables.jpg" alt="A screenshot of the inline editing and validation in tables." width="500" height="169" loading="lazy"> </a> <figcaption><p>When inline validation meets error recovery. A common example when the message covers the content. Via <a href="https://uxdworld.com/2020/04/22/inline-editing-and-validation-in-tables/">UX Design World</a>.</p> </figcaption> </figure> <p>So far so good. However, things become quite complicated once we also have a tooltip in play. When a tooltip is open, users might lose sight of both the error message and the input. Should they desire to be able to see <strong>all 3 pieces of information at once</strong>, they’d be out of luck.</p> <figure class="c-article__image u-flow--xs"> <a href="https://carbondesignsystem.com/components/toggletip/usage/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/error-messages-ux/04-tooltip-providing-explanation.png" alt="A screenshot of the Carbon Design System." width="500" height="375" loading="lazy"> </a> <figcaption><p>When a tooltip blocks the content, an example from the <a href="https://carbondesignsystem.com/components/toggletip/usage/">Carbon Design System</a>.</p> </figcaption> </figure> <p>We can fix it relatively easily. First of all, we avoid tooltips that open on hover, and display the tooltip text <strong>only once tapped or clicked</strong>. That means that a tooltip text will never disappear automatically, and will have to be closed manually.</p> <p>Then, we use the <a href="https://design-system.service.gov.uk/components/details/">details component</a> and <strong>inline accordions</strong> as an alternative to tooltips. Hence, we <strong>make space</strong> for the content of the tooltip to expand between the label and the other content, so nothing will be covered. The error message would appear at all times as well, next to the input field.</p> <figure class="c-article__image u-flow--xs"> <a href="https://design-system.service.gov.uk/components/details/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/error-messages-ux/05-details-component.png" alt="A screenshot of the details component." width="500" height="497" loading="lazy"> </a> <figcaption><p>The <a href="https://design-system.service.gov.uk/components/details/">details component</a>, with the details appearing on tap/click.</p> </figcaption> </figure> <p>This way, we show all 3 pieces of information at the same time — and <strong>users always have a choice</strong> to select what exactly they’d like to see. Is it too much? Maybe. But that’s a great option to keep in mind: at least to always display the input field and the error at the same time without them being overlapped by the tooltip.</p> <h2 id="3-in-forms-display-error-messages-above-input" tabindex="-1">3. In Forms, Display Error Messages Above Input <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/error-messages-ux/#3-in-forms-display-error-messages-above-input">#</a></h2> <p>Now this might sound a little bit confusing at first. Usually error messages are sitting conveniently under the input field, or perhaps — less frequently — on the right side of it. As it turns out, there are a few <strong>accessibility issues</strong> that come as a cost of these conventions.</p> <ul> <li> <p><strong>Users of a magnifying software</strong> might miss the error message when it’s located on the right,</p> </li> <li> <p><strong>On mobile</strong>, users might not be able to see the error message under the input because it will be <a href="https://adrianroselli.com/2017/01/avoid-messages-under-fields.html">covered by the virtual keyboard</a>,</p> </li> <li> <p><strong>When editing input</strong>, error messages might be covered by browser’s autofill or input’s autocomplete suggestions.</p> </li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/bb043283-c9c7-fa85-3e8c-cb4759c36677.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/error-messages-ux/06-displaying-error-summary-on-top-of-form.png" alt="Displaying error summary on the top of the form." width="500" height="292" loading="lazy"> </a> </figure> <p>Displaying error messages <strong>above input fields</strong> typically helps us avoid accessibility issues listed above. The cost of it, though, are <strong>layout shifts</strong>: with every new error appearing dynamically, the entire form has to shift vertically as we need to make space for the error message to appear. But sometimes it might be very much worth it.</p> <h2 id="4-in-tables-display-error-messages-inline" tabindex="-1">4. In Tables, Display Error Messages Inline <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/error-messages-ux/#4-in-tables-display-error-messages-inline">#</a></h2> <p>When displaying error messages in tables, it might be a good idea to consider alternative approaches as otherwise we would end up with a lot of <strong>layout shifts</strong> for each row.</p> <p>One of the simpler patterns is to <strong>display the error message in the same row where the content lives</strong>. In that case, the error message is more likely to live under the input field, not above it. Lengthy error messages could be collapsed and expanded with an accordion.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdworld.com/2020/04/22/inline-editing-and-validation-in-tables/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/error-messages-ux/07-inline-help-error-messages-within-table-cells.png" alt="Inline help error messages displayed within table cells" width="500" height="322" loading="lazy"> </a> <figcaption><p>Error messages could live in the same row where the erroneous content lives. Image source: <a href="https://uxdworld.com/2020/04/22/inline-editing-and-validation-in-tables/">UX Design World</a>.</p> </figcaption> </figure> <p>If the same error <strong>affects multiple rows</strong>, we might want to <strong>highlight the rows</strong> that contain errors and display an error message at the very top of the page that would explain the error and what needs to be done to fix it.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uxdworld.com/2020/04/22/inline-editing-and-validation-in-tables/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/error-messages-ux/08-global-error-message-for-multiple-rows.png" alt="Global error message appearing for multiple rows" width="500" height="239" loading="lazy"> </a> <figcaption><p>If an error appears multiple times, and its simple to explain, it might be a good idea to show it on the very top of the page. Image source: <a href="https://uxdworld.com/2020/04/22/inline-editing-and-validation-in-tables/">UX Design World</a>.</p> </figcaption> </figure> <h2 id="5-dont-rely-on-toast-error-messages" tabindex="-1">5. Don’t Rely on Toast Error Messages <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/error-messages-ux/#5-dont-rely-on-toast-error-messages">#</a></h2> <p>But what about good ol’ <strong>toast error messages</strong>? Those animated <strong>notifications</strong>, informing users about change of status of the system with floating messages. They might be uncommon for forms, but they frequently appear in tables and enterprise dashboards.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/error-messages-ux/The%20wonderful%20world%20of%20toast%20notifications.%20[Seb%20Group%20Design%20System](https://designlibrary.sebgroup.com/components/component-toast-notifications)."> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/error-messages-ux/09-error-messages-toast-notifications.png" alt="Error messages displayed as toast notifications." width="500" height="348" loading="lazy"> </a> </figure> <p>There are a few common <strong>usability issues</strong> with toast error messages:</p> <ul> <li> <p>Users often don’t get a chance to <strong>fully read or understand the error message</strong> before it has disappeared, and there is no way to restore it or keep it floating.</p> </li> <li> <p>Toast messages typically <strong>appear on the edges of the screen</strong>, and usually it’s quite <a href="https://www.nngroup.com/articles/errors-forms-design-guidelines/">far away from the erroneous input</a>. There is a disconnect between the error message and the input, and it’s rarely possible to read the error message and correct the mistake at the same time.</p> </li> <li> <p>Lengthy toast messages usually <strong>block large areas of content</strong> that a user might be relying on — and potentially even the input that has caused the error.</p> </li> <li> <p>Toast messages <strong>need to be announced to screen reader users</strong> while also allowing them to bring the focus back and forth between the error message and the erroneous input.</p> </li> <li> <p>With toasts, we usually don’t have enough space to provide a detailed help using <strong>images or videos</strong>, and have to rely on plain text and links to external help pages.</p> </li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/4205dd9b-ca26-b1b8-e123-2ba5fb0388a9.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/error-messages-ux/10-error-messages-toast-notifications.png" alt="Error messages presented as toast messages" width="500" height="261" loading="lazy"> </a> <figcaption><p>This might not be ideal: error messages appearing as toasts in a complex UI.</p> </figcaption> </figure> <p>If anything, toasts should be <a href="https://www.benrajalu.net/articles/ux-of-notification-toasts">persistent if displaying information that can be acted upon</a>, and users should be able to manually dismiss the notification.</p> <p>Personally, I’d definitely <strong>stay away from error messages as toasts</strong>, even if they are persistent. The more we can connect an error with its cause, the less likely it is to be overlooked. And the better we can explain how to solve the error next to its cause, the faster users will understand what they need to do.</p> <h2 id="6-allow-users-to-override-error-messages" tabindex="-1">6. Allow Users to Override Error Messages <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/error-messages-ux/#6-allow-users-to-override-error-messages">#</a></h2> <p>No single validation library will be extremely reliable and bulletproof for all the edge cases, so eventually some percentage of your customers will be left out there in the woods, trying to figure out what to do next to proceed. That’s quite suboptimal.</p> <p><strong>Aggressive validators cost money</strong>. Especially when they come in tandem with disabled buttons that literally block users without telling them what exactly needs to be done to fix the issue.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/0d761a4f-b192-c141-1537-e36d2b016c57.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/error-messages-ux/11-inline-messages-with-overrides.png" alt="An examples of an overriding address validator" width="500" height="127" loading="lazy"> </a> <figcaption><p>Overriding address validator might be a very good idea.</p> </figcaption> </figure> <p>For cases when a validator might be too restrictive, we can allow customers to <em>override validator’s warning</em>. We will get some wrong addresses as a result of that. But as a business, we need to measure just how much money we are losing due to increase in service desk inquiries vs. how much money we gain by allowing people to find a way to proceed even although the interface doesn’t want to play along. More often than not, it’s worth it.</p> <p>While this pattern works flawlessly for address input and telephone input, it probably won’t work for any input that needs to follow a particular convention — such as the length and checksum of an IBAN number or a credit card number. There, instead of giving customers a carte blanche, we need to <em>meticulously review the input</em> and guide them towards what exactly the problem seems to be. And help them resolve it.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/error-messages-ux/#wrapping-up">#</a></h2> <p>At the first glance, dealing with error messages might not sound like a big deal. However, as we dive into fine details, there are <strong>plenty of considerations</strong> that might either cause high abandonment or help people resolve issues quickly.</p> <p>With these guidelines, we should be better off when boosting our error messages UX. And if you can’t really do much around the way errors appear in your product, explore what you can do to <strong>replace generic error messages with helpful ones</strong>. This might be a small change with a huge impact that will eventually show up in large business KPIs dashboards.</p> Mon, 26 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/error-messages-ux/ Disabled Buttons UX https://smart-interface-design-patterns.com/articles/disabled-buttons/ <p>Admittedly, there might be <strong>very good reasons</strong> for making buttons disabled by default, but there are also scenarios when disabled buttons turn out to be a <strong>disastrous design pattern</strong>. Let’s look into common usability issues with disabled buttons, how to fix them, and when disabling buttons makes sense.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.sj.se/#/tidtabell/Stockholm%2520Central/Link%25C3%25B6ping%2520C/enkel/avgang/20210811-0500/avgang/20210811-1500/VU--///0//"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/disabled-buttons/disabled-buttons-swedish-public-transport.png" alt="A screenshot of a Swedish public transportation website." width="550" height="448" loading="lazy"> </a> <figcaption><p>One of the many. Usually buttons are disabled because the interface requires user’s input. Example: <a href="https://www.sj.se/#/tidtabell/Stockholm%2520Central/Link%25C3%25B6ping%2520C/enkel/avgang/20210811-0500/avgang/20210811-1500/VU--///0//">Swedish public transportation website</a>.</p> </figcaption> </figure> <h2 id="the-downsides-of-disabled-buttons" tabindex="-1">The Downsides Of Disabled Buttons <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/disabled-buttons/#the-downsides-of-disabled-buttons">#</a></h2> <p>As designers, we want to make it more difficult for our users to make mistakes and ensure that the input is perfectly correct before the data is even sent to the server. But these good intentions also bring along pitfalls.</p> <p><strong>Disabled buttons don’t explain what’s wrong</strong>. They communicate that something is off, but very often that’s just not good enough. As a result, too often users are left wondering what’s actually missing, and consequently locked out entirely.</p> <p>And then there is the question of <strong>timing</strong>. At which point should we enable a disabled button? Most implementations enable the button only if <em>all</em> required input seems to be well-formed, or/and has been verified by an inline validator. But sometimes <strong>inline validation is too aggressive</strong>, and it’s never bulletproof.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/66f7e2cb-1a7c-0775-042c-66222359c9f7.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/disabled-buttons/aggressive-inline-validation.jpg" alt="A screenshot of an aggressive inline validation" width="550" height="443" loading="lazy"> </a> <figcaption><p>You just want to fix an error in the first input, but then you are penalized in the second. An aggressive inline validation in play here.</p> </figcaption> </figure> <p>Did you have situations when your address didn’t validate although you’ve been living at that address for years? What about phone numbers locked into one specific country, although you have a number from another one? Technically, we should still be able to proceed, but we can’t.</p> <h2 id="when-disabled-buttons-work-well" tabindex="-1">When Disabled Buttons Work Well <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/disabled-buttons/#when-disabled-buttons-work-well">#</a></h2> <p>Imagine you want to purchase a pair of jeans online and as you add the item to your cart, you realize that it is no longer available. Making the “add to cart” button disabled when an option isn’t available is reasonable to <strong>avoid confusion</strong>.</p> <p>Or if you’re making a transfer from your bank account and accidentally press the “confirm” button twice. A disabled button could prevent this from happening and <strong>indicate that the state has changed</strong> and that nothing else needs to be done for the operation to proceed. Communicating that something isn’t possible could also come in handy to avoid wrong purchases or double-bookings or to validate magic sign-in and SMS code.</p> <figure class="c-article__image u-flow--xs"> <a href="https://wise.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/disabled-buttons/disabled-buttons-on-click-wise.jpg" alt="A screenshot of a wise disables the “Convert” button without changing the text" width="550" height="553" loading="lazy"> </a> <figcaption><p>Upon click, <a href="https://wise.com/">Wise</a> disables the “Convert” button without changing the text, but adds a loading indicator and changes a mouse pointer to indicate the change of state.</p> </figcaption> </figure> <p>When an option or a feature isn’t available or something is happening in the background, we need to communicate it early and clearly. A visible change of the button helps there, but we can also explain why the button is disabled and what exactly is happening. For example, we could change the label on the button and add a <strong>looping loading indicator</strong> to make it more obvious what exactly is happening.</p> <h2 id="making-disabled-buttons-more-inclusive" tabindex="-1">Making Disabled Buttons More Inclusive <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/disabled-buttons/#making-disabled-buttons-more-inclusive">#</a></h2> <p>So what if our implementation relies on disabled buttons? How can we make sure to not leave anyone out? In her article <a href="https://css-tricks.com/making-disabled-buttons-more-inclusive/">“Making Disabled Buttons More Inclusive”</a>, Sandrina Pereira highlights a couple of excellent techniques to make disabled buttons better — by changing the <strong>cursor</strong>, showing <strong>tooltips</strong>, or using ARIA live regions to announce dynamic content.</p> <figure class="c-article__image u-flow--xs"> <a href="https://css-tricks.com/making-disabled-buttons-more-inclusive/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/disabled-buttons/inclusive-disabled-buttons.jpg" alt="A screenshot of using an aria-disabled attribute instead of disabled to keep disabled buttons focusable" width="550" height="347" loading="lazy"> </a> <figcaption><p>We can use aria-disabled attribute instead of disabled to keep disabled buttons focusable, and show a tooltip on tap/click. By <a href="https://css-tricks.com/making-disabled-buttons-more-inclusive/">Sandrina Pereira</a>.</p> </figcaption> </figure> <p>An alternative to the classic tooltip could be to <a href="https://twitter.com/jordanmoore/status/1250026238762266624">guide the user to the errors</a> in the form, either with a link to the <strong>error summary</strong> at the top of the page or with jump-links to specific input fields that seem to contain errors. And we could just include a hint next to the disabled button to explain why it’s disabled.</p> <h2 id="always-provide-a-way-out" tabindex="-1">Always Provide A Way Out <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/disabled-buttons/#always-provide-a-way-out">#</a></h2> <p>It’s incredibly difficult for an interface to predict all the options that customers might want to choose ahead of time. So in the case of an ill-formed input or an error, we should provide a way out to complete the form. A useful technique is to also add a <strong>“way out”-link</strong> under the hint that explains what’s wrong. The link prompts the customers to get in touch with the customer support in case they can’t proceed.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/918c7d23-acd3-94be-fba2-d0cbcb1f9797.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/disabled-buttons/swedish-public-transportation-with-hint.jpg" alt="A screenshot of a 'way out'-link" width="550" height="179" loading="lazy"> </a> <figcaption><p>A 'way out'-link in action. It sends all customer’s details to the customer support, so you can get back to them. A mock-up based on Sj.se.</p> </figcaption> </figure> <h2 id="an-alternative-to-disabled-buttons" tabindex="-1">An Alternative To Disabled Buttons <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/disabled-buttons/#an-alternative-to-disabled-buttons">#</a></h2> <p>To avoid all the hassle customers have to endure with disabled buttons, we could make the experience much more straightforward by <strong>keeping the “Continue” button accessible</strong> at all times, and using the click to communicate to the user what’s actually wrong.</p> <figure class="c-article__image u-flow--xs"> <a href="https://twitter.com/jordanmoore/status/1250026238762266624"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/disabled-buttons/enabled-button-with-a-hint.jpg" alt="A screenshot of a keeping the buttons enabled, and showing errors on click" width="550" height="309" loading="lazy"> </a> <figcaption><p>Keeping the buttons enabled, and showing errors on click. A mock-up by <a href="https://twitter.com/jordanmoore/status/1250026238762266624">Jordan Moore</a>.</p> </figcaption> </figure> <p>A <strong>good overall strategy</strong> that always proves to be working without any usability issues is to validate the input on submit, explain that there are errors and show how many errors there are (as a hint or as an error message). If there’s only one error, point users directly to the input field that contains the error (with a text link), or, if there are more errors, show an <strong>error summary</strong> on top of the page and link to it on submit.</p> <figure class="c-article__image u-flow--xs"> <a href="https://design-system.service.gov.uk/components/error-summary/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/disabled-buttons/error-summary-and-error-message.jpg" alt="A screenshot of Validation on submit, and show error summary on the top" width="550" height="438" loading="lazy"> </a> <figcaption><p>Validate on submit, and show error summary on the top. <a href="https://design-system.service.gov.uk/components/error-summary/">Gov.uk</a>.</p> </figcaption> </figure> <p>Simple, straightforward, accessible, easy to implement, and without any reliance on code to be working flawlessly to bring a disabled button back to life.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/disabled-buttons/#wrapping-up">#</a></h2> <p>If you need to use disabled buttons, consider ways to <strong>make them focusable and useful</strong> by also making them more inclusive and providing a way out for customers to send all the details to the customer support.</p> <p>If you don’t need to make the buttons disabled, consider <strong>validating on submit</strong> and guide users directly to errors with sensible error messages. Either way, inline validation can be helpful in giving users a sense of progress as they are making their way through the form, but make sure that users can proceed even if inline validation fails.</p> Mon, 26 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/disabled-buttons/ Design Metrics and KPIs https://smart-interface-design-patterns.com/articles/design-metrics-kpis/ <p>Many organizations focus primarily on data coming from their <strong>analytics</strong>. This usually includes beautiful dashboards with data points and graphs on bounce rates, exit rates, time spent on site, navigation funnels and most used features or pages. Design KPIs are driven by numbers that don’t have any context and relate to an &quot;average user&quot; that doesn’t really exist.</p> <p>That’s a very traditional approach that has its roots in an assumption that the more users stay on the site, the more satisfied they are with the experience on the site. As it turns out, often the opposite is true.</p> <p>Don’t get me wrong: analytics is useful to identify trends and changes in user behavior, but it alone doesn’t provide us with insights on what exactly users are actually doing on the site. For example, some tasks might require a lot of reading and a lot of user’s input to be completed, but for others just a brief scan of a page might be perfectly sufficient to get a big picture.</p> <p>Some users might find an answer to their question already in a rich snippet provided by a search engine. And on some pages, the content might be organized so well that there is absolutely no need to linger on the site longer than a few seconds.</p> <p>With a better design, fewer people get lost, and more people find what they need. So it shouldn’t be surprising that as website owners, we might end up with reduced traffic and increased bounce rates. Usually this would be quite a warning sign, but it shouldn’t be — as long as we increase user satisfaction and reduce task completion times.</p> <p>In my work, we tend to define design KPIs by focusing on two fundamental metrics:</p> <ul> <li> <p>how many people find what they are looking for,</p> </li> <li> <p>how much time they need to find what they are looking for.</p> </li> </ul> <p>In detail, these attributes could be measured and tracked across a variety of user’s touch points:</p> <ul> <li> <p><strong>top tasks completion rates</strong> for internal and external users,</p> </li> <li> <p><strong>top tasks completion times</strong> on or off the website,</p> </li> <li> <p><strong>overall satisfaction</strong> with the content and the experience on the site,</p> </li> <li> <p><strong>rate of errors and mistakes</strong> in navigation, search and data input (e.g. filters, forms, search queries),</p> </li> <li> <p><strong>accuracy of data</strong> successfully submitted by users (how difficult do we make it to make mistakes),</p> </li> <li> <p><strong>frequency of dead ends</strong> (404s, empty search/filtering results, lock-out rates in forms due to poor validation),</p> </li> <li> <p><strong>time to production</strong>, or how quickly users can publish quality content that matches all content and design requirements stipulated by our guidelines,</p> </li> <li> <p><strong>time to bugfixing</strong>, or how quickly teams can fix an issue surfaced in a production environment,</p> </li> <li> <p><strong>engagement rate</strong>, e.g. how effectively do we communicate messages to users or inform them about our campaigns (CTR rates, time to share).</p> </li> <li> <p><strong>web performance</strong>, in terms of response times, Core Web Vitals, response to search/filtering queries, autocomplete etc.,</p> </li> <li> <p><strong>search-engine friendliness</strong>, e.g. average position in search results, the amount of rich snippets etc.</p> </li> </ul> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/design-metrics-kpis/design-metrics-KPIs/business-metrics-mix.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-metrics-KPIs/business-metrics-mix.jpg" alt="A screenshot of Healthy business metrics mix" width="500" height="275" loading="lazy"> </a> <figcaption><p>Healthy business metrics mix. <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-metrics-KPIs/business-metrics-mix.jpg">Large view</a>.</p> </figcaption> </figure> <p>To define design KPIs, we can rely on <a href="https://alistapart.com/article/what-really-matters-focusing-on-top-tasks">Top Tasks</a>, the most frequent tasks that users do on a website or in an application. For usability testing, we come up with tasks and test them with the same audience segments over time (preferably at least once every 3 months). Based on that, we measure success rates and completion times.</p> <p>The metrics listed above are much more focused around the actual user experience and user behavior, rather than on ambiguous data points that change heavily based on the specifics of what users are looking for and how and when they use the environment.</p> <p>It’s worth noting that the definition of design KPIs should have a significant impact on how the quality of work done by content and engineering teams is measured. Rather than focusing on the amount of produced pages or websites, bounce rates or click rates alone, we should be aligned towards producing quality content that is useful for people consuming that content.</p> Mon, 26 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/design-metrics-kpis/ Designing Better Design Critiques https://smart-interface-design-patterns.com/articles/design-critiques/ <p>Design critiques often undermine trust and crush team spirit. But they don’t have to. Here are a <strong>few helpful strategies, templates and articles</strong> that I found helpful to run better design critiques.</p> <h2 id="key-takeaways" tabindex="-1">Key Takeaways <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-critiques/#key-takeaways">#</a></h2> <ul> <li> <p>Explain the problem before showing any work.</p> </li> <li> <p>Review previous findings and research.</p> </li> <li> <p>Explain how far you are: 30%, 60% or 90% done.</p> </li> <li> <p>Explain what kind of feedback you seek.</p> </li> <li> <p>Start where a user starts: show entire user’s journey.</p> </li> <li> <p>Avoid surprises and big revelations in the meeting.</p> </li> <li> <p>Circulate a well-prepared brief ahead of time.</p> </li> <li> <p>Discourage opinions and invite open-ended questions.</p> </li> <li> <p>Don’t focus on the solution; focus on the problem.</p> </li> <li> <p>Don’t reserve critiques to designers only.</p> </li> <li> <p>Invite developers and stakeholders early.</p> </li> <li> <p>Make critiques a weekly habit.</p> </li> <li> <p>We are not our users.</p> </li> </ul> <p>Best critiques raise questions and reveal new directions. They avoid opinions and guidance. They end with action points that continue the process, rather than bringing it to a deadlock. And, most importantly, they strengthen the team, rather than drifting team members apart.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/design-critiques/#useful-resources">#</a></h2> <p><a href="https://lnkd.in/epbFb8QV">Six Design Critique Methods</a>, by Noah Levin</p> <p><a href="https://lnkd.in/eS34p7M8">Practical Design Critique Guide: How to Give and Receive Feedback</a>, by Darrin Henein</p> <p><a href="https://lnkd.in/eScpPAk6">How to Run an Effective Design Critique</a>, by Katrina Dargel</p> <p><a href="https://lnkd.in/eP5aVxXq">A Complete Guide To Design Critique</a>, by Jonny Czar</p> <p><a href="https://lnkd.in/eu_BA3Uy">The Pool Rules of Design Critique</a> PDF</p> <p><a href="https://lnkd.in/eS6_Vqc8">Design Critique Meetings Guide</a> (Figma template)</p> <p><a href="https://lnkd.in/eGSakAyq">Remote design critiques</a> by Aletheia D.</p> <p><a href="https://lnkd.in/e4UrpsPs">Anti-Behavior in Design Critiques, and How To Handle Them</a>, by Ben Crothers</p> <p><a href="https://lnkd.in/efKvbVS2">Design Critique Presentation Template</a> (Figma)</p> <p><a href="https://lnkd.in/eppC4TFk">Design Critique Meeting Figma Template</a>, by Rodrigo Javier Peña</p> <p><a href="https://lnkd.in/eSAZ_2Ef">Design Critique Template</a> (Miro)</p> <p><a href="https://lnkd.in/eryJShRd">Design Critique Playground Template (Miro)</a>, by Miroslava Jovicic</p> <p><a href="https://lnkd.in/e8bMqqcq">Design Critique Meeting Agenda</a>, by Anthony Murphy</p> <p>Book recommendation: <a href="https://lnkd.in/e5TSKY73">“Content Design”</a> by Sarah Winters</p> <p>Book recommendation: <a href="https://lnkd.in/eBFcgGu5">”Discussing Design”</a> by Adam Connor, Aaron Irizarry</p> <hr> <p>So, what strategy do you use when running your design critiques? Thanks for reading!</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-critiques/design-critique-toolbelt.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/design-critiques/design-critique-toolbelt.jpg" alt="Critique Toolbelt" width="550" height="351" loading="lazy"> </a> </figure> Mon, 26 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/design-critiques/ Useful Copywriting Tools and Resources https://smart-interface-design-patterns.com/articles/copywriting/ <p><strong>Copywriting</strong> is difficult. Staring at the blank screen can feel daunting, but so does finding just the right words for that landing page. Let’s take a look at some <strong>copywriting tools</strong> that you might find useful in such situations.</p> <h2 id="1-speakhumantoday" tabindex="-1">1. SpeakHuman.Today <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/copywriting/#1-speakhumantoday">#</a></h2> <p><a href="https://www.speakhuman.today/">SpeakHuman.Today</a> is a great little gem. You can generate <strong>human-centric microcopy</strong> for various purposes, from errors to confirmations messages. Not ideal for copy-paste, of course, but useful to inspire us all to write better copy.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.speakhuman.today/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/copywriting/speak-human-today.jpg" alt="A screenshot of speakhuman.today" width="550" height="322" loading="lazy"> </a> </figure> <h2 id="2-uicopy" tabindex="-1">2. UIcopy <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/copywriting/#2-uicopy">#</a></h2> <p><a href="https://uicopy.io/">UIcopy.io</a> is a useful <strong>plugin for Figma and Adobe XD</strong> that contains pre-built copy templates for your UI. It’s not generated randomly, but is curated by real humans, and often contains a personal touch. Available only with a subscription.</p> <figure class="c-article__image u-flow--xs"> <a href="https://uicopy.io/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/copywriting/UI-copy.png" alt="A screenshot of uicopy.io" width="550" height="515" loading="lazy"> </a> </figure> <h2 id="3-microcopy-patterns" tabindex="-1">3. Microcopy Patterns <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/copywriting/#3-microcopy-patterns">#</a></h2> <p><a href="https://twitter.com/tinywordsmatter">Tiny Words Matter</a> is a friendly Twitter account that provides a curated dose of <strong>well-crafted microcopy</strong>. Wonderful real-life examples and microcopy patterns.</p> <figure class="c-article__image u-flow--xs"> <a href="https://twitter.com/tinywordsmatter"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/copywriting/microcopy-patterns.jpg" alt="A screenshot of twitter.com/tinywordsmatter" width="550" height="349" loading="lazy"> </a> </figure> <h2 id="4-ux-writing-library" tabindex="-1">4. UX Writing Library <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/copywriting/#4-ux-writing-library">#</a></h2> <p><a href="https://www.uxwritinglibrary.com/">UX Writing Library</a> is <strong>everything on copywriting</strong> gathered in one single place: books, communities, tools, online courses, podcasts, newsletters and everything in-between. A great hub to find plenty of resources around UX writing.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.uxwritinglibrary.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/copywriting/ux-writing-library.jpg" alt="A screenshot of uxwritinglibrary.com" width="550" height="515" loading="lazy"> </a> </figure> <h2 id="5-good-email-copy" tabindex="-1">5. Good Email Copy <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/copywriting/#5-good-email-copy">#</a></h2> <p><a href="https://www.goodemailcopy.com/">Good Email Copy</a> highlights examples of email copywriting, tagged and grouped, with search. There aren’t that many examples for each topic, but it might be just enough to help out once help is needed. And if you need more, check <a href="https://reallygoodemails.com/">ReallyGoodEmails.com</a> and <a href="https://emaillove.com/">EmailLove</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.goodemailcopy.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/copywriting/good-email-copy.jpg" alt="A screenshot of goodemailcopy.com" width="550" height="365" loading="lazy"> </a> </figure> <h2 id="6-ditto" tabindex="-1">6. Ditto <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/copywriting/#6-ditto">#</a></h2> <p><a href="https://www.dittowords.com/">Ditto</a> is a lovely tool that acts as a single place to manage the copy in all of its stages. It allows you to build a text component library, track all copy changes, and review and discuss edits, too.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.dittowords.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/copywriting/ditto-copywriting.png" alt="A screenshot of dittowords.com" width="550" height="489" loading="lazy"> </a> </figure> <h2 id="and-thats-a-wrap" tabindex="-1">And That’s A Wrap! <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/copywriting/#and-thats-a-wrap">#</a></h2> <p>As always, sending you a lot of <strong>good vibes</strong> and positive energy for the coming week, everyone! And of course if you could share the newsletter with a friend, or point them to <a href="https://smart-interface-design-patterns.com/">this lovely website</a>, I’d very much appreciate it. Thank you! :)</p> Mon, 26 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/copywriting/ Complex Filters UX https://smart-interface-design-patterns.com/articles/complex-filtering/ <p>Dealing with <strong>complex filters</strong> in enterprise environments can be quite a challenge. Usually we know where to place them, but not necessarily how to show them. What if you have literally <strong>hundreds of these filters</strong>? Showing them all at once might be quite intimidating, to say the least.</p> <figure class="c-article__image u-flow--xs"> <a href="https://finviz.com/screener.ashx?v=111&ft=4"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/complex-filtering/complex-filtering-finviz.jpg" alt="A screenshot of a FinViz" width="550" height="373" loading="lazy"> </a> <figcaption><p><a href="https://finviz.com/screener.ashx?v=111&amp;ft=4">FinViz</a>, a financial stocks screener, appears to be quite complex.</p> </figcaption> </figure> <p><a href="https://finviz.com/screener.ashx?v=111&amp;ft=4">FinViz</a>, a popular financial stock screener, is an example of just that. Our first hunch would be to <strong>regroup filters</strong>, break them down, reorganize, reshuffle. That’s an important step, but it’s probably not going to be enough.</p> <p><a href="https://webcache.googleusercontent.com/search?q=cache:ToXYraIfto0J:https://www.lukew.com/ff/entry.asp%3F1950+&amp;cd=1&amp;hl=en&amp;ct=clnk&amp;gl=de">Drop-downs are rarely a good idea</a>, they are slow and perform poorly in usability tests. The sheer amount of filters is overwhelming. And choosing the right option is tiring at best.</p> <p>What’s the alternative? Well, <a href="https://lawsofux.com/teslers-law/">we can’t remove complexity</a>, but we can orchestrate it better, with better design. To do so, we <strong>query user’s intent</strong> and allow them to choose filters of interest, without overwhelming them with all available options.</p> <h2 id="query-constructor-pattern" tabindex="-1">Query Constructor Pattern <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-filtering/#query-constructor-pattern">#</a></h2> <p><a href="https://markets.ft.com/data/equities?expandedScreener=true">Financial Times Screener</a> uses an alternative approach for their equity screener. Rather than showing all filters at once, Financial Times groups all filters into click-through menus along with <strong>autocomplete suggestions</strong>. The UI queries user’s intent first, and <strong>hides complexity by default</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://markets.ft.com/data/equities?expandedScreener=true"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/complex-filtering/complex-filtering-FT.jpg" alt="A screenshot of a FT Screener: the screener that doesn’t show it all (by default)" width="550" height="523" loading="lazy"> </a> <figcaption><p><a href="https://markets.ft.com/data/equities?expandedScreener=true">FT Screener:</a> the screener that doesn’t show it all (by default).</p> </figcaption> </figure> <p>Users have to <strong>specify relevant criteria first</strong>, and add them to the list of selected filters before changing them in all the fine detail. Additionally, FT suggests <strong>predefined equity screens</strong> in the sidebar that people can use and adjust if needed. No drop-downs in use here.</p> <figure class="c-article__image u-flow--xs"> <a href="https://markets.ft.com/data/equities?expandedScreener=true"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/complex-filtering/complex-filtering-FT-distribution-chart.jpg" alt="A screenshot of a FT Screener with a large click-through menu of filters that can be added to the list." width="550" height="237" loading="lazy"> </a> <figcaption><p><a href="https://markets.ft.com/data/equities?expandedScreener=true">FT Screener</a>, with a large click-through menu of filters that can be added to the list.</p> </figcaption> </figure> <h2 id="horizontal-layers" tabindex="-1">Horizontal Layers <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-filtering/#horizontal-layers">#</a></h2> <p>A common way to deal with complex filters is to allow users to <strong>construct filtering queries</strong>, rather than showing all available filters at once. While FT uses click-through-menus, we can also use a similar pattern to allow users to build their queries step-by-step in a sort of <strong>workflow constructor pattern</strong>, with one row indicating every applied filter.</p> <figure class="c-article__image u-flow--xs"> <a href="https://finance.yahoo.com/screener/new"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/complex-filtering/complex-filtering-constructor-yahoo.jpg" alt="A screenshot of a Yahoo! Screener, with a workflow constructor-alike UI." width="550" height="373" loading="lazy"> </a> <figcaption><p><a href="https://finance.yahoo.com/screener/new">Yahoo! Screener</a>, with a workflow constructor-alike UI.</p> </figcaption> </figure> <p><a href="https://finance.yahoo.com/screener/new">Yahoo! Finance Screener</a> isn’t very different from FT. It also allows users to select the filters that they find relevant for them first, and the define the specifics for each of the filter. Rather than using click-through-menus, here overlays are used, along with search for every type of filter as well.</p> <h2 id="filtering-overlay" tabindex="-1">Filtering Overlay <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-filtering/#filtering-overlay">#</a></h2> <p><a href="https://support.airtable.com/hc/en-us/articles/360021501754-Getting-started-customizing-your-first-view">Airtable</a> uses a very similar pattern, with the filtering overlay appearing on top of the data table. As filters are added, the overlay grows vertically, making best use of available horizontal space — each filter takes up the width of the entire content area.</p> <figure class="c-article__image u-flow--xs"> <a href="https://support.airtable.com/hc/en-us/articles/360021501754-Getting-started-customizing-your-first-view"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/complex-filtering/complex-filtering-vertical-constructor-airtable.jpg" alt="A screenshot of a Airtable's overlay which allow users to construct their filtering queries." width="550" height="296" loading="lazy"> </a> <figcaption><p><a href="https://support.airtable.com/hc/en-us/articles/360021501754-Getting-started-customizing-your-first-view">Airtable</a> uses an overlay to allow users to construct their filtering queries.</p> </figcaption> </figure> <h2 id="trigger-condition-action" tabindex="-1">Trigger Condition Action <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-filtering/#trigger-condition-action">#</a></h2> <p>Sometimes we end up with a slightly different kind of filtering though. You might have a trigger, that, based on a particular condition, might prompt a particular action. Rather than just filtering data, we define <strong>automated actions</strong>. The patterns listed above could be applied here, too.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.smartsheet.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/complex-filtering/complex-filtering-vertical-constructor-smartsheet.png" alt="A screenshot of a Smartsheet with a visual constructor for triggering actions." width="550" height="310" loading="lazy"> </a> <figcaption><p><a href="https://www.smartsheet.com/">Smartsheet</a> with a visual constructor for triggering actions.</p> </figcaption> </figure> <p><a href="https://www.smartsheet.com/">Smartsheet</a> displays the constructor overlay in a <strong>separate view</strong>, with each trigger, condition and action receiving a dedicated collapsible card. Items of the same kind are <a href="https://community.smartsheet.com/discussion/68888/create-workflow-with-3-different-conditions-and-actions">grouped</a> as they are added to the list. So everything finds its place in the UI. It’s complex, but not necessarily complicated.</p> <figure class="c-article__image u-flow--xs"> <a href="https://ifttt.com/explore/welcome_to_ifttt"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/complex-filtering/complex-filtering-condition-if-then-else.png" alt="IFFFT is simple: there are no drop-downs as users explore filters by clicking through cards." width="550" height="424" loading="lazy"> </a> <figcaption><p><a href="https://ifttt.com/explore/welcome_to_ifttt">IFFFT</a> is simple: there are no drop-downs as users explore filters by clicking through cards. <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/complex-filtering/complex-filtering-condition-if-then-else.png">Large view</a>.</p> </figcaption> </figure> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/complex-filtering/#wrapping-up">#</a></h2> <p>Filtering can be complicated if we expose all complexity to our users at once. However, more often than not it’s just unnecessary. We can allow users to choose what filters are relevant for them first, and show these filters when requested. We could use the same approach for <a href="https://accessibility.blog.gov.uk/2021/09/21/an-update-on-the-accessibility-of-conditionally-revealed-questions/">forms</a>, too.</p> <p>Of course the techniques listed above might not be an ideal solution at all times, but if we have a lot of options, we can use it to reduce complexity of the interface, while leaving its functionality in tact. And that’s a good start.</p> Mon, 26 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/complex-filtering/ Infinite Scroll UX https://smart-interface-design-patterns.com/articles/Infinite-scroll/ <p>We all have our opinions about infinite scroll, and usually not very good ones. This has a number of good reasons.</p> <p>With infinite scroll, the sheer number of options is often overwhelming. There is no easy way to navigate between the “old” and “new” segments in the list. We don’t have any control about when and how many items appear. We can’t really <strong>bookmark a location</strong> and return to it later. The scrollbar keeps jumping. The footer is hard to reach. And there are plenty of accessibility and performance issues that go along with it.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/Infinite-scroll/Image%20credit:%20[Yogev%20Ahuvia.](https://www.smashingmagazine.com/2013/05/infinite-scrolling-lets-get-to-the-bottom-of-this/)"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/infinite-scroll/pagination-infinite-scroll.jpg" alt="Pagination and infinite scroll" width="500" height="210" loading="lazy"> </a> </figure> <p>All of these issues are just <strong>poor usability</strong>. So it’s not surprising that we often disregard infinite scroll as a fashionable technique which produces more problems than solutions.</p> <p>However, usability tests show that every now and again <strong>infinite scroll can work well</strong>, especially when users browse on a site a lot. The speed of displaying results is significantly higher, and so is engagement. Can we make infinite scroll better?</p> <p>Yes, we can.</p> <h2 id="bookmarking-a-position" tabindex="-1">Bookmarking a Position <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/Infinite-scroll/#bookmarking-a-position">#</a></h2> <p>The easiest way to improve infinite scroll is by marking the breaks between “new” and “old” items in the list. When a new batch comes in, we separate the items visually and allow users to jump to the position of the list on next visit.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.crutchfield.com/S-iD71pnRLXhs/g_349050/All-Headphones.html?&pg=2"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/infinite-scroll/adding-white-space.png" alt="Adding white space" width="500" height="475" loading="lazy"> </a> <figcaption><p>We could allow users to mark the current position in the list and continue browsing later. A mock-up, based on <a href="https://www.crutchfield.com/S-iD71pnRLXhs/g_349050/All-Headphones.html?&amp;pg=2">Crutchfield.com.</a></p> </figcaption> </figure> <p>We could also allow them to <em>copy a link to the current position</em>. And perhaps even send it via email-so we could send them a reminder later, too.</p> <h2 id="footer-reveal" tabindex="-1">Footer Reveal <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/Infinite-scroll/#footer-reveal">#</a></h2> <p>We could integrate a footer reveal: a little helper that would <strong>stay persistent</strong> at the bottom right bar, and display the footer if needed while the rest of the page uses infinite scroll. You can find a good example on <a href="https://popmeals.com.my/menu">Popmeals</a> (no infinite scroll in use at the moment).</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/infinite-scroll/sticky-footer.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/infinite-scroll/sticky-footer.png" alt="Sticky footer" width="500" height="300" loading="lazy"> </a> </figure> <h2 id="combine-pagination-and-infinite-scroll" tabindex="-1">Combine Pagination and Infinite Scroll <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/Infinite-scroll/#combine-pagination-and-infinite-scroll">#</a></h2> <p>As users scroll down a page and items are loaded in, we can present it as <strong>dynamic pagination</strong> to users (see <a href="https://www.pepper.pl/">Pepper.pl</a>). On scroll, the URL of the page changes and the page number is updated in the sticky bottom bar. Users can also navigate to a specific page in a pagination drop-down. And of course an accordion opens up a footer on tap or click as well.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.pepper.pl/dlaciebie?page=3"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/infinite-scroll/combining-pagination-and-infinite-scroll.jpg" alt="Combining pagination and infinite scroll" width="500" height="398" loading="lazy"> </a> <figcaption><p>Combining pagination and infinite scroll on <a href="https://www.pepper.pl/dlaciebie?page=3">Pepper.pl</a></p> </figcaption> </figure> <h2 id="scrollbar-range-intervals" tabindex="-1">Scrollbar Range Intervals <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/Infinite-scroll/#scrollbar-range-intervals">#</a></h2> <p>We can make scrollbars more helpful by adding <strong>dynamic labels</strong> that are spaced out vertically. These would indicate to users where they current are and where they can jump to. As users keep scrolling down, the labels would be shifting as the scrollbar is growing. Could be used by any criteria a user has chosen to sort the items by. Mock-up by <a href="https://baymard.com/">Baymard Institute</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/infinite-scroll/scrollbar-range-intervals.jpg"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/infinite-scroll/scrollbar-range-intervals.jpg" alt="Scrollbar range intervals" width="500" height="408" loading="lazy"> </a> </figure> <h2 id="pinning-sections-on-a-mini-map" tabindex="-1">Pinning Sections on a Mini-Map <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/Infinite-scroll/#pinning-sections-on-a-mini-map">#</a></h2> <p>We could make it even more useful by <strong>allowing users to pin, or bookmark</strong>, areas of interest in the list, so they can return to favorites faster. An interesting prototype of such an experience is <a href="https://uiw.tf/minimap">Minimap experiment</a> (currently works only in Firefox), created by Rauno Freiberg, along with many other <a href="https://uiw.tf/">wonderful experiments</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/infinite-scroll/mini-map-pattern.gif"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/infinite-scroll/mini-map-pattern.gif" alt="Mini-map pattern" width="500" height="627" loading="lazy"> </a> </figure> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/Infinite-scroll/#wrapping-up">#</a></h2> <p>With these techniques, we’ve solved most problems that infinite scroll is known for. However, it might seem like a lot of work just to make <a href="https://www.nngroup.com/articles/infinite-scrolling/">infinite scroll better. Well, infinite scroll is not for every website</a>, and if it is used, it always needs to be complemented with proper <strong>filtering, sorting and search</strong>.</p> <p>The ideas highlighted here are just that-ideas. Some of them might fail miserably in your tests, while others might perform fairly well. But: if you absolutely need to make infinite scroll work, there are <strong>ways and workarounds</strong> to do so-it’s just not as straightforward as it might appear at first.</p> Mon, 26 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/Infinite-scroll/ Navigation Queries UX https://smart-interface-design-patterns.com/articles/navigation-queries-ux/ <p>Gerry McGovern once <a href="https://gerrymcgovern.com/books/world-wide-waste/">rightfully suggested</a> that more people have been on the <strong>top of Mount Everest</strong> than have been to the 10th page of Google’s search results. This is probably true, yet usually our interfaces provide long lists of options, rather than a guidance to where the answers are.</p> <figure class="c-article__image u-flow--xs"> <a href="https://twitter.com/marcinignac/status/1400806180797231104"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/navigation-queries-ux/01-better-navigation-design-shortcuts.png" alt="A screenshot of a Search vs Explore" width="550" height="309" loading="lazy"> </a> <figcaption><p>Search usually returns a list of pages, but instead, we could display answers or guide people to these answers. Via <a href="https://twitter.com/marcinignac/status/1400806180797231104/photo/1">Marcin Ignac</a>.</p> </figcaption> </figure> <p>As we try to solve a task at hand, we wander from one page to another, surveying the landscape with keywords, clicks, taps and selections. We rarely get the answers we need immediately though; instead, we <strong>discover the answers</strong> in a long-winded journey between pages and sub-navigation items.</p> <p>It works, but it’s slow. To minimize the <strong>distance between intent and action</strong>, we can just ask users what they want and then assist users in their journey. That's when navigation queries come into play.</p> <h2 id="navigation-queries" tabindex="-1">Navigation Queries <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/navigation-queries-ux/#navigation-queries">#</a></h2> <p>The idea behind navigation queries is not new. We’ve seen all kinds of variations of madlib pattern and <a href="https://www.jroehm.com/2014/01/26/ui-pattern-natural-language-form/">natural language forms</a>, all of which present a human-friendly way to input their intent without having to use input fields or navigation menus.</p> <p>The idea is to create a <strong>“query constructor” for user’s intent</strong>. In our interface, we could show options to choose from and based on one answer, provide further options, all the way to the point where we bring a user to the page of interest.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.ao.de/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/navigation-queries-ux/02-ao-navigation-query.jpg" alt="A screenshot of ao.de" width="550" height="310" loading="lazy"> </a> <figcaption><p>The navigation query pattern on <a href="https://www.ao.de/">AO.de</a> provides a shortcut for users to jump from the homepage to a specific product of interest. Once an option is selected, another drop-down appears, allowing them to specify their intent even further.</p> </figcaption> </figure> <p>This experience mimics the <strong>drill-down navigation with multiple levels</strong>. Yet the difference is that users are making small decisions, one after another, without being confronted with the entire navigation at every step of the way.</p> <figure class="c-article__image u-flow--xs"> <a href="https://commonbond.co/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/navigation-queries-ux/03-navigation-query-commonbond.jpg" alt="A screenshot of commonbond" width="550" height="164" loading="lazy"> </a> <figcaption><p>In the past, a navigation query pattern on <a href="https://commonbond.co/">Commonbond.co</a> was providing a shortcut for users to jump to a relevant page.</p> </figcaption> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://monday.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/navigation-queries-ux/04-navigation-query-monday-onboarding.jpg" alt="A screenshot of Monday.com" width="550" height="227" loading="lazy"> </a> <figcaption><p><a href="https://monday.com/">Monday.com</a> asks prospect customers to specify their interests, and then drives them to an onboarding flow that fits their needs best.</p> </figcaption> </figure> <h2 id="a-z-index" tabindex="-1">A-Z Index <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/navigation-queries-ux/#a-z-index">#</a></h2> <p>One way to address navigation issues on large websites is by using an <strong>A-Z Index pattern</strong>. We identify the <a href="https://alistapart.com/article/what-really-matters-focusing-on-top-tasks/">top tasks</a> that users perform on the site. For each task, we define a set of keywords that they associate the task with.</p> <p>We run <a href="https://maze.co/guides/ux-research/tree-testing/">tree testing</a> to ensure that they can find the pages that they are looking for. And then we surface the A-Z catalog of questions on a single page.</p> <figure class="c-article__image u-flow--xs"> <a href="https://international.au.dk/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/navigation-queries-ux/05-navigation-query-A-Z-aarhus.jpg" alt="A screenshot of international.au.dk" width="550" height="342" loading="lazy"> </a> <figcaption><p>Visitors can quickly jump from any page to any other page on the [Aarhus University website](https://international.au.dk/</p> </figcaption> </figure> <p><a href="https://international.au.dk/">Aarhus University</a> highlights the A-Z index as part of the global navigation. Visitors can choose their role first, then choose a letter, and then explore the overview of all options available, jumping to a specific department or faculty.</p> <p>Most importantly, visitors can <strong>quickly jump from any page to any other page</strong>. In this case, A-Z index is permanently accessible in the header of each page. That’s not something other navigation patterns provide out of the box.</p> <h2 id="tap-ahead-autocomplete" tabindex="-1">Tap-Ahead Autocomplete <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/navigation-queries-ux/#tap-ahead-autocomplete">#</a></h2> <p>We tend to use autocomplete to highlight <strong>relevant keyword suggestions</strong>. Sometimes we also drive users directly to relevant categories, specific products or even collections of items or records. We can do even a little bit more than that.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.mediamarkt.de/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/navigation-queries-ux/06-navigation-query-chevron-issue.jpg" alt="A screenshot of mediamarkt.de" width="550" height="331" loading="lazy"> </a> <figcaption><p>Have you ever clicked on an arrow on the right hand side? That’s tap-ahead autocomplete in action, on <a href="https://www.mediamarkt.de/">Mediamarkt</a></p> </figcaption> </figure> <p>With tap-ahead autocomplete, we allow users to <strong>construct a query based on autocomplete suggestions</strong>. As users hit the autocomplete field or start typing a keyword, suggestions appear. Users can either jump directly to the keyword, or append frequently used keyword combinations to their query, hence “constructing” their query based on the suggestions.</p> <p>Tap-ahead <strong>minimizes the amount of effort</strong> needed for typing, but also drives customers to relevant results and gives them confidence that they are on the right track.</p> <figure class="c-article__image u-flow--xs"> <a href="https://stackoverflow.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/navigation-queries-ux/07-query-constructor-stackoverflow.jpg" alt="A screenshot of stackoverflow" width="550" height="333" loading="lazy"> </a> <figcaption><p><a href="https://stackoverflow.com/">Stackoverflow</a> allows its users to specify a query right in the search box, without having to rely on filters, tags or any other modes of navigation.</p> </figcaption> </figure> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/navigation-queries-ux/#wrapping-up">#</a></h2> <p>When designing navigation, we often rely on predictable patterns. That’s a good thing as our outcome is usually predictable, familiar and hence obvious to our customers.</p> <p>However, sometimes navigation might be just a bit too tiring and time-consuming, and in such cases we can use <strong>navigation queries</strong> to pick up our users whenever they are and gently guide them toward the page that is of interest to them. They are unlikely to help you resolve all IA issues on the site, but they could help users get where they want go be, faster.</p> <p>A much more detailed article about all the fine details of carousels will be published in <a href="https://www.smashingmagazine.com/">Smashing Magazine</a> next week, so please take a look if you are interested.</p> Tue, 06 Dec 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/navigation-queries-ux/ Pricing Plans UX https://smart-interface-design-patterns.com/articles/pricing-plans/ <p>We often dismiss <strong>pricing plans</strong> as if they were quite straightforward to design. In fact, how difficult can it be? We just have a few options with a few features marked as available or unavailable, the pricing, and a few CTAs along the way.</p> <p>Problems occur at latest when we think about <strong>mobile</strong>, with pricing plans becoming difficult to explore and differences in plans becoming difficult to decipher. Let’s change that.</p> <h2 id="focus-on-roles-and-key-highlights" tabindex="-1">Focus on Roles and Key Highlights <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/pricing-plans/#focus-on-roles-and-key-highlights">#</a></h2> <p>Every pricing plan starts with a description of features. But when there are hundreds of features, making sense of them is becoming difficult and overwhelming. Usually it’s not really necessary. Instead, we could try to indicate to customers <strong>who the plan is designed for</strong>. Plus, we could add a show/hide pattern to show (and hide) more features if needed.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/9e454072-1d7d-bb41-1aeb-2237699f6f90.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/pricing-plans/01-pricing-plans-key-highlights.png" alt="A screenshot of a Kissflow, Airtable, Chargebee price plans" width="550" height="339" loading="lazy"> </a> <figcaption><p>We can also focus on key highlights, key differences and intended roles for each plan. <a href="https://kissflow.com/workflow/pricing/">Kissflow</a>, <a href="https://airtable.com/pricing">Airtable</a>, <a href="https://www.chargebee.com/pricing/">Chargebee</a>.</p> </figcaption> </figure> <p>On <a href="https://kissflow.com/workflow/pricing/">Kissflow</a>, no details are displayed at all: instead each plan is focused around a defined role. On <a href="https://airtable.com/pricing">Airtable</a>, users can show/hide more features if interested. And on <a href="https://www.chargebee.com/pricing/">Chargebee</a>, a separate overlay with all features shows up when clicked. Neither design shows all features by default.</p> <figure class="c-article__image u-flow--xs"> <a href="https://gusto.com/product/pricing"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/pricing-plans/02-pricing-plans-gusto-accordions.png" alt="A screenshot of Gusto price plan" width="550" height="541" loading="lazy"> </a> </figure> <p>For each plan, <a href="https://gusto.com/product/pricing">Gusto</a> reveals plan details within an <strong>accordion on click/tap</strong>. The main focus is on key features and the pricing. Everything is accessible, but only if needed. A good reference example to keep close.</p> <h2 id="avoid-horizontal-feature-comparison-tables" tabindex="-1">Avoid Horizontal Feature Comparison Tables <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/pricing-plans/#avoid-horizontal-feature-comparison-tables">#</a></h2> <p>We've looked into <a href="https://www.smashingmagazine.com/2017/08/designing-perfect-feature-comparison-table/">feature comparison tables</a> already, but in generalm horizontal scroll for tables is <a href="https://www.nngroup.com/articles/scrolling-and-scrollbars/">quite difficult</a> to get right. Users tend to get lost in a large table, often not knowing what represents what and what exactly they are looking at.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/aedc8730-62b7-9139-f5f1-bff2c3fbd453.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/pricing-plans/03-pricing-plans-full-feature-comparison-table.png" alt="Showing a full feature comparison table can be difficult to get right" width="550" height="510" loading="lazy"> </a> <figcaption><p>Showing a full feature comparison table can be difficult to get right.</p> </figcaption> </figure> <p>In <a href="https://www.contentful.com/pricing/">Contentful</a> and <a href="https://www.hotjar.com/pricing/">Hotjar</a> above, it's not easy to understand what features we are comparing. There is no sticky bar referring to a particular plan, so it's quite easy to get lost. In general, it's worth testing alternatives to this kind of layout.</p> <h2 id="grouping-plans-with-tabs-or-accordions" tabindex="-1">Grouping Plans With Tabs or Accordions <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/pricing-plans/#grouping-plans-with-tabs-or-accordions">#</a></h2> <p>We could allow users to navigate through the different features of different plans with <strong>accordions or sticky tabs</strong>. While it's not ideal for comparing, it's useful to allow users to quickly jump between the plans and find a good fit for them.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/67ff549c-ff01-57e5-c0de-da61da9c5dda.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/pricing-plans/04-pricing-plans-grouping-features-as-accordions.png" alt="Showing a full feature comparison table can be difficult to get right" width="550" height="352" loading="lazy"> </a> <figcaption><p>We can neatly group features with tabs or accordions. It doesn't make features easier to compare, but makes plans easier to understand.</p> </figcaption> </figure> <p><a href="https://asana.com/pricing">Asana</a> features accordions, with each open card displaying the pricing and some key features of each plan. On <a href="https://segment.com/pricing/">Twilio Segment</a>, a <strong>visualization is used to highlight features</strong> of Free, Team and Business plans. And on <a href="https://www.cloudflare.com/plans/">Cloudflare</a>, sticky tabs and a feature selector provide jumps between plans and for features within each plan.</p> <h2 id="comparing-without-tables" tabindex="-1">Comparing Without Tables <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/pricing-plans/#comparing-without-tables">#</a></h2> <p>If you have a complex set of pricing plans, or need a feature comparison side-by-side, we could use a <strong>customizable table</strong> to allow users to select two plans at a time. That's what <a href="https://www.dropbox.com/plans">Dropbox</a> does on their pricing page. <a href="https://www.zendesk.com/pricing/">Zendesk</a> attempts to show all 4 pricing plans with accordions for each feature. This could be an option too.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/53f1cdd1-b758-455e-35ff-5847801a12cd.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/pricing-plans/05-pricing-plans-showing-two-options-at-a-time.png" alt="A screenshot of a Dropbox and Zendesk price plans" width="550" height="537" loading="lazy"> </a> <figcaption><p>Comparison is possible, but can be quite challenging with more than 2 options at a time. <a href="https://www.dropbox.com/plans">Dropbox</a> and <a href="https://www.zendesk.com/pricing/">Zendesk</a>.</p> </figcaption> </figure> <h2 id="customizing-plans" tabindex="-1">Customizing Plans <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/pricing-plans/#customizing-plans">#</a></h2> <p>Not many people prefer the hard work on comparing features in a pricing plan. To reduce the amount of data to display, we could ask users what is it that they are interested in, ask them to specify their intent and <strong>suggest a recommended plan</strong> based on their preferences.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/8d9a74c2-099a-f302-93db-fcf18900817d.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/pricing-plans/06-pricing-plans-customizing-plans.png" alt="A screenshot of a Jira and Intercom price plans" width="550" height="527" loading="lazy"> </a> <figcaption><p>No need for guess if we can ask for intent. This helps us nudge users towards a best-fit plan for them.</p> </figcaption> </figure> <p><a href="https://www.hioscar.com/individuals">Jira</a> and <a href="https://monday.com/">Monday.com</a> ask for the type of work and the number of users to suggest a plan, and <a href="https://www.intercom.com/pricing">Intercom</a> suggests plans based on the type of business that is interested in purchasing one of the plans.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/pricing-plans/#wrapping-up">#</a></h2> <p>Not all of these options will work of course, but they are great solutions to keep nearby when you want to test a few options for that magical landing page. It's probably a good idea to replace feature comparison tables on mobile with a combination of <strong>tabs and accordions</strong>, and nudge users towards an option that would be a best fit based on their preferences.</p> Wed, 30 Nov 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/pricing-plans/ Back Button UX https://smart-interface-design-patterns.com/articles/back-button-ux/ <p>There aren’t many things in usability testing that keep showing up over and over again. One of them is the anxiety people experience when they have to go back. Users generally <strong>don’t have much trust in the browser’s “Back” button</strong>, and for a good reason. We’ve all been in a situation when a browser’s “Back” button just didn’t work as expected.</p> <p>For example, if you happen to be in a multi-step process such as checkout, the “Back” button would often bring you to the <strong>very start of the process</strong>, rather than to the previous page, with all your data evaporated in thin air. And sometimes we have to retype sensitive data such as credit card number multiple times, because it can’t be stored for security reasons.</p> <h2 id="fear-of-the-browsers-back-button" tabindex="-1">Fear of the Browser’s &quot;Back&quot; Button <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/back-button-ux/#fear-of-the-browsers-back-button">#</a></h2> <p>Surely, <a href="https://baymard.com/blog/back-button-expectations">users rely extensively on the browser’s “Back” button</a>. Yet for the reasons mentioned above, frequently users seem to be <strong>thinking twice</strong> before actually hitting that button. Mostly, they are just afraid of losing their data or the state of the page in which they currently are — and it’s understandable, since sometimes it’s not clear where the browser will bring a user to.</p> <figure class="c-article__image u-flow--xs"> <a href="https://baymard.com/blog/back-button-expectations"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/back-button-ux/back-button-amazon-usability-test.jpg" alt="From a user interview: How do I get back? Just press ‘Back’. Navigation, this isn’t great to be honest. And now it’s brought me back to the women’s. OK. Don’t like this. via Baymard Institute" width="500" height="320" loading="lazy"> </a> <figcaption><p>From a user interview: “How do I get back? Just press ‘Back’. Navigation, this isn’t great to be honest. And now it’s brought me back to the women’s. OK. Don’t like this.” Via <a href="https://baymard.com/blog/back-button-expectations">Baymard Institute</a>.</p> </figcaption> </figure> <p>That’s why it’s not uncommon to see people taking <strong>screenshots of the current page</strong>, or opening the same page in another tab to ensure that their data (at least for the current page) is still available in the browser.</p> <p><strong>Severe problems</strong> start showing up when we introduce overlays, anchor links, image galleries and dynamic views into our interfaces, or change URLs as users scroll through the page. For example, if a large overlay, e.g. for editing a table, appears on click, where should the “Back” button bring a user to? And what if a user clicks through an image gallery in an article?</p> <h2 id="always-close-large-overlays-with-the-back-button" tabindex="-1">Always Close Large Overlays With The “Back” Button <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/back-button-ux/#always-close-large-overlays-with-the-back-button">#</a></h2> <p><a href="https://baymard.com/blog/back-button-expectations">Research shows</a> that the more different a new view is visually, the more likely it is to be perceived as a <strong>separate page</strong> by users. With it, comes the expectation that the “Back” button will bring a user to the previous “page”, even although technically it might not really be a separate page.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/back-button-ux/For%20large%20overlays,%20it%E2%80%99s%20always%20a%20good%20idea%20to%20have%20the%20%E2%80%9CBack%E2%80%9D%20button%20closing%20the%20modal,%20rather%20than%20retuning%20a%20user%20to%20a%20previous%20page.%20Image%20courtesy:%20[Eric%20Bailey](https://css-tricks.com/focus-management-and-inert/)."> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/back-button-ux/back-button-modal-window.jpg" alt="For large overlays, it’s always a good idea to have the “Back” button closing the modal, rather than retuning a user to a previous page. Image courtesy: Eric Bailey." width="500" height="300" loading="lazy"> </a> </figure> <p>This goes for the product list appearing after filtering and sorting, for accordion checkouts, but could also be helpful for anchor links and <strong>expanded and truncated content</strong> — especially if the sections are lengthy. In these situations it’s <a href="https://www.nngroup.com/articles/overuse-of-overlays/">reasonable</a> to <strong>align the browser’s “Back” button behavior</strong> to match user’s expectations — with the <a href="https://developer.mozilla.org/en-US/docs/Web/API/History_API">History API</a>.</p> <p>Surely we don’t want to <strong>pollute user’s history</strong> with unnecessary states or pages though. When a user clicks through an image gallery in an article, we probably shouldn’t add every single image to user’s history as it will make it much harder to get to the “actual” previous page.</p> <p>In this case, a <strong>state of the carousel</strong> is rarely seen as a “different page”. As long as the page doesn’t change significantly, we should avoid adding states to user’s history stack. This goes for checkboxes, drop-down menus and dynamically injected sections as well, for example.</p> <h2 id="the-position-of-the-back-button" tabindex="-1">The Position of the “Back” Button <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/back-button-ux/#the-position-of-the-back-button">#</a></h2> <p>Even although we’ve aligned the expectations for the “Back” button behavior, some users will still be worried if the “Back” button actually works as expected. A good way to resolve this issue is by adding a <strong>custom, form-specific “Back”</strong> link or a “Back” button within your interface.</p> <figure class="c-article__image u-flow--xs"> <a href="https://twitter.com/steveschoger/status/1159894497066659841"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/back-button-ux/back-button-primary-secondary-tertiary.jpg" alt="The Back button usually appears like a secondary button, not the primary one." width="500" height="150" loading="lazy"> </a> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://twitter.com/steveschoger/status/1159894497066659841"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/back-button-ux/back-button-positions.jpg" alt="Steve Schoger’s mock-up for buttons placement. However, where should the “Back” button be?" width="550" height="444" loading="lazy"> </a> <figcaption><p>Steve Schoger’s <a href="https://twitter.com/steveschoger/status/1159895731286790147">mock-up</a> for buttons placement. So where should the “Back” button be here?</p> </figcaption> </figure> <p>Steve Schoger <a href="https://twitter.com/steveschoger/status/1159895731286790147">suggests</a> that whether the buttons are aligned to the right, or to the left, it’s always a good idea to <strong>put the primary action on the outer side</strong>. This means that the “Back” button — which would also be visually less heavy — would be residing next to the “Next” button.</p> <h2 id="put-the-back-button-above-the-form" tabindex="-1">Put The “Back” Button Above The Form <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/back-button-ux/#put-the-back-button-above-the-form">#</a></h2> <p>Indeed, the example above is a quite common pattern that will usually work well. However, in my experience, this would also cause trouble as every now and again users will accidentally <strong>click on a wrong button</strong> — mostly because these buttons are located too close to each other.</p> <p>Therefore, I’d always argue that placing the buttons as <strong>far away</strong> from each other as possible is an idea that’s worth testing.</p> <figure class="c-article__image u-flow--xs"> <a href="https://adamsilver.io/blog/where-to-put-buttons-on-forms/#put-the-back-button-above-the-form"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/back-button-ux/back-button-above-the-form.jpg" alt="Where should the back button live? At the bottom of the form or above the form?" width="550" height="223" loading="lazy"> </a> <figcaption><p>Left: “Back” button at the bottom of the page; Right: Back button above the form. The big question is: which pattern performs better?</p> </figcaption> </figure> <p>Adam Silver <a href="https://adamsilver.io/blog/where-to-put-buttons-on-forms/#put-the-back-button-above-the-form">suggests</a> to put the “Back” button above the form, as designed by Joe Lanman, a designer at the Gov.uk. Ultimately, the “Back” button is then in a <strong>similar place</strong> to where most browsers put the browser's “Back” button.</p> <p>According to Joe, the “Back” button is probably not needed once the user fills out the form — “if they fill out the form and click back, they will <strong>lose their answers</strong>”.</p> <h2 id="back-should-look-like-an-interactive-element" tabindex="-1">“Back” Should Look Like An Interactive Element <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/back-button-ux/#back-should-look-like-an-interactive-element">#</a></h2> <p>It’s worth emphasizing that the “Back” button, when positioned above the form, should actually look like an <strong>interactive element</strong>. It can be an underlined link or a standalone button that actually looks like a button, for example.</p> <p>In my experience, if the &quot;Back” link blends in with the rest of the page, users sometimes can’t find a way to go back and usually start searching at the bottom of the page. So to make it work, the “Back” button <strong>should be visible and noticeable</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.registertovote.service.gov.uk/register-to-vote/country-of-residence"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/back-button-ux/back-button-displayed-as-link.jpg" alt="A screenshot of GOV.UK" width="500" height="451" loading="lazy"> </a> </figure> <p>On <a href="https://www.registertovote.service.gov.uk/register-to-vote/nationality">Gov.uk</a>, the “Back” link is located at the very top of the page, underlined, appearing as an interactive element — in a place where one would usually expect breadcrumbs. There is only one single prominent button, and that’s the “Continue” button.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.fully.com/en-eu/jarvis-adjustable-height-desk-laminate.html"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/back-button-ux/back-button-displayed-as-arrow.jpg" alt="A screenshot of fully.com" width="500" height="306" loading="lazy"> </a> </figure> <p>On <a href="https://www.fully.com/en-eu/jarvis-adjustable-height-desk-laminate.html">Fully</a>, the “Back” button and the “Next” button are positioned <strong>very far from each other</strong>. Users can go back by tapping on a back-arrow all the way on the left outer edge of the screen, while they continue with the process in the bottom right corner of the screen. That’s a safe way to eliminate mistaps or misclicks.</p> <p>However, we need to make sure that users can actually <strong>find the way back</strong> in the middle of the process if they need to.</p> <h2 id="group-back-states-as-snapshots" tabindex="-1">Group Back States As Snapshots <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/back-button-ux/#group-back-states-as-snapshots">#</a></h2> <p>Sometimes you <strong>might not need a “Back” button</strong> at all. Surely we need to support browser’s “Back” button behavior properly anyway, but instead of a custom way to go back, we can allow users to go back to relevant options only. For example, with a <strong>dedicated snapshots area for states</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.fender.com/en-US/mod-shop/mod-shop-stratocaster/0181900706.html"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/back-button-ux/back-button-snapshot.jpg" alt="A screenshot of https://www.fender.com/" width="500" height="300" loading="lazy"> </a> </figure> <p>On <a href="https://www.fender.com/en-US/mod-shop/mod-shop-stratocaster/0181900706.html">Fender Mod Shop</a>, you can create “snapshots” as you are configuring a model. You are always driven forward to explore and customize, with an option to go back to a specific version that you saved as a snapshot.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/back-button-ux/#wrapping-up">#</a></h2> <p>The way we, as designers and developers, see our website, isn’t necessarily the same way of how our users perceive it. The more different the views are from one interaction to another, the more likely users are to perceive these views as <strong>“separate things”</strong>. Users rely on a “Back” button to go back, but often we mismatch their expectations, bringing frustration and abandonment.</p> <p>We surely need to <strong>align user’s expectations</strong> with the “Back” button behavior as a very minimum. Additionally, it’s a good idea to add a custom “Back” button to our interfaces — and perhaps place them far away from “Next” or “Continue” buttons, perhaps at the <strong>top of the page</strong>.</p> <p>While it works very well in some scenarios, it might not work well for you. In that case, try to avoid placing the buttons <strong>too close to each other</strong> and make sure they look different enough visually. One could be a link and the other could be a button. What seems to be a small detail might pay off big time and result in lower abandonment and higher conversion.</p> <h2 id="useful-resources" tabindex="-1">Useful Resources <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/back-button-ux/#useful-resources">#</a></h2> <ul> <li><a href="https://baymard.com/blog/back-button-expectations">Back Button Expectations</a> by Baymard Institute,</li> <li><a href="https://smart-interface-design-patterns.com/articles/back-button-ux/">Designing With the Web in Mind</a>, a wonderful article on back button, URL design, keyboard shortcuts, and other things we often forget about, by Chloe Sanderson.</li> </ul> Sat, 19 Nov 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/back-button-ux/ Usability Pitfalls Of Carousels UX https://smart-interface-design-patterns.com/articles/better-carousel-ux/ <p><strong>Carousels</strong> don’t have a good reputation, and rightfully so. They have plenty of accessibility issues, often exhibit low click-through rates and people frequently scroll past through them. Add to it small progress dots with tiny tap areas, barely visible labels and a bit of parallax, and you have a quite <strong>troublesome</strong> design pattern in your hands.</p> <figure class="c-article__image u-flow--xs"> <a href="https://teatrlalka.pl/en/spektakle/rycerz-gwiazdy-wigilijnej"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/better-carousel-ux/carousel-inset-lalka.jpg" alt="A screenshot of a Teatr Lalka Carousels" width="550" height="301" loading="lazy"> </a> <figcaption><p><a href="https://teatrlalka.pl/en/spektakle/rycerz-gwiazdy-wigilijnej">Teatr Lalka</a>, a puppet theater from Poland, with a creative, dynamic, and accessible approach to highlighting the position in the carousel.</p> </figcaption> </figure> <p>However, <a href="https://www.smashingmagazine.com/2015/02/carousel-usage-exploration-on-mobile-e-commerce-websites/">carousels can be quite effective</a>, especially when we want to <strong>highlight key features or options</strong>, but lack space to display them all at once. They work well when users want to explore plenty of options, browse through reviews, dive into image galleries or closely examine product features.</p> <p>So how do we <strong>design better carousels</strong>? We provide better context by replacing progress dots with labels, thumbnails and better prev/next-buttons.</p> <h2 id="replace-progress-dots-with-better-labels" tabindex="-1">Replace Progress Dots With Better Labels <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/better-carousel-ux/#replace-progress-dots-with-better-labels">#</a></h2> <p>We are very much used to <strong>progress dots</strong> in carousels, but there are some good reasons why we might want to avoid them. Sometimes users desperately try to click on them, and because these dots are incredibly small, navigation is slow and requires a lot of precision. This results in a feverish combination of rage clicks (or taps), mistakes, and unexpected jumps back and forth.</p> <figure class="c-article__image u-flow--xs"> <a href="https://press.stripe.com/the-making-of-prince-of-persia"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/better-carousel-ux/carousel-on-the-side-stripe-press.jpg" alt="A screenshot of a Stripe Press Carousels" width="550" height="323" loading="lazy"> </a> <figcaption><p><a href="https://press.stripe.com/the-making-of-prince-of-persia">Stripe Press</a> includes short horizontal lines, each representing a section on the site. The labels appear only on hover.</p> </figcaption> </figure> <p>Progress dots <strong>aren’t a particularly effective way</strong> to entice users to click through the carousel. They don’t communicate much; definitely not what each dot represents, nor what users should be expecting while sliding through the carousel.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.creativedenmark.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/better-carousel-ux/carousel-creative-denmark.jpg" alt="A screenshot of a Creative Denmark Carousels" width="550" height="306" loading="lazy"> </a> </figure> <figure class="c-article__image u-flow--xs"> <a href="https://www.weber.com/DE/de/start/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/better-carousel-ux/carousel-thumbnails-weber.jpg" alt="A screenshot of a Weber Grill Original Carousels" width="550" height="311" loading="lazy"> </a> </figure> <p>A good way to encourage navigation through the carousel is by adding more context to it. We can replace lifeless dots with labels, <strong>thumbnails</strong> and video previews. Interesting examples of it in action are on <a href="https://www.creativedenmark.com/">Creative Denmark</a> and <a href="https://www.weber.com/DE/de/start/">Weber Grill Original</a>, with key video highlights and photos accordingly.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.reuters.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/better-carousel-ux/carousel-grouped-arrows-reuters.jpg" alt="A screenshot of a Reuters Carousels" width="550" height="237" loading="lazy"> </a> </figure> <p>Additionally, we can use filters, tabs and <strong>prev/next</strong> buttons that allow users to choose the content in the carousel, just like the designers of <a href="https://www.reuters.com/">Reuters.com</a> did.</p> <h2 id="better-position-of-prevnext-buttons" tabindex="-1">Better Position of Prev/Next Buttons <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/better-carousel-ux/#better-position-of-prevnext-buttons">#</a></h2> <p>In design, we want to minimize errors and mishaps as far as possible. At the same time, we want to speed up navigation within the carousel as far as possible, and this means minimizing the distance between opposite actions: in our case, that’s moving <strong>forward and backward</strong>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://ritual.com/products/essential-for-women-multivitamin"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/better-carousel-ux/carousel-ritual-grouped.jpg" alt="A screenshot of a Ritual.com Carousels" width="550" height="364" loading="lazy"> </a> <figcaption><p>On <a href="https://ritual.com/products/essential-for-women-multivitamin">Ritual.com</a>, prev/next-buttons are always grouped.</p> </figcaption> </figure> <p>One useful pattern is to <strong>group arrows</strong> in the carousel. This allows users to move in both directions quickly, without heaving to re-calibrate their pointer or their fingers, or tab through items.</p> <figure class="c-article__image u-flow--xs"> <a href="https://ritual.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/better-carousel-ux/carousel-arrows-above-images-desktop-ritual.jpg" alt="A screenshot of a Ritual.com Carousels" width="550" height="503" loading="lazy"> </a> </figure> <p>On desktop, group buttons <strong>above the carousel</strong> (still <a href="https://ritual.com/">Ritual.com</a> in the example above). If the buttons live on the slices of the carousel, it might cause misclicks and accidental jumps to wrong pages. And if the buttons live under the carousel, they might not be noticed in time, especially if carousel slices are tall.</p> <figure class="c-article__image u-flow--xs"> <a href="https://ritual.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/better-carousel-ux/carousel-arrows-below-images-mobile-ritual.jpg" alt="A screenshot of a Ritual.com Carousels" width="550" height="528" loading="lazy"> </a> </figure> <p>On mobile, group buttons <strong>under the carousel</strong>. Otherwise, every time a user interacts with the buttons, especially when they are spaced out across the edges of the carousel, they’ll be covering the content of the carousel with their fingers. And when centered vertically, users might end up with plenty of rage taps.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/better-carousel-ux/#wrapping-up">#</a></h2> <p>When designing your next carousel, consider <strong>replacing progress indicators</strong> with labels or thumbnails. Indicate the current slice of the carousel. Include and group prev/next buttons and display them above or below the carousel. Avoid auto-advancing if you can, and if you can’t, add a delay of 7s and allow users to pause rotation.</p> <figure class="c-article__image u-flow--xs"> <a href="https://neufuntrois.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/better-carousel-ux/carousel-neufuntrois.jpg" alt="A screenshot of a Neufuntrois Carousels" width="550" height="336" loading="lazy"> </a> <figcaption><p><a href="https://neufuntrois.com/">913 restaurant</a> provides an information scent for prev/next slides.</p> </figcaption> </figure> <p>A much more detailed article about all the fine details of carousels will be published <a href="https://www.smashingmagazine.com/2022/04/designing-better-carousel-ux/">on Smashing Magazine</a>, so please take a look if you are interested.</p> Fri, 11 Nov 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/better-carousel-ux/ Designing Better Mobile Navigation UX https://smart-interface-design-patterns.com/articles/better-mobile-navigation/ <h2 id="vertical-split-navigation" tabindex="-1">Vertical Split Navigation <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/better-mobile-navigation/#vertical-split-navigation">#</a></h2> <p>Many mobile navigation menus show only one level of navigation at a time. You might have seen page takeovers and slide-in menus, overlays and bottom sheets. Often this experience is slow and disorienting. Often users have to go back to move forward. Yet usually we want the opposite: help users <strong>navigate between levels faster</strong>, not slower.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.lcfc.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/better-mobile-navigation/lcfc-split-menu-navigation.png" alt="LCFC split the page into two parts, one for each level of navigation." width="550" height="344" loading="lazy"> </a> <figcaption><p><a href="https://www.lcfc.com/">LCFC</a> split the page into two parts, one for each level of navigation.</p> </figcaption> </figure> <p>What if <strong>split the screen vertically</strong> (pictured above on <a href="https://www.lcfc.com/">LCFC</a>, and display two levels of navigation at the same time? To move between levels then we don’t need to close any menus or return back — instead, we move forward and explore.</p> <h2 id="curtain-navigation" tabindex="-1">Curtain Navigation <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/better-mobile-navigation/#curtain-navigation">#</a></h2> <p>And what if you <strong>need slightly more space</strong> for your lengthy navigation labels? Well, they could <strong>wrap onto multiple lines</strong>, or we could reduce the width by replacing text labels with icons (as long as they are unambiguous). It might not work for every project, but it seems to work for <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/9dd3257d-64a9-0166-8e8b-8c63640ebf96.png">Playstation</a> (pictured below).</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.playstation.com/en-us/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/better-mobile-navigation/curtain-mobile-navigation-playstation.png" alt="Playstation with the curtain navigation pattern, showing 2 levels of navigation at the same time." width="550" height="488" loading="lazy"> </a> <figcaption><p><a href="https://www.playstation.com/en-us/">Playstation</a> with the curtain navigation pattern, showing 2 levels of navigation at the same time.</p> </figcaption> </figure> <p>The entire first level of navigation collapses into tabs; yet moving from one level to the other doesn’t require any jumps back. You might be wondering what the three vertical lines represent — ideally, one could drag away the pane, but it doesn’t seem to be working as expected unfortunately.</p> <h2 id="better-filtering-ux" tabindex="-1">Better Filtering UX <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/better-mobile-navigation/#better-filtering-ux">#</a></h2> <p>We could use the same approach in other contexts, such as filtering. We display <strong>all filter attributes on the left</strong>, and allow users to choose the specific values for these filters in the second vertical pane. That's what the filtering experience looks like on <a href="https://www.myntra.com/">Myntra</a>, an Indian eCommerce retailer pictured below.</p> <figure class="c-article__image u-flow--xs"> <a href="https://smart-interface-design-patterns.com/articles/better-mobile-navigation/No%20slide-in-navigation%20in%20sight%20on%20[Myntra](https://www.myntra.com/)."> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/better-mobile-navigation/myntra-split-menu-navigation.png" alt="No slide-in-navigation in sight on Myntra." width="550" height="488" loading="lazy"> </a> </figure> <p>If some filters don’t fit in the right pane, users can scroll to explore more, or even <strong>search for a specific filter</strong> in the selection. Of course, the &quot;Apply&quot; button has to stay floating. It would be lovely to see the total number of results on that button, too.</p> <h2 id="filter-constructor-ux" tabindex="-1">Filter Constructor UX <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/better-mobile-navigation/#filter-constructor-ux">#</a></h2> <p>We could take it even further though. For example, sometimes users need to select filters that are relevant to them, and define their values in the next step. In that case, we <strong>group all filters into a few categories</strong> or even sub-categories, and then present all categories and all filters in sub-categories side by side.</p> <figure class="c-article__image u-flow--xs"> <a href="https://markets.ft.com/data/equities/results"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/better-mobile-navigation/ft-split-screen-filter-navigation.png" alt="FT Screener with two panes, one for groups and one for specific filters." width="550" height="529" loading="lazy"> </a> <figcaption><p><a href="https://markets.ft.com/data/equities/results">FT Screener</a> with two panes, one for groups and one for specific filters.</p> </figcaption> </figure> <p>With <a href="https://markets.ft.com/data/equities/results">FT Screener</a>, for example, users can add or change criteria by exploring multiple levels at the same time — both the labels for groups and the filters living within those groups. Once a filter has been chosen, it’s being added to the overview on the top. That’s a <strong>simple filter constructor</strong> for a sophisticated filtering on mobile.</p> <h2 id="language-selector-ux" tabindex="-1">Language Selector UX <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/better-mobile-navigation/#language-selector-ux">#</a></h2> <p>The vertical split could be used to quickly select one important present or make a single choice. That would be the case for a language selector, for example. We could organize all supported countries and languages as cards or accordions, but they could also work as <strong>vertical tabs</strong>, as it’s done in the footer of <a href="https://www.oracle.com/">Oracle</a>.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.oracle.com/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/better-mobile-navigation/oracle-language-selector-split-menu.jpg" alt="Oracle with a vertical-split menu for the country/region selection in its footer." width="550" height="277" loading="lazy"> </a> <figcaption><p><a href="https://www.oracle.com/">Oracle</a> with a vertical-split menu for the country/region selection in its footer.</p> </figcaption> </figure> <p>This way, we display <strong>only options that are relevant to users</strong>. They never have to go to irrelevant sections or pages since they get a preview and can navigate away from it quickly, should they wish to do so.</p> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/better-mobile-navigation/#wrapping-up">#</a></h2> <p>This little technique works very well if we have a quite shallow content architecture, but it can become a bit difficult to manage with three or more levels. In that case, often filters or navigation options are accessible on individual pages, although it could work with an accordion as well.</p> <p>The best part: <strong>vertical split is fast</strong>! It shows its strengths when the speed of navigation matters, and when users are likely to jump between sections a lot. It’s way faster than slide-in-menus but less flexible than accordions. Still, a great lil’ helper to keep in mind to <strong>make better use of available space</strong> on mobile.</p> Thu, 03 Nov 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/better-mobile-navigation/ Inline Validation UX https://smart-interface-design-patterns.com/articles/inline-validation-ux/ <p>Undoubtedly there are major <strong>advantages of inline validation</strong> in forms. Most importantly, if an input expects a particular type of content, we can flag issues immediately, so users can fix these issues rather than operating under a wrong assumption.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.nngroup.com/articles/errors-forms-design-guidelines/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/inline-validation-ux/01-password-strength-meter.gif" alt="Password strength meter." width="550" height="397" loading="lazy"> </a> <figcaption><p>Inline validation works well as a <a href="https://www.nngroup.com/articles/errors-forms-design-guidelines/">password strength meter</a>.</p> </figcaption> </figure> <p>However, <a href="https://adamsilver.io/blog/live-validation-is-problematic/">inline validation can be problematic</a>. Mostly because often we can’t really validate <strong>just-in-time</strong> when errors occur, and the reason for that is that we can’t <em>really</em> know for sure when the user has actually finished their input, unless they explicitly tell us that they have.</p> <p>Clicking on a “Submit” button is a clear signal that users think they are done, but our implementations usually consider leaving an input field as a strong signal, although it’s merely an assumption, and often a wrong one.</p> <p>Surely we don’t want to show <strong>“wrong” errors</strong> — when a user skips a field, or glitches in our interfaces that creep when we bake in some assumptions about what the user behavior is likely to be. The problem is that usually <strong>our assumptions are wrong</strong>.</p> <h2 id="how-people-fill-in-web-forms" tabindex="-1">How People Fill In Web Forms <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/inline-validation-ux/#how-people-fill-in-web-forms">#</a></h2> <p>When we think about inline validation, we usually think about the error recovery speed. If we validate as users are typing, we should be able to help them fix errors almost immediately. However, as it turns out, when filling in a particular input, <strong>some people never look at the screen</strong> — they look at the keyboard, and specifically at the keystrokes that they are about to type.</p> <figure class="c-article__image u-flow--xs"> <a href="https://carbondesignsystem.com/components/notification/usage/#inline-notifications"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/inline-validation-ux/02-inline-notifications.jpg" alt="A screenshot of a carbondesignsystem.com" width="550" height="547" loading="lazy"> </a> <figcaption><p>When should the error message appear? On submitting the data, or when a user leaves the field? From <a href="https://carbondesignsystem.com/components/notification/usage/#inline-notifications">Carbon Design System</a>.</p> </figcaption> </figure> <p>When filling in any complex input — be it lengthy coupon code, VAT number, IBAN number, or a credit card number — we often follow <strong>pattern matching</strong>. Rather than filling in the entire string at once, we either copy-paste characters in chunks, or fill in the input in steps. Premature inline validation disrupts that pattern, causing errors and a healthy dose of frustration.</p> <p>Also, inline validation is supposed to help users make sure that they don’t miss anything important, yet just before moving to the next steps, many people — despite green checkmarks all over the fields — <strong>review their input meticulously</strong>.</p> <p>Users do trust inline validation, but usually they <strong>don’t trust it enough</strong> to prevent severe errors — the errors that go beyond simple formatting issues. So users review, field by field, watch out for typos, double check if auto-filled values are right, and try to spot any kind of outdated data. The correct format of data doesn’t mean that the data is accurate.</p> <h2 id="the-downsides-of-inline-validation" tabindex="-1">The Downsides of Inline Validation <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/inline-validation-ux/#the-downsides-of-inline-validation">#</a></h2> <p>In fact, these are some of the <strong>typical problems</strong> that often come up with inline validation:</p> <ul> <li> <p><strong>Live validation always interrupts users</strong>. A user is trying to answer the question, but error messages keep flashing in front of them.</p> </li> <li> <p><strong>Live validation often kicks in too early or too late</strong>. Errors appear either when the user hasn’t finished their input yet, or she has moved to the next input field. Both of these options aren’t ideal: the user is focused on the next question, yet we prompt them to fix their previous answer. Live validation is often unreliable. The correct format of data doesn’t mean that the data is accurate. Even though an inline validator might give a user’s input green light, it can still turn into an error once the input has been validated on the server.</p> </li> <li> <p><strong>Validation rules aren’t error-prone to exceptions</strong>. They rarely include a wide range of exceptions and custom rules. They are often based on common assumptions that will eventually fail for some users.</p> </li> <li> <p><strong>Often error messages are removed too late</strong>. While the user is editing their input, often error messages remain until the user has left the input field. This leaves users in the dark as they think they’ve fixed the problem, but the interface doesn’t react accordingly.</p> </li> </ul> <h2 id="when-inline-validation-works" tabindex="-1">When Inline Validation Works <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/inline-validation-ux/#when-inline-validation-works">#</a></h2> <p>We’ve learned over the years that <a href="https://baymard.com/blog/inline-form-validation#pitfall-1-premature-inline-validation">premature validation on focus isn’t useful</a>. When a user just focuses on an empty input field, it doesn’t make sense to display, before users even get a chance to type anything.</p> <p>So we have only <strong>two options</strong>: we either validate as users type <em>(live validation)</em>, or after they’ve left the input field <em>(late validation)</em>. As it turns out, in both cases, the experience can smoothless when there are no errors, and can be somewhat frustrating when things go wrong.</p> <h2 id="1-show-errors-for-empty-fields-only-on-submit" tabindex="-1">1. Show Errors For Empty Fields Only on Submit <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/inline-validation-ux/#1-show-errors-for-empty-fields-only-on-submit">#</a></h2> <p>How and when do we validate an empty input field? The user might have indeed overlooked the input field, so we should be flagging the mistake early. But they might as well just jump in a wrong field and leave it right away. Or they had to <strong>jump back</strong> from one field to the previous field to correct an error. Or they just had to clear up their input as they copy-pasted the wrong thing.</p> <p>In my experience, whenever we try to validate empty fields, <strong>too often we will be wrong</strong>, pointing out mistakes prematurely. Instead we could show error only when a user is certain that they are done with their input.</p> <h2 id="2-reward-early-punish-late-pattern" tabindex="-1">2. Reward Early, Punish Late Pattern <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/inline-validation-ux/#2-reward-early-punish-late-pattern">#</a></h2> <p>If a user chooses to change previously validated input, we need to decide when we start and when we stop validating that input. That means, that we need to <strong>track the state and contents of each input field</strong>, and have thresholds for when we start validating, and then have rules for changing input fields that have been validated already, or that contain errors.</p> <p>As Mihael Konjević wrote in his article on the <a href="https://medium.com/wdstack/inline-validation-in-forms-designing-the-experience-123fb34088ce">Reward Early, Punish Late pattern</a>, if a user edits an erroneous field, we should be <strong>validating immeditely</strong>, removing the error message and confirming that the mistake has been fixed as soon as possible <em>(reward early)</em>.</p> <p>However, if the input was valid already and it is being edited, we need to wait until the user moves to the next input field and flag the errors then <em>(punish late)</em>.</p> <p>As it turns out, the <a href="https://medium.com/@shanplourde/inline-form-validations-ux-design-considerations-and-react-examples-c2f53f89bebc">implementation isn’t trivial</a>, and making it work in a complex form will require quite a validation logic that might be difficult to maintain if some fields have dependencies or show up only in certain conditions.</p> <h2 id="3-allow-users-to-override-inline-validation" tabindex="-1">3. Allow Users to Override Inline Validation <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/inline-validation-ux/#3-allow-users-to-override-inline-validation">#</a></h2> <p>Because inline validation is never bulletproof, we could try to give people a way out when inline validation fails. That means adding an option to <strong>override validation</strong> if the user is confident that they are right.</p> <figure class="c-article__image u-flow--xs"> <a href="https://mcusercontent.com/16b832d9ad4b28edf261f34df/images/7cb396df-6185-c451-ed8b-3dd22f62772e.png"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/inline-validation-ux/03-override-inline-validation.png" alt="Allowing users to override validator in some cases." width="550" height="139" loading="lazy"> </a> <figcaption><p>What happens if the validator doesn’t know the address? We can allow users to override validator in some cases.</p> </figcaption> </figure> <p>Then measure for a few weeks just how much money the company loses due to wrong input and how much money the company earns due to an overly aggressive validator. This will give you a comparison to see how costly inline validation actually is.</p> <h2 id="4-for-short-forms-consider-validation-on-submit-only" tabindex="-1">4. For Short Forms, Consider Validation on Submit Only <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/inline-validation-ux/#4-for-short-forms-consider-validation-on-submit-only">#</a></h2> <p>Inline validation is indeed very helpful, but it might be a good idea to test its alternative — validation on submit only. With it, <strong>users are never distracted</strong> or annoyed and have full control over when their input is validated.</p> <figure class="c-article__image u-flow--xs"> <a href="https://www.smashingmagazine.com/2017/05/better-form-design-one-thing-per-page/"> <img src="https://res.cloudinary.com/indysigner/image/fetch/c_fill/f_auto,q_auto/https://main--smart-interface-design-patterns.netlify.app/static/img/blog/inline-validation-ux/04-task-list-pattern.jpg" alt="A screenshot of a www.smashingmagazine.com ." width="550" height="723" loading="lazy"> </a> <figcaption><p>Many shorter pages tend to perform better than one long page. We can frame them as a part of the journey with a <a href="https://design-system.service.gov.uk/patterns/task-list-pages/">task list pattern</a>.</p> </figcaption> </figure> <p>The pattern <strong>doesn’t seem to work well</strong> for lengthy pages with many input fields. There, users often end up typing a lot of unnecessary data before they realize that their initial input wasn’t really applicable. <strong>Shorter pages usually perform better than one long page</strong>.</p> <p>So for shorter forms, a better way to deal with complex journeys is to simplify them:</p> <ul> <li> <p>Split a complex form into small tasks = pages (with the <a href="https://www.smashingmagazine.com/2017/05/better-form-design-one-thing-per-page/">one-thing-per-page pattern</a>;</p> </li> <li> <p>For every page, <strong>validate only on submit</strong>, as users are moving to the next page;</p> </li> <li> <p>Don’t require a particular format and accept any input that’s <strong>unambiguous</strong> — the rest can be done as a post-processing step;</p> </li> <li> <p>Provide users with a <a href="https://design-system.service.gov.uk/patterns/task-list-pages/">task list pattern</a> and support navigation between them, with the option to save input and continue later.</p> </li> </ul> <h2 id="wrapping-up" tabindex="-1">Wrapping Up <a class="header-anchor" href="https://smart-interface-design-patterns.com/articles/inline-validation-ux/#wrapping-up">#</a></h2> <p>Inline validation is useful, but when it fails, its costs can be quite severe. With just-in-time validation, <em>reward-early-punish-late-pattern</em> and validating on submit, <strong>we avoid unnecessary distractions</strong>, complex logic and layout shifts altogether, and communicate errors without annoying users too early or too late.</p> <p>The downside is of course the <strong>error recovery speed</strong> which certainly will be slower. Yet in the end, the number of errors might drop just because users are never distracted as they type. And that might be just enough to reduce the overall frequency of errors and increase completion rates.</p> Tue, 08 Feb 2022 00:00:00 +0000 Vitaly Friedman https://smart-interface-design-patterns.com/articles/inline-validation-ux/