• SMASHINGMAGAZINE.COM
    What Are CSS Container Style Queries Good For?
    Weve relied on media queries for a long time in the responsive world of CSS but they have their share of limitations and have shifted focus more towards accessibility than responsiveness alone. This is where CSS Container Queries come in. They completely change how we approach responsiveness, shifting the paradigm away from a viewport-based mentality to one that is more considerate of a components context, such as its size or inline-size.Querying elements by their dimensions is one of the two things that CSS Container Queries can do, and, in fact, we call these container size queries to help distinguish them from their ability to query against a components current styles. We call these container style queries.Existing container query coverage has been largely focused on container size queries, which enjoy 90% global browser support at the time of this writing. Style queries, on the other hand, are only available behind a feature flag in Chrome 111+ and Safari Technology Preview.The first question that comes to mind is What are these style query things? followed immediately by How do they work?. There are some nice primers on them that others have written, and they are worth checking out.But the more interesting question about CSS Container Style Queries might actually be Why we should use them? The answer, as always, is nuanced and could simply be it depends. But I want to poke at style queries a little more deeply, not at the syntax level, but what exactly they are solving and what sort of use cases we would find ourselves reaching for them in our work if and when they gain browser support.Why Container QueriesTalking purely about responsive design, media queries have simply fallen short in some aspects, but I think the main one is that they are context-agnostic in the sense that they only consider the viewport size when applying styles without involving the size or dimensions of an elements parent or the content it contains.This usually isnt a problem since we only have a main element that doesnt share space with others along the x-axis, so we can style our content depending on the viewports dimensions. However, if we stuff an element into a smaller parent and maintain the same viewport, the media query doesnt kick in when the content becomes cramped. This forces us to write and manage an entire set of media queries that target super-specific content breakpoints.Container queries break this limitation and allow us to query much more than the viewports dimensions.How Container Queries Generally WorkContainer size queries work similarly to media queries but allow us to apply styles depending on the containers properties and computed values. In short, they allow us to make style changes based on an elements computed width or height regardless of the viewport. This sort of thing was once only possible with JavaScript or the ol jQuery, as this example shows.As noted earlier, though, container queries can query an elements styles in addition to its dimensions. In other words, container style queries can look at and track an elements properties and apply styles to other elements when those properties meet certain conditions, such as when the elements background-color is set to hsl(0 50% 50%).Thats what we mean when talking about CSS Container Style Queries. Its a proposed feature defined in the same CSS Containment Module Level 3 specification as CSS Container Size Queries and one thats currently unsupported by any major browser so the difference between style and size queries can get a bit confusing as were technically talking about two related features under the same umbrella.Wed do ourselves a favor to backtrack and first understand what a container is in the first place.ContainersAn elements container is any ancestor with a containment context; it could be the elements direct parent or perhaps a grandparent or great-grandparent.A containment context means that a certain element can be used as a container for querying. Unofficially, you can say there are two types of containment context: size containment and style containment.Size containment means we can query and track an elements dimensions (i.e., aspect-ratio, block-size, height, inline-size, orientation, and width) with container size queries as long as its registered as a container. Tracking an elements dimensions requires a little processing in the client. One or two elements are a breeze, but if we had to constantly track the dimensions of all elements including resizing, scrolling, animations, and so on it would be a huge performance hit. Thats why no element has size containment by default, and we have to manually register a size query with the CSS container-type property when we need it.On the other hand, style containment lets us query and track the computed values of a containers specific properties through container style queries. As it currently stands, we can only check for custom properties, e.g. --theme: dark, but soon we could check for an elements computed background-color and display property values. Unlike size containment, we are checking for raw style properties before they are processed by the browser, alleviating performance and allowing all elements to have style containment by default.Did you catch that? While size containment is something we manually register on an element, style containment is the default behavior of all elements. Theres no need to register a style container because all elements are style containers by default.And how do we register a containment context? The easiest way is to use the container-type property. The container-type property will give an element a containment context and its three accepted values normal, size, and inline-size define which properties we can query from the container./* Size containment in the inline direction */.parent { container-type: inline-size;}This example formally establishes a size containment. If we had done nothing at all, the .parent element is already a container with a style containment.Size ContainmentThat last example illustrates size containment based on the elements inline-size, which is a fancy way of saying its width. When we talk about normal document flow on the web, were talking about elements that flow in an inline direction and a block direction that corresponds to width and height, respectively, in a horizontal writing mode. If we were to rotate the writing mode so that it is vertical, then inline would refer to the height instead and block to the width.Consider the following HTML:<div class="cards-container"> <ul class="cards"> <li class="card"></li> </ul></div>We could give the .cards-container element a containment context in the inline direction, allowing us to make changes to its descendants when its width becomes too small to properly display everything in the current layout. We keep the same syntax as in a normal media query but swap @media for @container.cards-container { container-type: inline-size; } @container (width < 700px) { .cards { background-color: red; }}Container syntax works almost the same as media queries, so we can use the and, or, and not operators to chain different queries together to match multiple conditions.@container (width < 700px) or (width > 1200px) { .cards { background-color: red; }}Elements in a size query look for the closest ancestor with size containment so we can apply changes to elements deeper in the DOM, like the .card element in our earlier example. If there is no size containment context, then the @container at-rule wont have any effect./* * Apply styles based on the closest container, .cards-container */@container (width < 700px) { .card { background-color: black; }}Just looking for the closest container is messy, so its good practice to name containers using the container-name property and then specifying which container were tracking in the container query just after the @container at-rule..cards-container { container-name: cardsContainer; container-type: inline-size;}@container cardsContainer (width < 700px) { .card { background-color: #000; }}We can use the shorthand container property to set the container name and type in a single declaration:.cards-container { container: cardsContainer / inline-size; /* Equivalent to: */ container-name: cardsContainer; container-type: inline-size;}The other container-type we can set is size, which works exactly like inline-size only the containment context is both the inline and block directions. That means we can also query the containers height sizing in addition to its width sizing./* When container is less than 700px wide */@container (width < 700px) { .card { background-color: black; }}/* When container is less than 900px tall */@container (height < 900px) { .card { background-color: white; }}And its worth noting here that if two separate (not chained) container rules match, the most specific selector wins, true to how the CSS Cascade works.So far, weve touched on the concept of CSS Container Queries at its most basic. We define the type of containment we want on an element (we looked specifically at size containment) and then query that container accordingly.Container Style QueriesThe third value that is accepted by the container-type property is normal, and it sets style containment on an element. Both inline-size and size are stable across all major browsers, but normal is newer and only has modest support at the moment.I consider normal a bit of an oddball because we dont have to explicitly declare it on an element since all elements are style containers with style containment right out of the box. Its possible youll never write it out yourself or see it in the wild..parent { /* Unnecessary */ container-type: normal;}If you do write it or see it, its likely to undo size containment declared somewhere else. But even then, its possible to reset containment with the global initial or revert keywords..parent { /* All of these (re)set style containment */ container-type: normal; container-type: initial; container-type: revert;}Lets look at a simple and somewhat contrived example to get the point across. We can define a custom property in a container, say a --theme..cards-container { --theme: dark;}From here, we can check if the container has that desired property and, if it does, apply styles to its descendant elements. We cant directly style the container since it could unleash an infinite loop of changing the styles and querying the styles..cards-container { --theme: dark;}@container style(--theme: dark) { .cards { background-color: black; }}See that style() function? In the future, we may want to check if an element has a max-width: 400px through a style query instead of checking if the elements computed value is bigger than 400px in a size query. Thats why we use the style() wrapper to differentiate style queries from size queries./* Size query */@container (width > 60ch) { .cards { flex-direction: column; }}/* Style query */@container style(--theme: dark) { .cards { background-color: black; }}Both types of container queries look for the closest ancestor with a corresponding containment-type. In a style() query, it will always be the parent since all elements have style containment by default. In this case, the direct parent of the .cards element in our ongoing example is the .cards-container element. If we want to query non-direct parents, we will need the container-name property to differentiate between containers when making a query..cards-container { container-name: cardsContainer; --theme: dark;}@container cardsContainer style(--theme: dark) { .card { color: white; }}Weird and Confusing Things About Container Style QueriesStyle queries are completely new and bring something never seen in CSS, so they are bound to have some confusing qualities as we wrap our heads around them some that are completely intentional and well thought-out and some that are perhaps unintentional and may be updated in future versions of the specification.Style and Size Containment Arent Mutually ExclusiveOne intentional perk, for example, is that a container can have both size and style containment. No one would fault you for expecting that size and style containment are mutually exclusive concerns, so setting an element to something like container-type: inline-size would make all style queries useless.However, another funny thing about container queries is that elements have style containment by default, and there isnt really a way to remove it. Check out this next example:.cards-container { container-type: inline-size; --theme: dark;}@container style(--theme: dark) { .card { background-color: black; }}@container (width < 700px) { .card { background-color: red; }}See that? We can still query the elements by style even when we explicitly set the container-type to inline-size. This seems contradictory at first, but it does make sense, considering that style and size queries are computed independently. Its better this way since both queries dont necessarily conflict with each other; a style query could change the colors in an element depending on a custom property, while a container query changes an elements flex-direction when it gets too small for its contents.But We Can Achieve the Same Thing With CSS Classes and IDsMost container query guides and tutorials Ive seen use similar examples to demonstrate the general concept, but I cant stop thinking no matter how cool style queries are, we can achieve the same result using classes or IDs and with less boilerplate. Instead of passing the state as an inline style, we could simply add it as a class.<ol> <li class="item first"> <img src="..." alt="Roi's avatar" /> <h2>Roi</h2> </li> <li class="item second"><!-- etc. --></li> <li class="item third"><!-- etc. --></li> <li class="item"><!-- etc. --></li> <li class="item"><!-- etc. --></li></ol>Alternatively, we could add the position number directly inside an id so we dont have to convert the number into a string:<ol> <li class="item" id="item-1"> <img src="..." alt="Roi's avatar" /> <h2>Roi</h2> </li> <li class="item" id="item-2"><!-- etc. --></li> <li class="item" id="item-3"><!-- etc. --></li> <li class="item" id="item-4"><!-- etc. --></li> <li class="item" id="item-5"><!-- etc. --></li></ol>Both of these approaches leave us with cleaner HTML than the container queries approach. With style queries, we have to wrap our elements inside a container even if we dont semantically need it because of the fact that containers (rightly) are unable to style themselves.We also have less boilerplate-y code on the CSS side:#item-1 { background: linear-gradient(45deg, yellow, orange); }#item-2 { background: linear-gradient(45deg, grey, white);}#item-3 { background: linear-gradient(45deg, brown, peru);}See the Pen Style Queries Use Case Replaced with Classes [forked] by Monknow.As an aside, I know that using IDs as styling hooks is often viewed as a no-no, but thats only because IDs must be unique in the sense that no two instances of the same ID are on the page at the same time. In this instance, there will never be more than one first-place, second-place, or third-place player on the page, making IDs a safe and appropriate choice in this situation. But, yes, we could also use some other type of selector, say a data-* attribute.There is something that could add a lot of value to style queries: a range syntax for querying styles. This is an open feature that Miriam Suzanne proposed in 2023, the idea being that it queries numerical values using range comparisons just like size queries.Imagine if we wanted to apply a light purple background color to the rest of the top ten players in the leaderboard example. Instead of adding a query for each position from four to ten, we could add a query that checks a range of values. The syntax is obviously not in the spec at this time, but lets say it looks something like this just to push the point across:/* Do not try this at home! */@container leaderboard style(4 >= --position <= 10) { .item { background: linear-gradient(45deg, purple, fuchsia); }}In this fictional and hypothetical example, were:Tracking a container called leaderboard,Making a style() query against the container,Evaluating the --position custom property,Looking for a condition where the custom property is set to a value equal to a number that is greater than or equal to 4 and less than or equal to 10.If the custom property is a value within that range, we set a players background color to a linear-gradient() that goes from purple to fuschia.This is very cool, but if this kind of behavior is likely to be done using components in modern frameworks, like React or Vue, we could also set up a range in JavaScript and toggle on a .top-ten class when the condition is met.See the Pen Style Ranged Queries Use Case Replaced with Classes [forked] by Monknow.Sure, its great to see that we can do this sort of thing directly in CSS, but its also something with an existing well-established solution.Separating Style Logic From Logic LogicSo far, style queries dont seem to be the most convenient solution for the leaderboard use case we looked at, but I wouldnt deem them useless solely because we can achieve the same thing with JavaScript. I am a big advocate of reaching for JavaScript only when necessary and only in sprinkles, but style queries, the ones where we can only check for custom properties, are most likely to be useful when paired with a UI framework where we can easily reach for JavaScript within a component. I have been using Astro an awful lot lately, and in that context, I dont see why I would choose a style query over programmatically changing a class or ID.However, a case can be made that implementing style logic inside a component is messy. Maybe we should keep the logic regarding styles in the CSS away from the rest of the logic logic, i.e., the stateful changes inside a component like conditional rendering or functions like useState and useEffect in React. The style logic would be the conditional checks we do to add or remove class names or IDs in order to change styles.If we backtrack to our leaderboard example, checking a players position to apply different styles would be style logic. We could indeed check that a players leaderboard position is between four and ten using JavaScript to programmatically add a .top-ten class, but it would mean leaking our style logic into our component. In React (for familiarity, but it would be similar to other frameworks), the component may look like this:const LeaderboardItem = ({position}) => { <li className={item ${position >= 4 && position <= 10 ? "top-ten" : ""}} id={item-${position}}> <img src="..." alt="Roi's avatar" /> <h2>Roi</h2> </li>;};Besides this being ugly-looking code, adding the style logic in JSX can get messy. Meanwhile, style queries can pass the --position value to the styles and handle the logic directly in the CSS where it is being used.const LeaderboardItem = ({position}) => { <li className="item" style={{"--position": position}}> <img src="..." alt="Roi's avatar" /> <h2>Roi</h2> </li>;};Much cleaner, and I think this is closer to the value proposition of style queries. But at the same time, this example makes a large leap of assumption that we will get a range syntax for style queries at some point, which is not a done deal.ConclusionThere are lots of teams working on making modern CSS better, and not all features have to be groundbreaking miraculous additions.Size queries are definitely an upgrade from media queries for responsive design, but style queries appear to be more of a solution looking for a problem.It simply doesnt solve any specific issue or is better enough to replace other approaches, at least as far as I am aware.Even if, in the future, style queries will be able to check for any property, that introduces a whole new can of worms where styles are capable of reacting to other styles. This seems exciting at first, but I cant shake the feeling it would be unnecessary and even chaotic: styles reacting to styles, reacting to styles, and so on with an unnecessary side of boilerplate. Id argue that a more prudent approach is to write all your styles declaratively together in one place.Maybe it would be useful for web extensions (like Dark Reader) so they can better check styles in third-party websites? I cant clearly see it. If you have any suggestions on how CSS Container Style Queries can be used to write better CSS that I may have overlooked, please let me know in the comments! Id love to know how youre thinking about them and the sorts of ways you imagine yourself using them in your work.
    0 Comments 0 Shares 275 Views
  • SMASHINGMAGAZINE.COM
    2-Page Login Pattern, And How To Fix It
    Why do we see login forms split into multiple screens 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.Lets see why login forms are split across screens, what problem they solve, and how to design a better experience for better authentication UX (video).This article is part of our ongoing series on design patterns. Its also an upcoming part of the 10h-video library on Smart Interface Design Patterns and the upcoming live UX training as well. Use code BIRDIE to save 15% off.The Problem With Login FormsIf there is one thing weve learned over the years in UX, its that designing for people is hard. This applies to login forms as well. People are remarkably forgetful. They often forget what email they signed up with or what service they signed in with last time (Google, Twitter, Apple, and so on)One idea is to remind customers what they signed in with last time and perhaps make it a default option. However, it reveals directly what the users account was, which might be a privacy or security issue:What if instead of showing all options to all customers all the time, we ask for email first, and then look up what service they used last time, and redirect customers to the right place automatically? Well, thats exactly the idea behind 2-page logins.Meet 2-Page-LoginsYou might have seen them already. If a few years ago, most login forms asked for email and password on one page, these days its more common to ask only for email first. When the user chooses to continue, the form will ask for a password in a separate step. Brad explores some problems of this pattern.A common reason for splitting the login form across pages is Single Sign-On (SSO) authentication. Large companies typically use SSO for corporate sign-ins of their employees. With it, employees log in only once every day and use only one set of credentials, which improves enterprise security.The UX Intricacies of Single Sign-On (SSO)SSO also helps with regulatory compliance, and its 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.To support both business customers and private customers, 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.Users rarely love this experience. Sometimes, they have multiple accounts (private and business) with one service. Also, 2-step-logins often break autofill and password managers. And for most users, login/pass is way faster than 2-step-login.Of course, typically, there are dedicated corporate login pages for employees to sign in, but they often head directly to Gmail, Figma, and so on instead and try to sign in there. However, they wont be able to log in as they must sign in through SSO.Bottom line: the pattern works well for SSO users, but for non-SSO users, it results in a frustrating UX.Alternative Solution: Conditional Reveal of SSOThere is a way to work around these challenges (see the image below). We could use a single-page look-up 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.If Single Sign-On (SSO) is enabled for that email, we show a Single Sign-On option and default to it. We could also make the password field optional or disabled.If SSO isnt enabled for that email, we proceed with the regular email/password login. This is not much hassle, but it saves trouble for both private and business accounts.Key Takeaways People often forget what email they signed up with. They also forget the auth service they signed in with. Companies use Single Sign-On (SSO) for corporate sign-in. Individual accounts still need email and password for login. 2-step login: ask for email, then redirect to the right service. 2-step-login replaces social sign-in for repeat users. It directs users rather than giving them roadblocks. Users still keep forgetting the email they signed in with. Sometimes, users have multiple accounts with one service. 2-step logins often break autofill and password managers. For most users, login/pass is way faster than 2-step-login. Better: start with one single page with login and password. As users type their email, detect if SSO is enabled for them. If it is, reveal an SSO-login option and set a default to it. Otherwise, proceed with the regular password login. If users must use SSO, disable the password field dont hide it.Wrapping UpPersonally, I havent tested the approach, but it might be a good alternative to 2-page logins both for SSO and non-SSO users. Keep in mind, though, that SSO authentication might or might not require a password, as sometimes login happens via Yubikey or Touch-ID or third parties (e.g., OAuth).Also, eventually, users will be locked out; its just a matter of time. So, do use magic links for password recovery or access recovery, but dont mandate it as a regular login option. Switching between applications is slow and causes mistakes. Instead, nudge users to enable 2FA: its both usable and secure.And most importantly, test your login flow 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!Useful ResourcesWhen To Use A Two-Page Login, by Josh WayneDont Get Clever With Login Forms, by Brad FrostWhy Are Email And Password On Two Different Pages?, by Kelley R.Six Simple Steps To Better Authentication UX, by yours trulyMeet Smart Interface Design PatternsIf you are interested in similar insights around UX, take a look at Smart Interface Design Patterns, our 10h-video course with 100s of practical examples from real-life projects with a live UX training later this year. Everything from mega-dropdowns to complex enterprise tables with 5 new segments added every year. Jump to a free preview.Meet Smart Interface Design Patterns, our video course on interface design & UX.Jump to the video course100 design patterns & real-life examples.10h-video course + live UX training. Free preview.
    0 Comments 0 Shares 254 Views
  • SMASHINGMAGAZINE.COM
    The Scent Of UX: The Unrealized Potential Of Olfactory Design
    Imagine that you could smell this page. The introduction would emit a subtle scent of sage and lavender to set the mood. Each paragraph would fill your room with the coconut oil aroma, helping you concentrate and immerse in reading. The fragrance of the comments section, resembling a busy farmers market, would nudge you to share your thoughts and debate with strangers. How would the presence of smells change your experience reading this text or influence your takeaways?Scents are everywhere. They fill our spaces, bind our senses to objects and people, alert us to dangers, and arouse us. Smells have so much influence over our mood and behavior that hundreds of companies are busy designing fragrances for retail, enticing visitors to purchase more, hotels, making customers feel at home, and amusement parks, evoking a warm sense of nostalgia.At the same time, the digital world, where we spend our lives working, studying, shopping, and resting, remains entirely odorless. Our smart devices are not designed to emit or recognize scents, and every corner of the Internet, including this page, smells exactly the same. We watch movies, play games, study, and order dinner, but our sense of smell is left unengaged. The lack of odors rarely bothers us, but occasionally, we choose analog things like books merely because their digital counterparts fail to connect with us at the same level. Could the presence of smells improve our digital experiences? What would it take to build the smelly Internet, and why hasn't it been done before? Last but not least, what power do scents hold over our senses, memory, and health, and how could we harness it for the digital world? Lets dive deep into a fascinating and underexplored realm of odors. Olfactory Design For The Real WorldWhy Do We Remember Smells?In his novel In Search of Lost Time, French writer Marcel Proust describes a sense of dj vu he experienced after tasting a piece of cake dipped in tea: Immediately the old gray house upon the street rose up like a stage set the house, the town, the square where I was sent before lunch, the streets along which I used to run errands, the country roads we took the whole of Combray and of its surroundings sprang into being, town and gardens alike, all from my cup of tea. Marcel ProustThe Proust Effect, the phenomenon of an involuntary memory evoked by scents, is a common occurrence. It explains how the presence of a familiar smell activates areas in our brain responsible for odor recognition, causing us to experience a strong, warm, positive sense of nostalgia. Smells have a potent and almost magical impact on our ability to remember and recognize objects and events. The nose makes the eyes remember, as a renowned Finnish architect Juhani Pallasmaa puts it: a single droplet of a familiar fragrance is often enough to bring up a wild cocktail of emotions and recollections, even those that have long been forgotten.A memory of a place, a person, or an experience is often a memory of their smell that lingers long after the odor is gone. J. Douglas Porteous, Professor of Geography at the University of Victoria, coined the term Smellscape to describe how a collective of smells in each particular area form our perception, define our attitude, and craft our recollection of it. To put it simply, we choose to avoid beautiful places and forget delicious meals when their odors are not to our liking. Pleasant aromas, on the other hand, alter our memory, make us overlook flaws and defects, or even fall in love. With such an immense power that scents hold over our perception of reality, it comes as no surprise they have long become a tool in the hands of brand and service designers. Scented AdvertisingWhat do a luxury car brand, a cosmetics store, and a carnival ride have in common? The answer is that they all have their own distinct scents.Carefully crafted fragrances are widely used to create brand identities, make powerful impressions, and differentiate brands emotionally and memorably. Some choose to complement visual identities with subtle, tailored aromas. 12.29, a creative olfactive branding company, developed the scent identity for Cadillac, a symbol of self-expression representing the irrepressible pursuit of life. The branded Cadillac scent is diffused in dealerships and auto shows around the world, evoking a sense of luxury and class. Customers are expected to remember Cadillac better for its signature nutty coffee, dark leather, and resinous amber notes, forging a strong emotional connection with the brand. Next time they think of Cadillac, their brain will recall its signature fragrance and the way it made them feel. Cadillac is ready to bet they will not even consider other brands afterwards.Others may be less subtle and employ more aggressive, fragrant marketing tactics. LUSH, a British cosmetics retailer, is known for its distinct smells. Although even the company co-founder admits that odors can be overwhelming for some, LUSHs scents play an important role in crafting the brands identity.Indeed, the aroma of their stores is so recognizable that it lures customers in from afar with ease, and few walk away without forever remembering the brands distinct smell.However, retail is not the only area that employs discernible smells. Disney takes a holistic approach to service design, carefully considering every aspect that influences customer satisfaction. Smells have long been a part of the signature Disney experience: the main street smells like pastry and popcorn, Spaceship Earth is filled with the burning wood aroma, and Soarin is accompanied by notes of orange and pine.Dozens of scent-emitting devices, Smellitzers, are responsible for adding scents to each experience. Deployed around each park and perfectly synced with every other sensory stimulus, they shoot scents toward passersby and trigger memories of childhood nostalgia. As shown in the patent, Smellitzer is a rather simple odor delivery system designed to enhance the sense of flight created in the minds of the passengers. Scents are carefully curated and manufactured to evoke precise emotions without disrupting the ride experience.Disneys attractions, lanes, and theaters are packed with smell-emitting gadgets that distribute sweet and savoury notes. The visitors barely notice the presence of added scents, but later inevitably experience a sudden but persistent urge to return to the park. Could it be something in the air, perhaps?Well-curated, timely delivered, recognizable scents can be a powerful ally in the hands of a designer.They can soothe a passenger during a long flight with the subtle notes of chamomile and mint or seduce a hungry shopper with the familiar aroma of freshly baked cinnamon buns. Scents can create and evoke great memories, amplify positive emotions, or turn casual buyers into eager and loyal consumers.Unfortunately, smells can also ruin otherwise decent experiences.Scented EntertainmentWhy Fragrant Cinema FailedIn 1912, Aldous Huxley, author of the dystopian novel Brave New World, published an essay Silence is Golden, reflecting on his first experience watching a sound film. Huxley despised cinema, calling it the most frightful creation-saving device for the production of standardized amusement, and the addition of sound made the writer concerned for the future of entertainment. Films engaged multiple senses but demanded no intellectual involvement, becoming more accessible, more immersive, and, as Huxley feared, more influential. Brave New World, published in 1932, features the cinema of the future a multisensory entertainment complex designed to distract society from seeking a deeper sense of purpose in life. Attendees enjoy a scent organ playing a delightfully refreshing Herbal Capriccio rippling arpeggios of thyme and lavender, of rosemary, basil, myrtle, tarragon, and get to experience every physical stimulation imaginable.Huxleys critical take on the state of the entertainment industry was spot-on. Obsessed with the idea of multisensory entertainment, studios did not take long to begin investing in immersive experiences. The 1950s were the age of experiments designed to attract more viewers: colored cinema, 3D films, and, of course, scented movies.In 1960, two films hit the American theaters: Scent of Mystery, accompanied by the odor-delivery technology called SmellOVision, and Behind the Great Wall, employing the process named AromaRama. SmellOVision was designed to transport scents through tubes to each seat, much like Disneys Smellitzers, whereas AromaRama distributed smells through the theaters ventilation. Both scented movies were panned by critics and viewers alike. In his review for the New York Times, Bosley Crowther wrote that ...synthetic smells [...] occasionally befit what one is viewing, but more often they confuse the atmosphere. Audiences complained about smells being either too subtle or too overpowering and the machines disrupting the viewing experience. The groundbreaking technologies were soon forgotten, and all plans to release more scented films were scrapped. Why did odors, so efficient at manufacturing nostalgic memories of an amusement park, fail to entertain the audience at the movies? On the one hand, it may attributed to the technological limitations of the time. For instance, AromaRama diffused the smells into the ventilation, which significantly delayed the delivery and required scents to be removed between scenes. Suffice it to say the viewers did not enjoy the experience.However, there could be other possible explanations.First of all, digital entertainment is traditionally odorless. Viewers do not anticipate movies to be accompanied by smells, and their brains are conditioned to ignore them. Researchers call it inattentional anosmia: people connect their enjoyment with what they see on the screen, not what they smell or taste. Moreover, background odors tend to fade and become less pronounced with time. A short exposure to a pleasant odor may be complimentary. For instance, viewers could smell orange as the character in Behind the Great Wall cut and squeezed the fruit: an impressive moment, as admitted by critics. However, left to linger, even the most pleasant scents can leave the viewer uninvolved or irritated. Finally, cinema does not require active sensory involvement. Viewers sit still in silence, rarely even moving their heads, while their sight and hearing are busy consuming and interpreting the information. Immersion requires suspension of disbelief: well-crafted films force the viewer to forget the reality around them, but the addition of scents may disrupt this state, especially if scents are not relevant or well-crafted. For the scented movie to engage the audience, smells must be integrated into the films events and play an important role in the viewing experience. Their delivery must be impeccable: discreet, smooth, and perfectly timed. In time, perhaps, we may see the revival of scented cinema. Until then, rare auteur experiments and 4Dcinema booths at carnivals will remain the only places where fragrant films will live on.Fortunately, the lessons from the early experiments helped others pave the way for the future of fragrant entertainment. Immersive GamingUnlike movies, video games require active participation. Players are involved in crafting the narrative of the game and, as such, may expect (and appreciate) a higher degree of realism. Virtual Reality is a good example of technology designed for full sensory stimulation.Modern headsets are impressive, but several companies are already working hard on the next-gen tech for immersive gaming. Meta and Manus are developing gloves that make virtual elements tangible. Teslasuit built a full-body suit that captures motion and biometry, provides haptic feedback, and emulates sensations for objects in virtual reality. We may be just a few steps away from virtual multi-sensory entertainment being as widespread as mobile phones. Scents are coming to VR, too, albeit at a slower pace, with a few companies already selling devices for fragrant entertainment. For instance, GameScent has developed a cube that can distribute up to 8 smells, from gunfire and explosion to forest and storm, using AI to sync the odors with the events in the game. The vast majority of experiments, however, occur in the labs, where researchers attempt to understand how smells impact gamers and test various concepts. Some assign smells to locations in a VR game and distribute them to players; others have the participants use a hand-held device to smell objects in the game. The majority of studies demonstrate promising results. The addition of fragrances creates a deeper sense of immersion and enhances realism in virtual reality and in a traditional gaming setting.A notable example of the latter is Tainted, an immersive game based on South-East Asian folklore, developed by researchers in 2017. The objective of the game is to discover and burn banana trees, where the main antagonist of the story a mythical vengeful spirit named Pontianak is traditionally believed to hide. The way Tainted incorporates smells into the gameplay is quite unique. A scent-emitting module, placed in front of the player, diffuses fragrances to complement the narrative. For instance, the smell of banana signals the ghosts presence, whereas pineapple aroma means that a flammable object required to complete the quest is nearby. Odors inform the player of dangers, give directions, and become an integral part of the gaming experience, like visuals and sound.Some of the most creative examples of scented learning come from places that combine education and entertainment, most notably, museums.Jorvik Viking Centre is famous for its use of smells of Viking-age York to capture the unique atmosphere of the past. Its scented halls, holograms, and entertainment programs turn a former archeological site into a carnival ride that teleports visitors into the 10th century to immerse them into the daily life of the Vikings. Authentic smells are the centers distinct feature, an integral part of its branding and marketing, and an important addition to its collection. Smells are responsible for making Jorvik exhibitions so memorable, and hopefully, for visitors walking away with a few Viking trivia facts firmly stuck in their heads.At the same time, learning is becoming increasingly more digital, from mobile apps for foreign languages to student portals and online universities. Smart devices strive to replace classrooms with their analog textbooks, papers, gel pens, and teachers. Virtual Reality is a step towards the future of immersive digital education, and odors may play a more significant role in making it even more efficient. Education will undoubtedly continue leveraging the achievements of the digital revolution to complement its existing tools. Tablets and Kindles are on their way to replace textbooks and pens. Phones are no longer deemed a harmful distraction that causes brain cancer. Odors, in turn, are becoming learning supplements. Teachers and parents have access to personalized diffusers that distribute the smell of peppermint to enhance students attention. Large scent-emitting devices for educational facilities are available on the market, too.At the same time, inspired to figure out the way to upload knowledge straight into our brains, weve discovered a way to learn things in our sleep using smells. Several studies have shown that exposure to scents during sleep significantly improves cognitive abilities and memory. More than that, smells can activate our memory while we sleep and solidify what we have learnt while awake.Odors may not replace textbooks and lectures, but their addition will make remembering and recalling things significantly easier. In fact, researchers from MIT built and tested a wearable scent-emitting device that can be used for targeted memory reactivation.In time, we will undoubtedly see more smart devices that make use of scents for memory enhancement, training, and entertainment. Integrated into the ecosystems of gadgets, olfactory wearables and smart home appliances will improve our well-being, increase productivity, and even detect early symptoms of illnesses.There is, however, a caveat.The Challenging UX Of ScentsWe know very little about smells. Until 2004, when Richard Axel and Linda Buck received a Nobel Prize for identifying the genes that control odor receptors, we didnt even know how our bodies processed smells or that different areas in our brains were activated by different odors. We know that our experience with smells is deep and intimate, from the memories they create to the emotions they evoke. We are aware that unpleasant scents linger longer and have a stronger impact on our mental state and memory. Finally, we understand that intensity, context, and delivery matter as much as the scent itself and that a decent aroma diffused out of place ruins the experience. Thus, if we wish to build devices that make the best use of scents, we need to follow a few simple principles. Design Principle #1: Tailor The Scents To Each UserIn his article about Smellscapes, J. Douglas Porteous writes:The smell of a certain institutional soap may carry a person back to the purgatory of boarding school. A particular floral fragrance reminds one of a lost love. A gust of odour from an ethnic spice emporium may waft one back, in memory, to Calcutta. J. Douglas PorteousSmells revive hidden memories and evoke strong emotions, but their connection to our minds is deeply personal. A rich, spicy aroma of freshly roasted coffee beans will not have the same impact on different people, and in order to use scents in learning, we need to tailor the experience to each user.In order to maximize the potential of odors in immersion and learning, we need to understand which smells have the most impact on the user. By filtering out the smells that the user finds unpleasant or associates with sad events in their past, we can reduce any potential negative effect on their wellness or memory.Design Principle #2: Stick To The Simpler SmellsHumans are notoriously bad at describing odors.Very few languages in the world feature specific terms for smells. For instance, the speakers of Jahai, a language in Malaysia, enjoy the privilege of having specific names for scents like bloody smell that attracts tigers and wild mango, wild ginger roots, bat caves, and petrol. English, on the other hand, often uses adjectives associated with flavor (smoky vanilla) or comparison (smells like orange) to describe scents. For centuries, we have been trying to work out a system that could help cluster odors. Aristotle classified all odors into six groups: sweet, acid, severe, fatty, sour, and fetid (unpleasant). Carl Linnaeus expanded it to 7 types: aromatic, fragrant, alliaceous (garlic), ambrosial (musky), hircinous (goaty), repulsive, and nauseous. Hans Henning arranged all scent groups in a prism. None of the existing classifications, however, help accurately describe complex smells, which inevitably makes it harder to recreate them.Academics have developed several comprehensive lists, for instance, the Odor Character Profiling that contains 146 unique descriptors. Pleasant smells from the list are easier to reproduce than unique and sophisticated odors. Although an aroma of the warm touch of an early summer sun may work better for a particular user than the smell of an apple pie, the high price of getting the scent wrong makes it a reasonable trade-off. Design Principle #3: Ensure Stable And Convenient DeliveryNothing can ruin a good olfactory experience more than an imperfect delivery system.Disneys Smellitzers and Jorviks scented exhibition set the standard for discreet, contextual, and consistent inclusion of smells to complement the experience. Their diffusers are well-concealed, and odors do not come off as overwhelming or out of place. On the other hand, the failure of scented movies from the 1950s can at least partially be attributed to poorly designed aroma delivery systems. Critics remembered that even the purifying treatment that was used to clear the theater air between scenes left a sticky, sweet and upsetting smell. Good delivery systems are often simple and focus on augmenting the experience without disrupting it. For instance, eScent, a scent-enhanced FFP3 mask, is engineered to reduce stress and improve the well-being of frontline workers. The mask features a slot for applicators infused with essential oil; users can choose fragrances and swap the applicator whenever they want. Beside that, eScent is no different from its analog predecessor: it does not require special equipment or preparation, and the addition of smells does not alter the experience of wearing a mask.In The Not Too Distant FutureWe may know little about smells, but we are steadily getting closer to harnessing their power. In 2022, Alex Wiltschko, a former Google staff research scientist, founded Osmo, a company dedicated to giving computers a sense of smell. In the long run, Osmo aspires to use its knowledge to manufacture scents on demand from sustainable synthetic materials. Today, the company operates as a research lab, using a trained AI to predict the smell of a substance by analyzing its molecular structure. Osmos first tests demonstrated some promising results, with machine accurately describing the scents in 53% of cases. Should Osmo succeed at building a machine capable of recognizing and predicting smells, it will change the digital world forever. How will we interact with our smart devices? How will we use their newly discovered sense of smell to exchange information, share precious memories with each other, or relive moments from the past? Is now the right time for us to come up with ideas, products, and services for the future?Odors are a booming industry that offers designers and engineers a unique opportunity to explore new and brave concepts. With the help of smells, we can transform entire industries, from education to healthcare, crafting immersive multi-sensory experiences for learning and leisure. Smells are a powerful tool that requires precision and perfection to reach the desired effect. Our past shortcomings may have tainted the reputation of scented experiences, but recent progress demonstrates that we have learnt our lessons well. Modern technologies make it even easier to continue the explorations and develop new ways to use smells in entertainment, learning, and wellness in the real world and beyond.Our digital spaces may be devoid of scents, but they will not remain odorless for long.
    0 Comments 0 Shares 270 Views
  • SMASHINGMAGAZINE.COM
    How To Hack Your Google Lighthouse Scores In 2024
    This article is a sponsored by Sentry.ioGoogle Lighthouse has been one of the most effective ways to gamify and promote web page performance among developers. Using Lighthouse, we can assess web pages based on overall performance, accessibility, SEO, and what Google considers best practices, all with the click of a button.We might use these tests to evaluate out-of-the-box performance for front-end frameworks or to celebrate performance improvements gained by some diligent refactoring. And you know you love sharing screenshots of your perfect Lighthouse scores on social media. Its a well-deserved badge of honor worthy of a confetti celebration. Just the fact that Lighthouse gets developers like us talking about performance is a win. But, whilst I dont want to be a party pooper, the truth is that web performance is far more nuanced than this. In this article, well examine how Google Lighthouse calculates its performance scores, and, using this information, we will attempt to hack those scores in our favor, all in the name of fun and science because in the end, Lighthouse is simply a good, but rough guide for debugging performance. Well have some fun with it and see to what extent we can trick Lighthouse into handing out better scores than we may deserve.But first, lets talk about data.Field Data Is ImportantLocal performance testing is a great way to understand if your website performance is trending in the right direction, but it wont paint a full picture of reality. The World Wide Web is the Wild West, and collectively, weve almost certainly lost track of the variety of device types, internet connection speeds, screen sizes, browsers, and browser versions that people are using to access websites all of which can have an impact on page performance and user experience.Field data and lots of it collected by an application performance monitoring tool like Sentry from real people using your website on their devices will give you a far more accurate report of your website performance than your lab data collected from a small sample size using a high-spec super-powered dev machine under a set of controlled conditions. Philip Walton reported in 2021 that almost half of all pages that scored 100 on Lighthouse didnt meet the recommended Core Web Vitals thresholds based on data from the HTTP Archive. Web performance is more than a single core web vital metric or Lighthouse performance score. What were talking about goes way beyond the type of raw data were working with.Web Performance Is More Than NumbersSpeed is often the first thing that comes up when talking about web performance just how long does a page take to load? This isnt the worst thing to measure, but we must bear in mind that speed is probably influenced heavily by business KPIs and sales targets. Google released a report in 2018 suggesting that the probability of bounces increases by 32% if the page load time reaches higher than three seconds, and soars to 123% if the page load time reaches 10 seconds. So, we must conclude that converting more sales requires reducing bounce rates. And to reduce bounce rates, we must make our pages load faster.But what does load faster even mean? At some point, were physically incapable of making a web page load any faster. Humans and the servers that connect them are spread around the globe, and modern internet infrastructure can only deliver so many bytes at a time.The bottom line is that page load is not a single moment in time. In an article titled What is speed? Google explains that a page load event is:[] an experience that no single metric can fully capture. There are multiple moments during the load experience that can affect whether a user perceives it as fast, and if you just focus solely on one, you might miss bad experiences that happen during the rest of the time.The key word here is experience. Real web performance is less about numbers and speed than it is about how we experience page load and page usability as users. And this segues nicely into a discussion of how Google Lighthouse calculates performance scores. (Its much less about pure speed than you might think.)How Google Lighthouse Performance Scores Are CalculatedThe Google Lighthouse performance score is calculated using a weighted combination of scores based on core web vital metrics (i.e., First Contentful Paint (FCP), Largest Contentful Paint (LCP), Cumulative Layout Shift (CLS)) and other speed-related metrics (i.e., Speed Index (SI) and Total Blocking Time (TBT)) that are observable throughout the page load timeline.This is how the metrics are weighted in the overall score: Metric Weighting (%) Total Blocking Time 30 Cumulative Layout Shift 25 Largest Contentful Paint 25 First Contentful Paint 10 Speed Index 10 The weighting assigned to each score gives us insight into how Google prioritizes the different building blocks of a good user experience:1. A Web Page Should Respond to User InputThe highest weighted metric is Total Blocking Time (TBT), a metric that looks at the total time after the First Contentful Paint (FCP) to help indicate where the main thread may be blocked long enough to prevent speedy responses to user input. The main thread is considered blocked any time theres a JavaScript task running on the main thread for more than 50ms. Minimizing TBT ensures that a web page responds to physical user input (e.g., key presses, mouse clicks, and so on).2. A Web Page Should Load Useful Content With No Unexpected Visual ShiftsThe next most weighted Lighthouse metrics are Largest Contentful Paint (LCP) and Cumulative Layout Shift (CLS). LCP marks the point in the page load timeline when the pages main content has likely loaded and is therefore useful.At the point where the main content has likely loaded, you also want to maintain visual stability to ensure that users can use the page and are not affected by unexpected visual shifts (CLS). A good LCP score is anything less than 2.5 seconds (which is a lot higher than we might have thought, given we are often trying to make our websites as fast as possible).3. A Web Page Should Load SomethingThe First Contentful Paint (FCP) metric marks the first point in the page load timeline where the user can see something on the screen, and the Speed Index (SI) measures how quickly content is visually displayed during page load over time until the page is complete.Your page is scored based on the speed indices of real websites using performance data from the HTTP Archive. A good FCP score is less than 1.8 seconds and a good SI score is less than 3.4 seconds. Both of these thresholds are higher than you might expect when thinking about speed.Usability Is Favored Over Raw SpeedGoogle Lighthouses performance scoring is, without a doubt, less about speed and more about usability. Your SI and FCP could be super quick, but if your LCP takes too long to paint, and if CLS is caused by large images or external content taking some time to load and shifting things visually, then your overall performance score will be lower than if your page was a little slower to render the FCP but didnt cause any CLS. Ultimately, if the page is unresponsive due to JavaScript blocking the main thread for more than 50ms, your performance score will suffer more than if the page was a little slow to paint the FCP.To understand more about how the weightings of each metric contribute to the final performance score, you can play about with the sliders on the Lighthouse Scoring Calculator, and heres a rudimentary table demonstrating the effect of skewed individual metric weightings on the overall performance score, proving that page usability and responsiveness is favored over raw speed. Description FCP (ms) SI (ms) LCP (ms) TBT (ms) CLS Overall Score Slow to show something on screen 6000 0 0 0 0 90 Slow to load content over time 0 5000 0 0 0 90 Slow to load the largest part of the page 0 0 6000 0 0 76 Visual shifts occurring during page load 0 0 0 0 0.82 76 Page is unresponsive to user input 0 0 0 2000 0 70 The overall Google Lighthouse performance score is calculated by converting each raw metric value into a score from 0 to 100 according to where it falls on its Lighthouse scoring distribution, which is a log-normal distribution derived from the performance metrics of real website performance data from the HTTP Archive. There are two main takeaways from this mathematically overloaded information:Your Lighthouse performance score is plotted against real website performance data, not in isolation.Given that the scoring uses log-normal distribution, the relationship between the individual metric values and the overall score is non-linear, meaning you can make substantial improvements to low-performance scores quite easily, but it becomes more difficult to improve an already high score.Read more about how metric scores are determined, including a visualization of the log-normal distribution curve on developer.chrome.com.Can We Trick Google Lighthouse?I appreciate Googles focus on usability over pure speed in the web performance conversation. It urges developers to think less about aiming for raw numbers and more about the real experiences we build. That being said, Ive wondered whether today in 2024, its possible to fool Google Lighthouse into believing that a bad page in terms of usability and usefulness is actually a great one.I put on my lab coat and science goggles to investigate. All tests were conducted:Using the Chromium Lighthouse plugin,In an incognito window in the Arc browser,Using the navigation and mobile settings (apart from where described differently),By me, in a lab (i.e., no field data).That all being said, I fully acknowledge that my controlled test environment contradicts my advice at the top of this post, but the experiment is an interesting ride nonetheless. What I hope youll take away from this is that Lighthouse scores are only one piece and a tiny one at that of a very large and complex web performance puzzle. And, without field data, Im not sure any of this matters anyway.How to Hack FCP and LCP ScoresTL;DR: Show the smallest amount of LCP-qualifying content on load to boost the FCP and LCP scores until the Lighthouse test has likely finished.FCP marks the first point in the page load timeline where the user can see anything at all on the screen, while LCP marks the point in the page load timeline when the main page content (i.e., the largest text or image element) has likely loaded. A fast LCP helps reassure the user that the page is useful. Likely and useful are the important words to bear in mind here.What Counts as an LCP ElementThe types of elements on a web page considered by Lighthouse for LCP are:<img> elements,<image> elements inside an <svg> element,<video> elements,An element with a background image loaded using the url() function, (and not a CSS gradient), andBlock-level elements containing text nodes or other inline-level text elements.The following elements are excluded from LCP consideration due to the likelihood they do not contain useful content:Elements with zero opacity (invisible to the user),Elements that cover the full viewport (likely to be background elements), andPlaceholder images or other images with low entropy (i.e., low informational content, such as a solid-colored image).However, the notion of an image or text element being useful is completely subjective in this case and generally out of the realm of what machine code can reliably determine. For example, I built a page containing nothing but a <h1> element where, after 10 seconds, JavaScript inserts more descriptive text into the DOM and hides the <h1> element.Lighthouse considers the heading element to be the LCP element in this experiment. At this point, the page load timeline has finished, but the pages main content has not loaded, even though Lighthouse thinks it is likely to have loaded within those 10 seconds. Lighthouse still awards us with a perfect score of 100 even if the heading is replaced by a single punctuation mark, such as a full stop, which is even less useful.This test suggests that if you need to load page content via client-side JavaScript, well want to avoid displaying a skeleton loader screen since that requires loading more elements on the page. And since we know the process will take some time and that we can offload the network request from the main thread to a web worker so it wont affect the TBT we can use some arbitrary splash screen that contains a minimal viable LCP element (for better FCP scoring). This way, were giving Lighthouse the impression that the page is useful to users quicker than it actually is.All we need to do is include a valid LCP element that contains something that counts as the FCP. While I would never recommend loading your main page content via client-side JavaScript in 2024 (serve static HTML from a CDN instead or build as much of the page as you can on a server), I would definitely not recommend this hack for a good user experience, regardless of what the Lighthouse performance score tells you. This approach also wont earn you any favors with search engines indexing your site, as the robots are unable to discover the main content while it is absent from the DOM.I also tried this experiment with a variety of random images representing the LCP to make the page even less useful. But given that I used small file sizes made smaller and converted into next-gen image formats using a third-party image API to help with page load speed it seemed that Lighthouse interpreted the elements as placeholder images or images with low entropy. As a result, those images were disqualified as LCP elements, which is a good thing and makes the LCP slightly less hackable.View the demo page and use Chromium DevTools in an incognito window to see the results yourself.This hack, however, probably wont hold up in many other use cases. Discord, for example, uses the splash screen approach when you hard-refresh the app in the browser, and it receives a sad 29 performance score.Compared to my DOM-injected demo, the LCP element was calculated as some content behind the splash screen rather than elements contained within the splash screen content itself, given there were one or more large images in the focussed text channel I tested on. One could argue that Lighthouse scores are less important for apps that are behind authentication anyway: they dont need to be indexed by search engines.There are likely many other situations where apps serve user-generated content and you might be unable to control the LCP element entirely, particularly regarding images.For example, if you can control the sizes of all the images on your web pages, you might be able to take advantage of an interesting hack or optimization (in very large quotes) to arbitrarily game the system, as was the case of RentPath. In 2021, developers at RentPath managed to improve their Lighthouse performance score by 17 points when increasing the size of image thumbnails on a web page. They convinced Lighthouse to calculate the LCP element as one of the larger thumbnails instead of a Google Map tile on the page, which takes considerably longer to load via JavaScript.The bottom line is that you can gain higher Lighthouse performance scores if you are aware of your LCP element and in control of it, whether thats through a hack like RentPaths or mine or a real-deal improvement. That being said, whilst Ive described the splash screen approach as a hack in this post, that doesnt mean this type of experience couldnt offer a purposeful and joyful experience. Performance and user experience are about understanding whats happening during page load, and its also about intent.How to Hack CLS ScoresTL;DR: Defer loading content that causes layout shifts until the Lighthouse test has likely finished to make the test think it has enough data. CSS transforms do not negatively impact CLS, except if used in conjunction with new elements added to the DOM.CLS is measured on a decimal scale; a good score is less than 0.1, and a poor score is greater than 0.25. Lighthouse calculates CLS from the largest burst of unexpected layout shifts that occur during a users time on the page based on a combination of the viewport size and the movement of unstable elements in the viewport between two rendered frames. Smaller one-off instances of layout shift may be inconsequential, but a bunch of layout shifts happening one after the other will negatively impact your score.If you know your page contains annoying layout shifts on load, you can defer them until after the page load event has been completed, thus fooling Lighthouse into thinking there is no CLS. This demo page I created, for example, earns a CLS score of 0.143 even though JavaScript immediately starts adding new text elements to the page, shifting the original content up. By pausing the JavaScript that adds new nodes to the DOM by an arbitrary five seconds with a setTimeout(), Lighthouse doesnt capture the CLS that takes place.This other demo page earns a performance score of 100, even though it is arguably less useful and useable than the last page given that the added elements pop in seemingly at random without any user interaction.Whilst it is possible to defer layout shift events for a page load test, this hack definitely wont work for field data and user experience over time (which is a more important focal point, as we discussed earlier). If we perform a time span test in Lighthouse on the page with deferred layout shifts, Lighthouse will correctly report a non-green CLS score of around 0.186.If you do want to intentionally create a chaotic experience similar to the demo, you can use CSS animations and transforms to more purposefully pop the content into view on the page. In Googles guide to CLS, they state that content that moves gradually and naturally from one position to another can often help the user better understand whats going on and guide them between state changes again, highlighting the importance of user experience in context.On this next demo page, Im using CSS transform to scale() the text elements from 0 to 1 and move them around the page. The transforms fail to trigger CLS because the text nodes are already in the DOM when the page loads. That said, I did observe in my testing that if the text nodes are added to the DOM programmatically after the page loads via JavaScript and then animated, Lighthouse will indeed detect CLS and score things accordingly.You Cant Hack a Speed Index ScoreThe Speed Index score is based on the visual progress of the page as it loads. The quicker your content loads nearer the beginning of the page load timeline, the better.It is possible to do some hack to trick the Speed Index into thinking a page load timeline is slower than it is. Conversely, theres no real way to fake loading content faster than it does. The only way to make your Speed Index score better is to optimize your web page for loading as much of the page as possible, as soon as possible. Whilst not entirely realistic in the web landscape of 2024 (mainly because it would put designers out of a job), you could go all-in to lower your Speed Index as much as possible by:Delivering static HTML web pages only (no server-side rendering) straight from a CDN,Avoiding images on the page,Minimizing or eliminating CSS, andPreventing JavaScript or any external dependencies from loading.You Also Cant (Really) Hack A TBT ScoreTBT measures the total time after the FCP where the main thread was blocked by JavaScript tasks for long enough to prevent responses to user input. A good TBT score is anything lower than 200ms.JavaScript-heavy web applications (such as single-page applications) that perform complex state calculations and DOM manipulation on the client on page load (rather than on the server before sending rendered HTML) are prone to suffering poor TBT scores. In this case, you could probably hack your TBT score by deferring all JavaScript until after the Lighthouse test has finished. That said, youd need to provide some kind of placeholder content or loading screen to satisfy the FCP and LCP and to inform users that something will happen at some point. Plus, youd have to go to extra lengths to hack around the front-end framework youre using. (You dont want to load a placeholder page that, at some point in the page load timeline, loads a separate React app after an arbitrary amount of time!)Whats interesting is that while were still doing all sorts of fancy things with JavaScript in the client, advances in the modern web ecosystem are helping us all reduce the probability of a less-than-stellar TBT score. Many front-end frameworks, in partnership with modern hosting providers, are capable of rendering pages and processing complex logic on demand without any client-side JavaScript. While eliminating JavaScript on the client is not the goal, we certainly have a lot of options to use a lot less of it, thus minimizing the risk of doing too much computation on the main thread on page load.Bottom Line: Lighthouse Is Still Just A Rough GuideGoogle Lighthouse cant detect everything thats wrong with a particular website. Whilst Lighthouse performance scores prioritize page usability in terms of responding to user input, it still cant detect every terrible usability or accessibility issue in 2024.In 2019, Manuel Matuzovi published an experiment where he intentionally created a terrible page that Lighthouse thought was pretty great. I hypothesized that five years later, Lighthouse might do better; but it doesnt.On this final demo page I put together, input events are disabled by CSS and JavaScript, making the page technically unresponsive to user input. After five seconds, JavaScript flips a switch and allows you to click the button. The page still scores 100 for both performance and accessibility.You really cant rely on Lighthouse as a substitute for usability testing and common sense.Some More Silly HacksAs with everything in life, theres always a way to game the system. Here are some more tried and tested guaranteed hacks to make sure your Lighthouse performance score artificially knocks everyone elses out of the park:Only run Lighthouse tests using the fastest and highest-spec hardware.Make sure your internet connection is the fastest it can be; relocate if you need to.Never use field data, only lab data, collected using the aforementioned fastest and highest-spec hardware and super-speed internet connection.Rerun the tests in the lab using different conditions and all the special code hacks I described in this post until you get the result(s) you want to impress your friends, colleagues, and random people on the internet.Note: The best way to learn about web performance and how to optimize your websites is to do the complete opposite of everything weve covered in this article all of the time. And finally, to seriously level up your performance skills, use an application monitoring tool like Sentry. Think of Lighthouse as the canary and Sentry as the real-deal production-data-capturing, lean, mean, web vitals machine.And finally-finally, heres the link to the full demo site for educational purposes.
    0 Comments 0 Shares 263 Views
  • SMASHINGMAGAZINE.COM
    Useful CSS Tips And Techniques
    If youve been in the web development game for longer, you might recall the days when CSS was utterly confusing and you had to come up with hacks and workarounds to make things work. Luckily, these days are over and new features such as container queries, cascade layers, CSS nesting, the :has selector, grid and subgrid, and even new color spaces make CSS more powerful than ever before.And the innovation doesnt stop here. We also might have style queries and perhaps even state queries, along with balanced text-wrapping and CSS anchor positioning coming our way.With all these lovely new CSS features on the horizon, in this post, we dive into the world of CSS with a few helpful techniques, a deep-dive into specificity, hanging punctuation, and self-modifying CSS variables. We hope theyll come in handy in your work.Cascade And Specificity PrimerMany fear the cascade and specificity in CSS. However, the concept isnt as hard to get to grips with as one might think. To help you get more comfortable with two of the most fundamental parts of CSS, Andy Bell wrote a wonderful primer on the cascade and specificity.The guide explains how certain CSS property types will be prioritized over others and dives deeper into specificity scoring to help you assess how likely it is that the CSS of a specific rule will apply. Andy uses practical examples to illustrate the concepts and simplifies the underlying mental model to make it easy to adopt and utilize. A power boost for your CSS skills.Testing HTML With Modern CSSHave you ever considered testing HTML with CSS instead of JavaScript? CSS selectors today are so powerful that it is actually possible to test for most kinds of HTML patterns using CSS alone. A proponent of the practice, Heydon Pickering summarized everything you need to know about testing HTML with CSS, whether you want to test accessibility, uncover HTML bloat, or check the general usability.As Heydon points out, testing with CSS has quite some benefits. Particularly if you work in the browser and prefer exploring visual regressions and inspector information over command line logs, testing with CSS could be for you. It also shines in situations where you dont have direct access to a clients stack: Just provide a test stylesheet, and clients can locate instances of bad patterns you have identified for them without having to onboard you to help them do so. Clever!Self-Modifying CSS VariablesThe CSS spec for custom properties does not allow a custom property to reference itself although there are quite some use cases where such a feature would be useful. To close the gap, Lea Verou proposed an inherit() function in 2018, which the CSSWG added to the specs in 2021. It hasnt been edited-in yet, but Roman Komarov found a workaround that makes it possible to start involving its behavior.Romans approach uses container-style queries as a way to access the previous state of a custom property. It can be useful when you want to cycle through various hues without having a static list of values, to match the border-radius visually, or to nest menu lists, for example. The workaround is still strictly experimental (so do not use it in production!), but since it is likely that style queries will gain broad browser support before inherit(), it has great potential.Hanging Punctuation In CSShanging-punctuation is a neat little CSS property. It extends punctuation marks such as opening quotes to cater to nice, clean blocks of text. And while its currently only supported in Safari, it doesnt hurt to include it in your code, as the property is a perfect example of progressive enhancement: It leaves things as they are in browsers that dont support it and adds the extra bit of polish in browsers that do.Jeremy Keith noticed an unintended side-effect of hanging-punctuation, though. When you apply it globally, its also applied to form fields. So, if the text in a form field starts with a quotation mark or some other piece of punctuation, its pushed outside the field and hidden. Jeremy shares a fix for it: Add input, textarea { hanging-punctuation: none; } to prevent your quotation marks from disappearing. A small tip that can save you a lot of headaches.Fixing aspect-ratio IssuesThe aspect-ratio property shines in fluid environments. It can handle anything from inserting a square-shaped <div> to matching the 16:9 size of a <video>, without you thinking in exact dimensions. And most of the time, it does so flawlessly. However, there are some things that can break aspect-ratio. Chris Coyier takes a closer look at three reasons why your aspect-ratio might not work as expected.As Chris explains, one potential breakage is setting both dimensions which might seem obvious, but it can be confusing if one of the dimensions is set from somewhere you didnt expect. Stretching and content that forces height can also lead to unexpected results. A great overview of what to look out for when aspect-ratio breaks.Masonry Layout With CSSCSS Grid has taken layouts on the web to the next level. However, as powerful as CSS is today, not every layout that can be imagined is feasible. Masonry layout is one of those things that cant be accomplished with CSS alone. To change that, the CSS Working Group is asking for your help.There are currently two approaches in discussion at the CSS Working Group about how CSS should handle masonry-style layouts and they are asking for insights from real-world developers and designers to find the best solution.The first approach would expand CSS Grid to include masonry, and the second approach would be to introduce a masonry layout as a display: masonry display type. Jen Simmons summarized what you need to know about the ongoing debate and how you can contribute your thoughts on which direction CSS should take.Before you come to a conclusion, also be sure to read Rachel Andrews post on the topic. She explains why the Chrome team has concerns about implementing a masonry layout as a part of the CSS Grid specification and clarifies what the alternate proposal enables.Boost Your CSS SkillsIf youd like to dive deeper into CSS, weve got your back with a few friendly events and SmashingConfs coming up this year:Advanced Modern CSS Masterclass with Manuel Matuzovi, June 24 July 8SmashingConf Freiburg 2024 The Web, Sep 911SmashingConf New York 2024 Front-End & UX, Oct 710SmashingConf Antwerp 2024 Design & UX, Oct 2831Wed be absolutely delighted to welcome you to one of our special Smashing experiences be it online or in person!Smashing Weekly NewsletterWith our weekly newsletter, we aim to bring you useful, practical tidbits and share some of the helpful things that folks are working on in the web industry. There are so many talented folks out there working on brilliant projects, and wed appreciate it if you could help spread the word and give them the credit they deserve!Also, by subscribing, there are no third-party mailings or hidden advertising, and your support really helps us pay the bills. Interested in sponsoring? Feel free to check out our partnership options and get in touch with the team anytime theyll be sure to get back to you as soon as they can.
    0 Comments 0 Shares 259 Views
  • SMASHINGMAGAZINE.COM
    Presenting UX Research And Design To Stakeholders: The Power Of Persuasion
    For UX researchers and designers, our journey doesnt end with meticulously gathered data or well-crafted design concepts saved on our laptops or in the cloud. Our true impact lies in effectively communicating research findings and design concepts to key stakeholders and securing their buy-in for implementing our user-centered solutions. This is where persuasion and communication theory become powerful tools, empowering UX practitioners to bridge the gap between research and action.I shared a framework for conducting UX research in my previous article on infusing communication theory and UX. In this article, Ill focus on communication and persuasion considerations for presenting our research and design concepts to key stakeholder groups. A Word On Persuasion: Guiding Understanding, Not ManipulationUX professionals can strategically use persuasion techniques to turn complex research results into clear, practical recommendations that stakeholders can understand and act on. Its crucial to remember that persuasion is about helping people understand what to do, not tricking them. When stakeholders see the value of designing with the user in mind, they become strong partners in creating products and services that truly meet user needs. Were not trying to manipulate anyone; were trying to make sure our ideas get the attention they deserve in a busy world.The Hovland-Yale Model Of PersuasionThe Hovland-Yale model, a framework for understanding how persuasion works, was developed by Carl Hovland and his team at Yale University in the 1950s. Their research was inspired by World War II propaganda, as they wanted to figure out what made some messages more convincing than others.In the Hovland-Yale model, persuasion is understood as a process involving the Independent variables of Source, Message, and Audience. The elements of each factor then lead to the Audience having internal mediating processes around the topic, which, if independent variables are strong enough, can strengthen or change attitudes or behaviors. The interplay of the internal mediating processes leads to persuasion or not, which then leads to the observable effect of the communication (or not, if the message is ineffective). The model proposes that if these elements are carefully crafted and applied, the intended change in attitude or behavior (Effect) is more likely to be successful.The diagram below helps identify the parts of persuasive communication. It shows what you can control as a presenter, how people think about the message and the impact it has. If done well, it can lead to change. Ill focus exclusively on the independent variables in the far left side of the diagram in this article because, theoretically, this is what you, as the outside source creating a persuasive message, are in control of and, if done well, would lead to the appropriate mediating processes and desired observable effects.Effective communication can reinforce currently held positions. You dont always need to change minds when presenting research; much of what we find and present might align with currently held beliefs and support actions our stakeholders are already considering.Over the years, researchers have explored the usefulness and limitations of this model in various contexts. Ive provided a list of citations at the end of this article if you are interested in exploring academic literature on the Hovland-Yale model. Reflecting on some of the research findings can help shape how we create and deliver our persuasive communication. Some consistent from academia highlight that:Source credibility significantly influences the acceptance of a persuasive message. A high-credibility source is more persuasive than a low-credibility one.Messages that are logically structured, clear, and relatively concise are more likely to be persuasive.An audiences attitude change is also dependent on the channel of communication. Mass media is found to be less effective in changing attitudes than face-to-face communication.The audiences initial attitude, intelligence, and self-esteem have a significant role in the persuasion process. Research suggests that individuals with high intelligence are typically more resistant to persuasion efforts, and those with moderate self-esteem are easier to persuade than those with low or high self-esteem.The effect of persuasive messages tends to fade over time, especially if delivered by a non-credible source. This suggests a need to reinforce even effective messages on a regular basis to maintain an effect.Ill cover the impact of each of these bullets on UX research and design presentations in the relevant sections below.Its important to note that while the Hovland-Yale model provides valuable insight into persuasive communication, it remains a simplification of a complex process. Actual attitude change and decision-making can be influenced by a multitude of other factors not covered in this model, like emotional states, group dynamics, and more, necessitating a multi-faceted approach to persuasion. However, the model provides a manageable framework to strengthen the communication of UX research findings, with a focus on elements that are within the control of the researcher and product team. Ill break down the process of presenting findings to various audiences in the following section.Lets move into applying the models to our work as UX practitioners with a focus on how the model applies to how we prepare and present our findings to various stakeholders. You can reference the diagram above as needed as we move through the Independent variables.Applying The Hovland-Yale Model To Presenting Your UX Research FindingsLets break down the key parts of the Hovland-Yale model and see how we can use them when presenting our UX research and design ideas.SourceRevised: The Hovland-Yale model stresses that where a message comes from greatly affects how believable and effective it is. Research shows that a convincing source needs to be seen as dependable, informed, and trustworthy. In UX research, this source is usually the researcher(s) and other UX team members who present findings, suggest actions, lead workshops, and share design ideas. Its crucial for the UX team to build trust with their audience, which often includes users, stakeholders, and designers.You can demonstrate and strengthen your credibility throughout the research process and once again when presenting your findings. How Can You Make Yourself More Credible?You should start building your expertise and credibility before you even finish your research. Often, stakeholders will have already formed an opinion about your work before you even walk into the room. Here are a couple of ways to boost your reputation before or at the beginning of a project:Case StudiesA well-written case study about your past work can be a great way to show stakeholders the benefits of user-centered design. Make sure your case studies match what your stakeholders care about. Dont just tell an interesting story; tell a story that matters to them. Understand their priorities and tailor your case study to show how your UX work has helped achieve goals like higher ROI, happier customers, or lower turnover. Share these case studies as a document before the project starts so stakeholders can review them and get a positive impression of your work.Thought LeadershipSharing insights and expertise that your UX team has developed is another way to build credibility. This kind of thought leadership can establish your team as the experts in your field. It can take many forms, like blog posts, articles in industry publications, white papers, presentations, podcasts, or videos. You can share this content on your website, social media, or directly with stakeholders.For example, if youre about to start a project on gathering customer feedback, share any relevant articles or guides your team has created with your stakeholders before the project kickoff. If you are about to start developing a voice of the customer program and you happen to have Victor or Dana on your team, share their article on creating a VoC to your group of stakeholders prior to the kickoff meeting. [Shameless self-promotion and a big smile emoji].You can also build credibility and trust while discussing your research and design, both during the project and when you present your final results.Business Goals AlignmentTo really connect with stakeholders, make sure your UX goals and the companys business goals work together. Always tie your research findings and design ideas back to the bigger picture. This means showing how your work can affect things like customer happiness, more sales, lower costs, or other important business measures. You can even work with stakeholders to figure out which measures matter most to them. When you present your designs, point out how theyll help the company reach its goals through good UX.Industry BenchmarksThese days, its easier to find data on how other companies in your industry are doing. Use this to your advantage! Compare your findings to these benchmarks or even to your competitors. This can help stakeholders feel more confident in your work. Show them how your research fits in with industry trends or how it uncovers new ways to stand out. When you talk about your designs, highlight how youve used industry best practices or made changes based on what youve learned from users.Methodological TransparencyBe open and honest about how you did your research. This shows you know what youre doing and that you can be trusted. For example, if you were looking into why fewer people are renewing their subscriptions to a fitness app, explain how you planned your research, who you talked to, how you analyzed the data, and any challenges you faced. This transparency helps people accept your research results and builds trust.Increasing Credibility Through Design ConceptsHere are some specific ways to make your design concepts more believable and trustworthy to stakeholders:Ground Yourself in Research. Youve done the research, so use it! Make sure your design decisions are based on your findings and user data. When you present, highlight the data that supports your choices.Go Beyond Mockups. Its helpful for stakeholders to see your designs in action. Static mockups are a good start, but try creating interactive prototypes that show how users will move through and use your design. This is especially important if youre creating something new that stakeholders might have trouble visualizing.User Quotes and Testimonials. Include quotes or stories from users in your presentation. This makes the process more personal and shows that youre focused on user needs. You can use these quotes to explain specific design choices.Before & After Impact. Use visuals or user journey maps to show how your design solution improves the user experience. If youve mapped out the current user journey or documented existing problems, show how your new design fixes those problems. Dont leave stakeholders guessing about your design choices. Briefly explain why you made key decisions and how they help users or achieve business goals. You should have research and stakeholder input to back up your decisions.Show Your Process. When presenting a more developed concept, show the work that led up to it. Dont just share the final product. Include early sketches, wireframes, or simple prototypes to show how the design evolved and the reasoning behind your choices. This is especially helpful for executives or stakeholders who havent been involved in the whole process.Be Open to Feedback and Iteration. Work together with stakeholders. Show that youre open to their feedback and explain how their input can help you improve your designs.Much of what Ive covered above are also general best practices for presenting. Remember, these are just suggestions. You dont have to use every single one to make your presentations more persuasive. Try different things, see what works best for you and your stakeholders, and have fun with it! The goal is to build trust and credibility with your UX team.MessageThe Hovland-Yale model, along with most other communication models, suggests that what you communicate is just as important as how you communicate it. In UX research, your message is usually your insights, data analysis, findings, and recommendations. Ive touched on this in the previous section because its hard to separate the source (whos talking) from the message (what theyre saying). For example, building trust involves being transparent about your research methods, which is part of your message. So, some of what Im about to say might sound familiar.For this article, lets define the message as your research findings and everything that goes with them (e.g., what you say in your presentation, the slides you use, other media), as well as your design concepts (how you show your design solutions, including drawings, wireframes, prototypes, and so on).The Hovland-Yale model says its important to make your message easy to understand, relevant, and impactful. For example, instead of just saying,30% of users found the signup process difficult.you could say,30% of users struggled to sign up because the process was too complicated. This could lead to fewer renewals. Making the signup process easier could increase renewals and improve the overall experience.Storytelling is also a powerful way to get your message across. Weaving your findings into a narrative helps people connect with your data on a human level and remember your key points. Using real quotes or stories from users makes your presentation even more compelling.Here are some other tips for delivering a persuasive message:Practice Makes PerfectRehearse your presentation. This will help you smooth out any rough spots, anticipate questions, and feel more confident.Anticipate ConcernsThink about any objections stakeholders might have and be ready to address them with data.Welcome FeedbackEncourage open discussion during your presentation. Listen to what stakeholders have to say and show that youre willing to adapt your recommendations based on their concerns. This builds trust and makes everyone feel like theyre part of the process.Follow Through is KeyAfter your presentation, send a clear summary of the main points and action items. This shows youre professional and makes it easy for stakeholders to refer back to your findings.When presenting design concepts, its important to tell, not just show, what youre proposing. Stakeholders might not have a deep understanding of UX, so just showing them screenshots might not be enough. Use user stories to walk them through the redesigned experience. This helps them understand how users will interact with your design and what benefits it will bring. Static screens show the what, but user stories reveal the why and how. By focusing on the user journey, you can demonstrate how your design solves problems and improves the overall experience.For example, if youre suggesting changes to the search bar and adding tooltips, you could say:Imagine a user lands on the homepage and sees the new, larger search bar. They enter their search term and get results. If they see an unfamiliar tool or a new action, they can hover over it to see a brief description.Here are some other ways to make your design concepts clearer and more persuasive:Clear Design LanguageUse a consistent and visually appealing design language in your mockups and prototypes. This shows professionalism and attention to detail.Accessibility Best PracticesMake sure your design is accessible to everyone. This shows that you care about inclusivity and user-centered design.One final note on the message is that research has found the likelihood of an audiences attitude change is also dependent on the channel of communication. Mass media is found to be less effective in changing attitudes than face-to-face communication. Distributed teams and remote employees can employ several strategies to compensate for any potential impact reduction of asynchronous communication:Interactive ElementsIncorporate interactive elements into presentations, such as polls, quizzes, or clickable prototypes. This can increase engagement and make the experience more dynamic for remote viewers.Video SummariesCreate short video summaries of key findings and recommendations. This adds a personal touch and can help convey nuances that might be lost in text or static slides.Virtual Q&A SessionsSchedule dedicated virtual Q&A sessions where stakeholders can ask questions and engage in discussions. This allows for real-time interaction and clarification, mimicking the benefits of face-to-face communication.Follow-up CommunicationActively follow up with stakeholders after theyve reviewed the materials. Offer to discuss the content, answer questions, and gather feedback. This demonstrates a commitment to communication and can help solidify key takeaways.Framing Your Message for Maximum ImpactThe way you frame an issue can greatly influence how stakeholders see it. Framing is a persuasion technique that can help your message resonate more deeply with specific stakeholders. Essentially, you want to frame your message in a way that aligns with your stakeholders attitudes and values and presents your solution as the next logical step. There are many resources on how to frame messages, as this technique has been used often in public safety and public health research to encourage behavior change. This article discusses applying framing techniques for digital design.You can also frame issues in a way that motivates your stakeholders. For example, instead of calling usability issues problems, I like to call them opportunities. This emphasizes the potential for improvement. Lets say your research on a hospital website finds that the appointment booking process is confusing. You could frame this as an opportunity to improve patient satisfaction and maybe even reduce call center volume by creating a simpler online booking system. This way, your solution is a win-win for both patients and the hospital. Highlighting the positive outcomes of your proposed changes and using language that focuses on business benefits and user satisfaction can make a big difference.AudienceUnderstanding your audiences goals is essential before embarking on any research or design project. It serves as the foundation for tailoring content, supporting decision-making processes, ensuring clarity and focus, enhancing communication effectiveness, and establishing metrics for evaluation.One specific aspect to consider is securing buy-in from the product and delivery teams prior to beginning any research or design. Without their investment in the outcomes and input on the process, it can be challenging to find stakeholders who see value in a project you created in a vacuum. Engaging with these teams early on helps align expectations, foster collaboration, and ensure that the research and design efforts are informed by the organizations objectives.Once youve identified your key stakeholders and secured buy-in, you should then Map the Decision-Making Process or understand the decision-making process your audience goes through, including the pain points, considerations, and influencing factors.How are decisions made, and who makes them?Is it group consensus?Are there key voices that overrule all others?Is there even a decision to be made in regard to the work you will do?Understanding the decision-making process will enable you to provide the necessary information and support at each stage.Finally, prior to engaging in any work, set clear objectives with your key stakeholders. Your UX team needs to collaborate with the product and delivery teams to establish clear objectives for the research or design project. These objectives should align with the organizations goals and the audiences needs.By understanding your audiences goals and involving the product and delivery teams from the outset, you can create research and design outcomes that are relevant, impactful, and aligned with the organizations objectives.As the source of your message, its your job to understand who youre talking to and how they see the issue. Different stakeholders have different interests, goals, and levels of knowledge. Its important to tailor your communication to each of these perspectives. Adjust your language, what you emphasize, and the complexity of your message to suit your audience. Technical jargon might be fine for technical stakeholders, but it could alienate those without a technical background.Audience Characteristics: Know Your StakeholdersRemember, your audiences existing opinions, intelligence, and self-esteem play a big role in how persuasive you can be. Research suggests that people with higher intelligence tend to be more resistant to persuasion, while those with moderate self-esteem are easier to persuade than those with very low or very high self-esteem. Understanding your audience is key to giving a persuasive presentation of your UX research and design concepts. Tailoring your communication to address the specific concerns and interests of your stakeholders can significantly increase the impact of your findings.To truly know your audience, you need information about who youll be presenting to, and the more you know, the better. At the very least, you should identify the different groups of stakeholders in your audience. This could include designers, developers, product managers, and executives. If possible, try to learn more about your key stakeholders. You could interview them at the beginning of your process, or you could give them a short survey to gauge their attitudes and behaviors toward the area your UX team is exploring.Then, your UX team needs to decide the following:How can you best keep all stakeholders engaged and informed as the project unfolds?How will your presentation or concepts appeal to different interests and roles?How can you best encourage discussion and decision-making with the different stakeholders present?Should you hold separate presentations because of the wide range of stakeholders you need to share your findings with?How will you prioritize information? Your answers to the previous questions will help you focus on what matters most to each stakeholder group. For example, designers might be more interested in usability issues, while executives might care more about the business impact. If youre presenting to a mixed audience, include a mix of information and be ready to highlight whats relevant to each group in a way that grabs their attention. Adapt your communication style to match each groups preferences. Provide technical details for developers and emphasize user experience benefits for executives.ExampleLets say you did UX research for a mobile banking app, and your audience includes designers, developers, and product managers.Designers:Focus on: Design-related findings like what users prefer in the interface, navigation problems, and suggestions for the visual design.How to communicate: Use visuals like heatmaps and user journey maps to show design challenges. Talk about how fixing these issues can make the overall user experience better.Developers:Focus on: Technical stuff, like performance problems, bugs, or challenges with building the app.How to communicate: Share code snippets or technical details about the problems you found. Discuss possible solutions that the developers can actually build. Be realistic about how much work it will take and be ready to talk about a minimum viable product (MVP).Product Managers:Focus on: Findings that affect how users engage with the app, how long they keep using it, and the overall business goals.How to communicate: Use numbers and data to show how UX improvements can help the business. Explain how the research and your ideas fit into the product roadmap and long-term strategy.By tailoring your presentation to each group, you make sure your message really hits home. This makes it more likely that theyll support your UX research findings and work together to make decisions.The Effect (Impact)The end goal of presenting your findings and design concepts is to get key stakeholders to take action based on what you learned from users. Make sure the impact of your research is crystal clear. Talk about how your findings relate to business goals, customer happiness, and market success (if those are relevant to your product). Suggest clear, actionable next steps in the form of design concepts and encourage feedback and collaboration from stakeholders. This builds excitement and gets people invested. Make sure to answer any questions and ask for more feedback to show that you value their input. Remember, stakeholders play a big role in the products future, so getting them involved increases the value of your research.The Call to Action (CTA)Your audience needs to know what you want them to do. End your presentation with a strong call to action (CTA). But to do this well, you need to be clear on what you want them to do and understand any limitations they might have.For example, if youre presenting to the CEO, tailor your CTA to their priorities. Focus on the return on investment (ROI) of user-centered design. Show how your recommendations can increase sales, improve customer satisfaction, or give the company a competitive edge. Use clear visuals and explain how user needs translate into business benefits. End with a strong, action-oriented statement, likeLets set up a meeting to discuss how we can implement these user-centered design recommendations to reach your strategic goals.If youre presenting to product managers and business unit leaders, focus on the business goals they care about, like increasing revenue or reducing customer churn. Explain your research findings in terms of ROI. For example, a strong CTA could be:Lets try out the redesigned checkout process and aim for a 10% increase in conversion rates next quarter.Remember, the effects of persuasive messages can fade over time, especially if the source isnt seen as credible. This means you need to keep reinforcing your message to maintain its impact.Understanding Limitations and Addressing ConcernsPersuasion is about guiding understanding, not tricking people. Be upfront about any limitations your audience might have, like budget constraints or limited development resources. Anticipate their concerns and address them in your CTA. For example, you could say,I know implementing the entire redesign might need more resources, so lets prioritize the high-impact changes we found in our research to improve the checkout process within our current budget.By considering both your desired outcome and your audiences perspective, you can create a clear, compelling, and actionable CTA that resonates with stakeholders and drives user-centered design decisions.Finally, remember that presenting your research findings and design concepts isnt the end of the road. The effects of persuasive messages can fade over time. Your team should keep looking for ways to reinforce key messages and decisions as you move forward with implementing solutions. Keep your presentations and concepts in a shared folder, remind people of the reasoning behind decisions, and be flexible if there are multiple ways to achieve the desired outcome. Showing how youve addressed stakeholder goals and concerns in your solution will go a long way in maintaining credibility and trust for future projects.A Tool to Track Your Alignment to the Hovland-Yale ModelYou and your UX team are likely already incorporating elements of persuasion into your work. It might be helpful to track how you are doing this to reflect on what works, what doesnt, and where there are gaps. Ive provided a spreadsheet in Figure 3 below for you to modify and use as you might see fit. Ive included sample data to provide an example of what type of information you might want to record. You can set up the structure of a spreadsheet like this as you think about kicking off your next project, or you can fill it in with information from a recently completed project and reflect on what you can incorporate more in the future.Please use the spreadsheet below as a suggestion and make additions, deletions, or changes as best suited to meet your needs. You dont need to be dogmatic in adhering to what Ive covered here. Experiment, find what works best for you, and have fun. Project Phase Persuasion Element Topic Description Example Notes/Reflection Pre-Presentation Audience Stakeholder Group Identify the specific audience segment (e.g., executives, product managers, marketing team) Executives Message Message Objectives What specific goals do you aim to achieve with each group? (e.g., garner funding, secure buy-in for specific features) Secure funding for continued app redesign Source Source Credibility How will you establish your expertise and trustworthiness to each group? (e.g., past projects, relevant data) Highlighted successful previous UX research projects & strong user data analysis skills Message Message Clarity & Relevance Tailor your presentation language and content to resonate with each audiences interests and knowledge level Presented a concise summary of key findings with a focus on potential ROI and revenue growth for executives Presentation & Feedback Source Attention Techniques How did you grab each groups interest? (e.g., visuals, personal anecdotes, surprising data) Opened presentation with a dramatic statistic about mobile banking app usage Message Comprehension Strategies Did you ensure understanding of key information? (e.g., analogies, visuals, Q&A) Used relatable real-world examples and interactive charts to explain user research findings Message Emotional Appeals Did you evoke relevant emotions to motivate action? (e.g., fear of missing out, excitement for potential) Highlighted potential revenue growth and improved customer satisfaction with app redesign Message Retention & Application What steps did you take to solidify key takeaways and encourage action? (e.g., clear call to action, follow-up materials) Ended with a concise call to action for funding approval and provided detailed research reports for further reference Audience Stakeholder Feedback Record their reactions, questions, and feedback during and after the presentation Executives impressed with user insights, product managers requested specific data breakdowns Analysis & Reflection Effect Effective Strategies & Outcomes Identify techniques that worked well and their impact on each group Executives responded well to the emphasis on business impact, leading to conditional funding approval Feedback Improvements for Future Presentations Note areas for improvement in tailoring messages and engaging each stakeholder group Consider incorporating more interactive elements for product managers and diversifying data visualizations for wider appeal Analysis Quantitative Metrics Track changes in stakeholder attitudes Conducted a follow-up survey to measure stakeholder agreement with design recommendations before and after the presentation Assess effectiveness of the presentation Figure 3: Example of spreadsheet categories to track the application of the Hovland-Yale model to your presentation of UX Research findings.ReferencesFoundational WorksHovland, C. I., Janis, I. L., & Kelley, H. H. (1953). Communication and persuasion. New Haven, CT: Yale University Press. (The cornerstone text on the Hovland-Yale model).Weiner, B. J., & Hovland, C. I. (1956). Participating vs. nonparticipating persuasive presentations: A further study of the effects of audience participation. Journal of Abnormal and Social Psychology, 52(2), 105-110. (Examines the impact of audience participation in persuasive communication).Kelley, H. H., & Hovland, C. I. (1958). The communication of persuasive content. Psychological Review, 65(4), 314-320. (Delves into the communication of persuasive messages and their effects).Contemporary ApplicationsPfau, M., & Dalton, M. J. (2008). The persuasive effects of fear appeals and positive emotion appeals on risky sexual behavior intentions. Journal of Communication, 58(2), 244-265. (Applies the Hovland-Yale model to study the effectiveness of fear appeals).Chen, G., & Sun, J. (2010). The effects of source credibility and message framing on consumer online health information seeking. Journal of Interactive Advertising, 10(2), 75-88. (Analyzes the impact of source credibility and message framing, concepts within the model, on health information seeking).Hornik, R., & McHale, J. L. (2009). The persuasive effects of emotional appeals: A meta-analysis of research on advertising emotions and consumer behavior. Journal of Consumer Psychology, 19(3), 394-403. (Analyzes the role of emotions in persuasion, a key aspect of the model, in advertising).
    0 Comments 0 Shares 256 Views
  • SMASHINGMAGAZINE.COM
    Scaling Success: Key Insights And Practical Takeaways
    Building successful web products at scale is a multifaceted challenge that demands a combination of technical expertise, strategic decision-making, and a growth-oriented mindset. In Success at Scale, I dive into case studies from some of the webs most renowned products, uncovering the strategies and philosophies that propelled them to the forefront of their industries. Here you will find some of the insights Ive gleaned from these success stories, part of an ongoing effort to build a roadmap for teams striving to achieve scalable success in the ever-evolving digital landscape.Cultivating A Mindset For Scaling SuccessThe foundation of scaling success lies in fostering the right mindset within your team. The case studies in Success at Scale highlight several critical mindsets that permeate the culture of successful organizations.User-CentricitySuccessful teams prioritize the user experience above all else.They invest in understanding their users needs, behaviors, and pain points and relentlessly strive to deliver value. Instagrams performance optimization journey exemplifies this mindset, focusing on improving perceived speed and reducing user frustration, leading to significant gains in engagement and retention.By placing the user at the center of every decision, Instagram was able to identify and prioritize the most impactful optimizations, such as preloading critical resources and leveraging adaptive loading strategies. This user-centric approach allowed them to deliver a seamless and delightful experience to their vast user base, even as their platform grew in complexity.Data-Driven Decision MakingScaling success relies on data, not assumptions.Teams must embrace a data-driven approach, leveraging metrics and analytics to guide their decisions and measure impact. Shopifys UI performance improvements showcase the power of data-driven optimization, using detailed profiling and user data to prioritize efforts and drive meaningful results.By analyzing user interactions, identifying performance bottlenecks, and continuously monitoring key metrics, Shopify was able to make informed decisions that directly improved the user experience. This data-driven mindset allowed them to allocate resources effectively, focusing on the areas that yielded the greatest impact on performance and user satisfaction.Continuous ImprovementScaling is an ongoing process, not a one-time achievement.Successful teams foster a culture of continuous improvement, constantly seeking opportunities to optimize and refine their products. Smashing Magazines case study on enhancing Core Web Vitals demonstrates the impact of iterative enhancements, leading to significant performance gains and improved user satisfaction.By regularly assessing their performance metrics, identifying areas for improvement, and implementing incremental optimizations, Smashing Magazine was able to continuously elevate the user experience. This mindset of continuous improvement ensures that the product remains fast, reliable, and responsive to user needs, even as it scales in complexity and user base.Collaboration And InclusivitySilos hinder scalability.High-performing teams promote collaboration and inclusivity, ensuring that diverse perspectives are valued and leveraged. The Understoods accessibility journey highlights the power of cross-functional collaboration, with designers, developers, and accessibility experts working together to create inclusive experiences for all users.By fostering open communication, knowledge sharing, and a shared commitment to accessibility, The Understood was able to embed inclusive design practices throughout its development process. This collaborative and inclusive approach not only resulted in a more accessible product but also cultivated a culture of empathy and user-centricity that permeated all aspects of their work.Making Strategic Decisions for ScalabilityBeyond cultivating the right mindset, scaling success requires making strategic decisions that lay the foundation for sustainable growth.Technology ChoicesSelecting the right technologies and frameworks can significantly impact scalability. Factors like performance, maintainability, and developer experience should be carefully considered. Notions migration to Next.js exemplifies the importance of choosing a technology stack that aligns with long-term scalability goals.By adopting Next.js, Notion was able to leverage its performance optimizations, such as server-side rendering and efficient code splitting, to deliver fast and responsive pages. Additionally, the developer-friendly ecosystem of Next.js and its strong community support enabled Notions team to focus on building features and optimizing the user experience rather than grappling with low-level infrastructure concerns. This strategic technology choice laid the foundation for Notions scalable and maintainable architecture.Ship Only The Code A User Needs, When They Need ItThis best practice is so important when we want to ensure that pages load fast without over-eagerly delivering JavaScript a user may not need at that time. For example, Instagram made a concerted effort to improve the web performance of instagram.com, resulting in a nearly 50% cumulative improvement in feed page load time. A key area of focus has been shipping less JavaScript code to users, particularly on the critical rendering path.The Instagram team found that the uncompressed size of JavaScript is more important for performance than the compressed size, as larger uncompressed bundles take more time to parse and execute on the client, especially on mobile devices. Two optimizations they implemented to reduce JS parse/execute time were inline requires (only executing code when its first used vs. eagerly on initial load) and serving ES2017+ code to modern browsers to avoid transpilation overhead. Inline requires improved Time-to-Interactive metrics by 12%, and the ES2017+ bundle was 5.7% smaller and 3% faster than the transpiled version.While good progress has been made, the Instagram team acknowledges there are still many opportunities for further optimization. Potential areas to explore could include the following:Improved code-splitting, moving more logic off the critical path,Optimizing scrolling performance,Adapting to varying network conditions,Modularizing their Redux state management.Continued efforts will be needed to keep instagram.com performing well as new features are added and the product grows in complexity.Accessibility IntegrationAccessibility should be an integral part of the product development process, not an afterthought.Wixs comprehensive approach to accessibility, encompassing keyboard navigation, screen reader support, and infrastructure for future development, showcases the importance of building inclusivity into the products core. By considering accessibility requirements from the initial design stages and involving accessibility experts throughout the development process, Wix was able to create a platform that empowered its users to build accessible websites. This holistic approach to accessibility not only benefited end-users but also positioned Wix as a leader in inclusive web design, attracting a wider user base and fostering a culture of empathy and inclusivity within the organization.Developer Experience InvestmentInvesting in a positive developer experience is essential for attracting and retaining talent, fostering productivity, and accelerating development.Apidecks case study in the book highlights the impact of a great developer experience on community building and product velocity. By providing well-documented APIs, intuitive SDKs, and comprehensive developer resources, Apideck was able to cultivate a thriving developer community. This investment in developer experience not only made it easier for developers to integrate with Apidecks platform but also fostered a sense of collaboration and knowledge sharing within the community. As a result, ApiDeck was able to accelerate product development, leverage community contributions, and continuously improve its offering based on developer feedback.Leveraging Performance Optimization TechniquesAchieving optimal performance is a critical aspect of scaling success. The case studies in Success at Scale showcase various performance optimization techniques that have proven effective.Progressive Enhancement and Graceful DegradationBuilding resilient web experiences that perform well across a range of devices and network conditions requires a progressive enhancement approach. Pinafores case study in Success at Scale highlights the benefits of ensuring core functionality remains accessible even in low-bandwidth or JavaScript-constrained environments.By leveraging server-side rendering and delivering a usable experience even when JavaScript fails to load, Pinafore demonstrates the importance of progressive enhancement. This approach not only improves performance and resilience but also ensures that the application remains accessible to a wider range of users, including those with older devices or limited connectivity. By gracefully degrading functionality in constrained environments, Pinafore provides a reliable and inclusive experience for all users.Adaptive Loading StrategiesThe books case study on Tinder highlights the power of sophisticated adaptive loading strategies. By dynamically adjusting the content and resources delivered based on the users device capabilities and network conditions, Tinder ensures a seamless experience across a wide range of devices and connectivity scenarios. Tinders adaptive loading approach involves techniques like dynamic code splitting, conditional resource loading, and real-time network quality detection. This allows the application to optimize the delivery of critical resources, prioritize essential content, and minimize the impact of poor network conditions on the user experience.By adapting to the users context, Tinder delivers a fast and responsive experience, even in challenging environments.Efficient Resource ManagementEffective management of resources, such as images and third-party scripts, can significantly impact performance. eBays journey showcases the importance of optimizing image delivery, leveraging techniques like lazy loading and responsive images to reduce page weight and improve load times.By implementing lazy loading, eBay ensures that images are only loaded when they are likely to be viewed by the user, reducing initial page load time and conserving bandwidth. Additionally, by serving appropriately sized images based on the users device and screen size, eBay minimizes the transfer of unnecessary data and improves the overall loading performance. These resource management optimizations, combined with other techniques like caching and CDN utilization, enable eBay to deliver a fast and efficient experience to its global user base.Continuous Performance MonitoringRegularly monitoring and analyzing performance metrics is crucial for identifying bottlenecks and opportunities for optimization. The case study on Yahoo! Japan News demonstrates the impact of continuous performance monitoring, using tools like Lighthouse and real user monitoring to identify and address performance issues proactively.By establishing a performance monitoring infrastructure, Yahoo! Japan News gains visibility into the real-world performance experienced by their users. This data-driven approach allows them to identify performance regression, pinpoint specific areas for improvement, and measure the impact of their optimizations. Continuous monitoring also enables Yahoo! Japan News to set performance baselines, track progress over time, and ensure that performance remains a top priority as the application evolves.Embracing Accessibility and Inclusive DesignCreating inclusive web experiences that cater to diverse user needs is not only an ethical imperative but also a critical factor in scaling success. The case studies in Success at Scale emphasize the importance of accessibility and inclusive design.Comprehensive Accessibility TestingEnsuring accessibility requires a combination of automated testing tools and manual evaluation. LinkedIns approach to automated accessibility testing demonstrates the value of integrating accessibility checks into the development workflow, catching potential issues early, and reducing the reliance on manual testing alone.By leveraging tools like Deques axe and integrating accessibility tests into their continuous integration pipeline, LinkedIn can identify and address accessibility issues before they reach production. This proactive approach to accessibility testing not only improves the overall accessibility of the platform but also reduces the cost and effort associated with retroactive fixes. However, LinkedIn also recognizes the importance of manual testing and user feedback in uncovering complex accessibility issues that automated tools may miss. By combining automated checks with manual evaluation, LinkedIn ensures a comprehensive approach to accessibility testing.Inclusive Design PracticesDesigning with accessibility in mind from the outset leads to more inclusive and usable products. Success With Scale\s case study on Intercom about creating an accessible messenger highlights the importance of considering diverse user needs, such as keyboard navigation and screen reader compatibility, throughout the design process.By embracing inclusive design principles, Intercom ensures that their messenger is usable by a wide range of users, including those with visual, motor, or cognitive impairments. This involves considering factors such as color contrast, font legibility, focus management, and clear labeling of interactive elements. By designing with empathy and understanding the diverse needs of their users, Intercom creates a messenger experience that is intuitive, accessible, and inclusive. This approach not only benefits users with disabilities but also leads to a more user-friendly and resilient product overall.User Research And FeedbackEngaging with users with disabilities and incorporating their feedback is essential for creating truly inclusive experiences. The Understoods journey emphasizes the value of user research and collaboration with accessibility experts to identify and address accessibility barriers effectively. By conducting usability studies with users who have diverse abilities and working closely with accessibility consultants, The Understood gains invaluable insights into the real-world challenges faced by their users. This user-centered approach allows them to identify pain points, gather feedback on proposed solutions, and iteratively improve the accessibility of their platform.By involving users with disabilities throughout the design and development process, The Understood ensures that their products not only meet accessibility standards but also provide a meaningful and inclusive experience for all users.Accessibility As A Shared ResponsibilityPromoting accessibility as a shared responsibility across the organization fosters a culture of inclusivity. Shopifys case study underscores the importance of educating and empowering teams to prioritize accessibility, recognizing it as a fundamental aspect of the user experience rather than a mere technical checkbox.By providing accessibility training, guidelines, and resources to designers, developers, and content creators, Shopify ensures that accessibility is considered at every stage of the product development lifecycle. This shared responsibility approach helps to build accessibility into the core of Shopifys products and fosters a culture of inclusivity and empathy. By making accessibility everyones responsibility, Shopify not only improves the usability of their platform but also sets an example for the wider industry on the importance of inclusive design.Fostering A Culture of Collaboration And Knowledge SharingScaling success requires a culture that promotes collaboration, knowledge sharing, and continuous learning. The case studies in Success at Scale highlight the impact of effective collaboration and knowledge management practices.Cross-Functional CollaborationBreaking down silos and fostering cross-functional collaboration accelerates problem-solving and innovation. Airbnbs design system journey showcases the power of collaboration between design and engineering teams, leading to a cohesive and scalable design language across web and mobile platforms.By establishing a shared language and a set of reusable components, Airbnbs design system enables designers and developers to work together more efficiently. Regular collaboration sessions, such as design critiques and code reviews, help to align both teams and ensure that the design system evolves in a way that meets the needs of all stakeholders. This cross-functional approach not only improves the consistency and quality of the user experience but also accelerates the development process by reducing duplication of effort and promoting code reuse.Knowledge Sharing And DocumentationCapturing and sharing knowledge across the organization is crucial for maintaining consistency and enabling the efficient onboarding of new team members. Stripes investment in internal frameworks and documentation exemplifies the value of creating a shared understanding and facilitating knowledge transfer.By maintaining comprehensive documentation, code examples, and best practices, Stripe ensures that developers can quickly grasp the intricacies of their internal tools and frameworks. This documentation-driven culture not only reduces the learning curve for new hires but also promotes consistency and adherence to established patterns and practices. Regular knowledge-sharing sessions, such as tech talks and lunch-and-learns, further reinforce this culture of learning and collaboration, enabling team members to learn from each others experiences and stay up-to-date with the latest developments.Communities Of PracticeEstablishing communities of practice around specific domains, such as accessibility or performance, promotes knowledge sharing and continuous improvement. Shopifys accessibility guild demonstrates the impact of creating a dedicated space for experts and advocates to collaborate, share best practices, and drive accessibility initiatives forward.By bringing together individuals passionate about accessibility from across the organization, Shopifys accessibility guild fosters a sense of community and collective ownership. Regular meetings, workshops, and hackathons provide opportunities for members to share their knowledge, discuss challenges, and collaborate on solutions. This community-driven approach not only accelerates the adoption of accessibility best practices but also helps to build a culture of inclusivity and empathy throughout the organization.Leveraging Open Source And External ExpertiseCollaborating with the wider developer community and leveraging open-source solutions can accelerate development and provide valuable insights. Pinafores journey highlights the benefits of engaging with accessibility experts and incorporating their feedback to create a more inclusive and accessible web experience.By actively seeking input from the accessibility community and leveraging open-source accessibility tools and libraries, Pinafore was able to identify and address accessibility issues more effectively. This collaborative approach not only improved the accessibility of the application but also contributed back to the wider community by sharing their learnings and experiences. By embracing open-source collaboration and learning from external experts, teams can accelerate their own accessibility efforts and contribute to the collective knowledge of the industry.The Path To Sustainable SuccessAchieving scalable success in the web development landscape requires a multifaceted approach that encompasses the right mindset, strategic decision-making, and continuous learning. The Success at Scale book provides a comprehensive exploration of these elements, offering deep insights and practical guidance for teams at all stages of their scaling journey.By cultivating a user-centric, data-driven, and inclusive mindset, teams can prioritize the needs of their users and make informed decisions that drive meaningful results. Adopting a culture of continuous improvement and collaboration ensures that teams are always striving to optimize and refine their products, leveraging the collective knowledge and expertise of their members.Making strategic technology choices, such as selecting performance-oriented frameworks and investing in developer experience, lays the foundation for scalable and maintainable architectures. Implementing performance optimization techniques, such as adaptive loading, efficient resource management, and continuous monitoring, helps teams deliver fast and responsive experiences to their users.Embracing accessibility and inclusive design practices not only ensures that products are usable by a wide range of users but also fosters a culture of empathy and user-centricity. By incorporating accessibility testing, inclusive design principles, and user feedback into the development process, teams can create products that are both technically sound and meaningfully inclusive.Fostering a culture of collaboration, knowledge sharing, and continuous learning is essential for scaling success. By breaking down silos, promoting cross-functional collaboration, and investing in documentation and communities of practice, teams can accelerate problem-solving, drive innovation, and build a shared understanding of their products and practices.The case studies featured in Success at Scale serve as powerful examples of how these principles and strategies can be applied in real-world contexts. By learning from the successes and challenges of industry leaders, teams can gain valuable insights and inspiration for their own scaling journeys.As you embark on your path to scaling success, remember that it is an ongoing process of iteration, learning, and adaptation. Embrace the mindsets and strategies outlined in this article, dive deeper into the learnings from the Success at Scale book, and continually refine your approach based on the unique needs of your users and the evolving landscape of web development.ConclusionScaling successful web products requires a holistic approach that combines technical excellence, strategic decision-making, and a growth-oriented mindset. By learning from the experiences of industry leaders, as showcased in the Success at Scale book, teams can gain valuable insights and practical guidance on their journey towards sustainable success.Cultivating a user-centric, data-driven, and inclusive mindset lays the foundation for scalability. By prioritizing the needs of users, making informed decisions based on data, and fostering a culture of continuous improvement and collaboration, teams can create products that deliver meaningful value and drive long-term growth.Making strategic decisions around technology choices, performance optimization, accessibility integration, and developer experience investment sets the stage for scalable and maintainable architectures. By leveraging proven optimization techniques, embracing inclusive design practices, and investing in the tools and processes that empower developers, teams can build products that are fast and resilient.Through ongoing collaboration, knowledge sharing, and a commitment to learning, teams can navigate the complexities of scaling success and create products that make a lasting impact in the digital landscape. Were Trying Out Something NewIn an effort to conserve resources here at Smashing, were trying something new with Success at Scale. The printed book is 304 pages, and we make an expanded PDF version available to everyone who purchases a print book. This accomplishes a few good things:We will use less paper and materials because we are making a smaller printed book;Well use fewer resources in general to print, ship, and store the books, leading to a smaller carbon footprint; andKeeping the book at more manageable size means we can continue to offer free shipping on all Smashing orders!Smashing Books have always been printed with materials from FSC Certified forests. We are committed to finding new ways to conserve resources while still bringing you the best possible reading experience. Community Matters Producing a book takes quite a bit of time, and we couldnt pull it off without the support of our wonderful community. A huge shout-out to Smashing Members for the kind, ongoing support. The eBook is and always will be free for Smashing Members. Plus, Members get a friendly discount when purchasing their printed copy. Just sayin! ;-)More Smashing Books & GoodiesPromoting best practices and providing you with practical tips to master your daily coding and design challenges has always been (and will be) at the core of everything we do at Smashing.In the past few years, we were very lucky to have worked together with some talented, caring people from the web community to publish their wealth of experience as printed books that stand the test of time. Heather and Steven are two of these people. Have you checked out their books already?Understanding PrivacyEverything you need to know to put your users first and make a better web.Get Print + eBookTouch Design for Mobile InterfacesLearn how touchscreen devices really work and how people really use them.Get Print + eBookInterface Design Checklists100 practical cards for common interface design challenges.Get Print + eBook
    0 Comments 0 Shares 265 Views
  • SMASHINGMAGAZINE.COM
    Ice Cream Ahead (June 2024 Wallpapers Edition)
    Theres an artist in everyone. Some bring their ideas to life with digital tools, others capture the perfect moment with a camera or love to grab pen and paper to create little doodles or pieces of lettering. And even if you think youre far from being an artist, well, it might just be hidden deep inside of you. So why not explore it?For more than 13 years already, our monthly wallpapers series has been the perfect opportunity to do just that: to break out of your daily routine and get fully immersed in a creative little project. This month was no exception, of course.In this post, youll find beautiful, unique, and inspiring wallpapers designed by creative folks who took on the challenge. All of them are available in versions with and without a calendar for June 2024 and can be downloaded for free. As a little bonus goodie, we also added a selection of June favorites from our archives that are just too good to be forgotten. Thank you to everyone who shared their designs with us this month! Happy June!You can click on every image to see a larger preview,We respect and carefully consider the ideas and motivation behind each and every artists work. This is why we give all artists the full freedom to explore their creativity and express emotions and experience through their works. This is also why the themes of the wallpapers werent anyhow influenced by us but rather designed from scratch by the artists themselves.Submit a wallpaper!Did you know that you could get featured in our next wallpapers post, too? We are always looking for creative talent.KittenDesigned by Design Studio from India.previewwith calendar: 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440without calendar: 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440Celebrate National Tropic DayToday, lets dive into the lush wonders of the tropics! From breathtaking landscapes to tantalizing flavors, National Tropic Day is a celebration of all things tropical. Join us in honoring the vibrant cultures and biodiversity that make these regions so unique. Get ready to embark on a tropical adventure! Designed by PopArt Studio from Serbia.previewwith calendar: 320x480, 640x480, 800x480, 800x600, 1024x768, 1024x1024, 1152x864, 1280x720, 1280x800, 1280x960, 1280x1024, 1400x1050, 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440without calendar: 320x480, 640x480, 800x480, 800x600, 1024x768, 1024x1024, 1152x864, 1280x720, 1280x800, 1280x960, 1280x1024, 1400x1050, 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440All-Seeing EyeDesigned by Ricardo Gimenes from Sweden.previewwith calendar: 640x480, 800x480, 800x600, 1024x768, 1024x1024, 1152x864, 1280x720, 1280x800, 1280x960, 1280x1024, 1366x768, 1400x1050, 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440, 3840x2160without calendar: 640x480, 800x480, 800x600, 1024x768, 1024x1024, 1152x864, 1280x720, 1280x800, 1280x960, 1280x1024, 1366x768, 1400x1050, 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440, 3840x2160Grand Canyon In JuneJune arrives, and with it, summer. The endless afternoons, the heat and all those moments to enjoy and rest, because, even if we are working, in summer everything is seen with different eyes. This year, we are going to the Grand Canyon of Colorado to admire the beauty of its landscapes and enjoy its sunsets. Designed by Veronica Valenzuela Jimenez from Spain.previewwith calendar: 640x480, 800x480, 1024x768, 1280x720, 1280x800, 1440x900, 1600x1200, 1920x1080, 1920x1440, 2560x1440without calendar: 640x480, 800x480, 1024x768, 1280x720, 1280x800, 1440x900, 1600x1200, 1920x1080, 1920x1440, 2560x1440SplashDesigned by Ricardo Gimenes from Sweden.previewwith calendar: 640x480, 800x480, 800x600, 1024x768, 1024x1024, 1152x864, 1280x720, 1280x800, 1280x960, 1280x1024, 1366x768, 1400x1050, 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440, 3840x2160without calendar: 640x480, 800x480, 800x600, 1024x768, 1024x1024, 1152x864, 1280x720, 1280x800, 1280x960, 1280x1024, 1366x768, 1400x1050, 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440, 3840x2160What Is GreenWhen June arrives, its the best moment of the year for the photosynthesis (in the north). Most of the plants are in green colors. I like to play with colors and computers. This picture comes out of my imagination. Its like looking with an electronic microscope at a strange green structure. Designed by Philippe Brouard from France.previewwith calendar: 1024x768, 1366x768, 1600x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440, 2560x1600, 2880x1800, 3840x2160without calendar: 1024x768, 1366x768, 1600x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440, 2560x1600, 2880x1800, 3840x2160Back In My DaysDesigned by Ricardo Gimenes from Sweden.previewwithout calendar: 640x480, 800x480, 800x600, 1024x768, 1024x1024, 1152x864, 1280x720, 1280x800, 1280x960, 1280x1024, 1366x768, 1400x1050, 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440, 3840x2160Create Your Own PathNice weather has arrived! Clean the dust off your bike and explore your hometown from a different angle! Invite a friend or loved one and share the joy of cycling. Whether you decide to go for a city ride or a ride in nature, the time spent on a bicycle will make you feel free and happy. So dont wait, take your bike and call your loved one because happiness is greater only when it is shared. Happy World Bike Day! Designed by PopArt Studio from Serbia.previewwithout calendar: 320x480, 640x480, 800x480, 800x600, 1024x768, 1024x1024, 1152x864, 1280x720, 1280x800, 1280x960, 1280x1024, 1366x768, 1400x1050, 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440Summer CozinessIve waited for this summer more than I waited for any other summer since I was a kid. I dream of watermelon, strawberries, and lots of colors. Designed by Kate Jameson from the United States.previewwithout calendar: 320x480, 1024x1024, 1280x720, 1680x1200, 1920x1080, 2560x1440Summer SurfSummer vibes Designed by Antun Hirsman from Croatia.previewwithout calendar: 640x480, 1152x864, 1280x1024, 1440x900, 1680x1050, 1920x1080, 1920x1440, 2650x1440Strawberry FieldsDesigned by Nathalie Ouederni from France.previewwithout calendar: 320x480, 1024x768, 1280x1024, 1440x900, 1680x1200, 1920x1200, 2560x1440Deep DiveSummer rains, sunny days, and a whole month to enjoy. Dive deep inside your passions and let them guide you. Designed by Ana Masnikosa from Belgrade, Serbia.previewwithout calendar: 320x480, 640x480, 800x480, 800x600, 1024x768, 1024x1024, 1152x864, 1280x720, 1280x800, 1280x960, 1280x1024, 1400x1050, 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440Join The WaveThe month of warmth and nice weather is finally here. We found inspiration in the World Oceans Day which occurs on June 8th and celebrates the wave of change worldwide. Join the wave and dive in! Designed by PopArt Studio from Serbia.previewwithout calendar: 320x480, 640x480, 800x480, 800x600, 1024x768, 1024x1024, 1152x864, 1280x720, 1280x800, 1280x960, 1280x1024, 1366x768, 1400x1050, 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440Summer PartyDesigned by Ricardo Gimenes from Sweden.previewwithout calendar: 640x480, 800x480, 800x600, 1024x768, 1024x1024, 1152x864, 1280x720, 1280x800, 1280x960, 1280x1024, 1366x768, 1400x1050, 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440, 3840x2160Oh, The Places You Will Go!In celebration of high school and college graduates ready to make their way in the world! Designed by Bri Loesch from the United States.previewwithout calendar: 320x480, 1024x768, 1280x1024, 1440x900, 1680x1050, 1680x1200, 1920x1440, 2560x1440Ice Creams Away!Summer is taking off with some magical ice cream hot air balloons. Designed by Sasha Endoh from Canada.previewwithout calendar: 320x480, 1024x768, 1152x864, 1280x800, 1280x960, 1400x1050, 1440x900, 1600x1200, 1680x1050, 1920x1080, 1920x1200, 2560x1440Merry-Go-RoundDesigned by Xenia Latii from Germany.previewwithout calendar: 320x480, 640x480, 800x480, 800x600, 1024x768, 1152x864, 1280x720, 1280x800, 1280x960, 1280x1024, 1366x768, 1400x1050, 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440Nine LivesI grew up with cats around (and drawing them all the time). They are so funny one moment they are being funny, the next they are reserved. If you have place in your life for a pet, adopt one today! Designed by Karen Frolo from the United States.previewwithout calendar: 1024x768, 1024x1024, 1280x800, 1280x960, 1280x1024, 1366x768, 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440Solstice SunsetJune 21 marks the longest day of the year for the Northern Hemisphere and sunsets like these will be getting earlier and earlier after that! Designed by James Mitchell from the United Kingdom.previewwithout calendar: 1280x720, 1280x800, 1366x768, 1440x900, 1680x1050, 1920x1080, 1920x1200, 2560x1440, 2880x1800Travel TimeJune is our favorite time of the year because the keenly anticipated sunny weather inspires us to travel. Stuck at the airport, waiting for our flight but still excited about wayfaring, we often start dreaming about the new places we are going to visit. Where will you travel to this summer? Wherever you go, we wish you a pleasant journey! Designed by PopArt Studio from Serbia.previewwithout calendar: 320x480, 640x480, 800x480, 800x600, 1024x768, 1024x1024, 1152x864, 1280x720, 1280x800, 1280x960, 1280x1024, 1400x1050, 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440BauhausI created a screenprint of one of the most famous buildings from the Bauhaus architect Mies van der Rohe for you. So, enjoy the Barcelona Pavillon for your June wallpaper. Designed by Anne Korfmacher from Germany.previewwithout calendar: 640x480, 800x480, 800x600, 1024x768, 1024x1024, 1152x864, 1280x800, 1280x960, 1280x1024, 1366x768, 1400x1050, 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440Pineapple Summer PopI love creating fun and feminine illustrations and designs. I was inspired by juicy tropical pineapples to celebrate the start of summer. Designed by Brooke Glaser from Honolulu, Hawaii.previewwithout calendar: 640x480, 800x600, 1024x768, 1152x720, 1280x720, 1280x800, 1280x960, 1366x768, 1440x900, 1680x1050, 1920x1080, 1920x1200, 1920x1440, 2560x1440Melting AwayDesigned by Ricardo Gimenes from Sweden.previewwithout calendar: 320x480, 640x480, 800x480, 800x600, 1024x768, 1024x1024, 1152x864, 1280x720, 1280x800, 1280x960, 1280x1024, 1400x1050, 1440x900, 1366x768, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440The Kids Looking OutsideThese are my cats looking out of the window. Because it is Childrens Day in June in a lot of countries, I chose to make a wallpaper with this photo of my cats. The cats are like kids, they always want to play and love to be outside! Also, most kids love cats! Designed by Kevin van Geloven from the Netherlands.previewwithout calendar: 320x480, 640x480, 800x480, 800x600, 1024x768, 1024x1024, 1152x864, 1280x720, 1280x800, 1280x1024, 1440x900, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440Expand Your HorizonsIts summer! Go out, explore, expand your horizons! Designed by Dorvan Davoudi from Canada.previewwithout calendar: 800x480, 800x600, 1024x1024, 1152x864, 1280x720, 1280x800, 1280x960, 1280x1024, 1366x768, 1400x1050, 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1080, 1920x1200, 1920x1440, 2560x1440Ice Cream JuneFor me, June always marks the beginning of summer! The best way to celebrate summer is of course ice cream, what else? Designed by Tatiana Anagnostaki from Greece.previewwithout calendar: 1024x768, 1280x1024, 1440x900, 1680x1050, 1680x1200, 1920x1440, 2560x1440Sunset In JamaicaPhoto from a recent trip to Jamaica edited to give a retro look and feel. Designed by Tommy Digiovanni from the United States.previewwithout calendar: 320x480, 1024x768, 1024x1024, 1280x720, 1280x800, 1680x1050, 1920x1080, 1920x1200, 2560x1440Flamingood Vibes OnlyI love flamingos! They give me a happy feeling that I want to share with the world. Designed by Melissa Bogemans from Belgium.previewwithout calendar: 320x480, 640x480, 800x480, 800x600, 1024x768, 1024x1024, 1152x864, 1280x720, 1280x800, 1280x960, 1280x1024, 1400x1050, 1440x900, 1600x1200, 1680x1050, 1680x1200, 1920x1200, 1920x1440, 2560x1440Knitting For SummerI made multiple circles overlapping with close distances. The overall drawing looks like a clothing texture, for something you could wear in coming summer. Lets have a nice summer. Designed by Philippe Brouard from France.previewwithout calendar: 800x480, 1024x768, 1280x720, 1280x800, 1440x900, 1600x1200, 1920x1080, 1920x1200, 2560x1440, 2880x1800
    0 Comments 0 Shares 282 Views
  • SMASHINGMAGAZINE.COM
    In Praise Of The Basics
    Lately, Ive been thinking about the basics of web development. Actually, Ive been thinking about them for some time now, at least since I started teaching beginning web development in 2020.Im fascinated by the basics. Theyre an unsung hero, really, as there is no developer worth their salt who would be where they are without them. Yet, they often go unnoticed.The basics exist in some sort of tension between the utmost importance and the incredibly banal.You might even think of them as the vegetable side on your dinner plate wholesome but perhaps bland without the right seasoning.Who needs the basics of HTML and CSS, some say, when we have tools that abstract the way theyre written and managed? We now have site builders that require no technical knowledge. We have frameworks with enough syntactic sugar to give your development chops a case of cavities. We have libraries packed with any number of pre-established patterns that can be copy-pasted without breaking a sweat. The need to learn the basics of HTML and CSS is effectively null when the number of tools that exist to supplant them is enough to fill a small galaxy of stars.Rachel Andrew wrote one of my all-time favorite posts back in 2019, equating the rise of abstractions with an increase in complexity and a profound loss of inroads for others to enter the web development field:We have already lost many of the entry points that we had. We dont have the forums of parents teaching each other HTML and CSS, in order to make a family album. Those people now use Facebook or perhaps run a blog on wordpress.com or SquareSpace with a standard template. We dont have people customising their MySpace profile or learning HTML via Neopets. We dont have the people, usually women, entering the industry because they needed to learn HTML during that period when an organisations website was deemed part of the duties of the administrator. Rachel Andrew, HTML, CSS and our vanishing industry entry pointsTheres no moment more profound in my web development career than the time I changed the background color of a page from default white to some color value I cant remember (but know for a fact it would never be dodgerblue). That, and my personal a-ha! moment when realizing that everything in CSS is a box. Nothing guided me with the exception of View Source, and Id bet the melting Chapstick in my pocket that youre the same if you came up around the turn of the 21st century.Where do you go to learn HTML and CSS these days? Even now, there are few dedicated secondary education programs (or scholarships, for that matter) to consider. We didnt have bootcamps back in the day, but you dont have to toss a virtual stone across many pixels to find one today.There are excellent and/or free tutorials, too. Here, Ill link a few of em up for you:Learn HTML / Learn CSS by web.devGetting Start With the Web by MDNHTML & CSS Crash Course by Kevin PowellIntroduction to HTML and CSS by The Odin ProjectLearn HTML / Learn CSS by W3DocsLets not even get into the number of YouTube tutorials. But if you do, no one beats Kevins incredible archive of recorded gems.Anyway, my point is that there are more resources than ever for learning web development, but still painfully few entry points to get there. The resources we have for learning the basics are great, but many are either growing stale, are quick hits without a clear learning path, or assume the learner has at least some technical knowledge. I can tell you, as someone who has hit the Publish button on thousands of front-end tutorials, that the vast majority if not all of them are geared toward those who are already on the career path.It was always a bit painful when someone would email CSS-Tricks asking where to get started learning CSS because, well, youd imagine CSS-Tricks being the perfect home for something like that, and yet, theres nothing. Its just the reality, even if many of us (myself included) cut our chops with sites like CSS-Tricks, Smashing Magazine, and A List Apart. We were all learning together at that time, or so it seemed.What we need are more pathways for deep learning.Learning Experience Design (LXD) is a real thing that Id position somewhere between what we know as UX Design and the practice of accessibility. Theres a focus on creating delightful experiences, sure, but the real aim of LDX is to establish learning paths that universally account for different types of learners (e.g., adults and children) and learning styles (e.g., visual and experiential). According to LDX, learners have a set of needs not totally unlike those that Maslows hierarchy of needs identifies for all humans, and there are different models for determining those needs, perhaps none more influential than Blooms Taxonomy.These are things that many front-end tutorials, bootcamps, videos, and programs are not designed for. Its not that the resources are bad (nay, most are excellent); its that they are serving different learners and learning types than what a day-one beginner needs. And lets please not rely on AI to fill the gaps in human experiences!Like I said, Ive been thinking about this a lot. Like, a lot a lot. In fact, I recently published an online course purely dedicated to learning the basics of front-end development, creatively named TheBasics.dev. Id like to think its not just another tutorial because its a complete set of lessons that includes reading, demonstrations, videos, lab exercises, and assessments, i.e., a myriad of ways to learn. Id also like to think that this is more than just another bootcamp because it is curricula designed with the intention to develop new knowledge through reflective practices, peer learning, and feedback.Anyway, Im darn proud of The Basics, even if Im not exactly the self-promoting type, and writing about it is outside of my comfort zone. If youre reading this, its very likely that you, too, work on the front end. The Basics isnt for you exactly, though Id argue that brushing up on fundamentals is never a bad thing, regardless of your profession, but especially in front-end development, where standards are well-documented but ever-changing as well.Visit The BasicsThe Basics is more for your clients who do not know how to update the website they paid you to make. Or the friend whos learning but still keeps bugging you with questions about the things theyre reading. Or your mom, who still has no idea what it is you do for a living. Its for those whom the entry points are vanishing. Its for those who could simply sign up for a Squarespace account but want to actually understand the code it spits out so they have more control to make a site that uniquely reflects them.If you know a person like that, I would love it if youd share The Basics with them.Long live the basics! Long live the a-ha! moments that help us all fall in love with the World Wide Web.
    0 Comments 0 Shares 260 Views
  • SMASHINGMAGAZINE.COM
    Decision Trees For UI Components
    How do you know what UI component to choose? Decision trees offer a systematic approach for design teams to document their design decisions. Once weve decided what UI components we use and when, we can avoid never-ending discussions, confusion, and misunderstanding.Lets explore a few examples of decision trees for UI components and how we can get the most out of them.This article is part of our ongoing series on design patterns. Its also an upcoming part of the 10h-video library on Smart Interface Design Patterns and the upcoming live UX training as well. Use code BIRDIE to save 15% off.B2B Navigation and Help Components: DoctolibDoctolib Design System is a very impressive design system with decision trees, B2B navigation paths, photography, PIN input, UX writing, and SMS notifications and thorough guides on how to choose UI components.B2B Navigation Patterns Decision TreeForm Components Decision TreeActions and Calls To Actions Decision TreeError Design Decision TreeHelp Component Decision TreeI love how practical these decision trees are. Each shows an example of what a component looks like, but I would also add references to real-life UI examples and flows of where and how these components are used. A fantastic starting point that documents design decisions better than any guide would.Decision Trees For UI Components: WorkdayThe team behind Workdays Canvas design system created a fantastic set of design decision trees for notifications, errors and alerts, loading patterns, calls to action, truncation, and overflow with guidelines, examples, and use cases, which can now only be retrieved from the archive:Notifications Decision TreeErrors and Alerts Decision TreeLoading UX Decision TreeCalls to Action Decision TreeTruncation and Overflow Decision TreeFor each decision tree, the Workday team has put together a few context-related questions 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 as a very detailed alternative text for every image.Form Components Decision Tree: LyftA choice of a form component can often be daunting. When should you use radio buttons, checkboxes, or dropdowns? Runi Goswami from Lyft has shared a detailed form components decision tree that helps their team choose between form controls.We start by exploring whether a user can select more than one option in our UI. If its indeed multi-select, we use toggles for short options and checkboxes for longer ones.If only one option can be selected, then we use tabs for filtering, radios for shorter options, a switch for immediately applicable options, and a checkbox if only one option can be selected. Dropdowns are used as a last resort.Choosing Onboarding Components: NewsKitOnboarding comes in various forms and shapes. Depending on how subtle or prominent 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 an Onboarding Selection Prototype in Figma.The choice depends on whether we want to interrupt the users to display details (usually isnt very effective), show a feature subtly during the experience (more effective), or enable discovery by highlighting a feature within the context of a task a user tries to accomplish.The toolkit asks a designer a couple of questions about the intent of onboarding, and then suggests options that are likely to perform best a fantastic little helper for streamlined onboarding decisions.Design System Process Flowcharts: NucleusHow do you decide to add a new component to a design system or rather extend an existing one? Whats the process for contributions, maintenance, and the overall design process? Some design teams codify their design decisions as design system process flowcharts, as shown below.Contribution Process at British GasContributing Guidelines at NordhealthProcesses at AvivaContribution Process at OpenCollectiveContribution Process at ZalandoAnd here are helpful decision trees for adding new components to a design system:New Component Decision Tree at Boston ScientificHandling New Patterns at GitHubDesign System Governance Process by Brad FrostNew Component Decision Tree by Louis OuriachDesign System Contribution Template by Chad BergmanHow To Launch A New Component + Figma template by Rama Krushna BeheraMake Decision Trees VisibleWhat I absolutely love about the decision tree approach is not only that it beautifully visualizes design decisions but that it also serves as a documentation. It establishes shared standards across teams and includes examples to follow, with incredible value for new hires.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 resolves never-ending discussions about UI decisions for good.So whenever a debate comes up, document your decisions in a decision tree. Turn them into posters. Place them in kitchen areas and developers and QA workspaces. Put them in design critique rooms. Make them visible where design work happens and where code is being written.Its worth mentioning that every project will need its own custom trees, so please see the examples above as an idea to build upon and customize away for your needs.Meet Smart Interface Design PatternsIf you are interested in similar insights around UX, take a look at Smart Interface Design Patterns, our 10h-video course with 100s of practical examples from real-life projects with a live UX training later this year. Everything from mega-dropdowns to complex enterprise tables with 5 new segments added every year. Jump to a free preview.Meet Smart Interface Design Patterns, our video course on interface design & UX.Jump to the video course100 design patterns & real-life examples.10h-video course + live UX training. Free preview.
    0 Comments 0 Shares 268 Views