Articles on Smashing Magazine — For Web Designers And Developers https://www.smashingmagazine.com/ Recent content in Articles on Smashing Magazine — For Web Designers And Developers Tue, 10 Feb 2026 23:02:38 GMT https://validator.w3.org/feed/docs/rss2.html manual en Articles on Smashing Magazine — For Web Designers And Developers https://www.smashingmagazine.com/images/favicon/app-icon-512x512.png https://www.smashingmagazine.com/ All rights reserved 2026, Smashing Media AG Development Design UX Mobile Front-end <![CDATA[CSS <code>@scope</code>: An Alternative To Naming Conventions And Heavy Abstractions]]> https://smashingmagazine.com/2026/02/css-scope-alternative-naming-conventions/ https://smashingmagazine.com/2026/02/css-scope-alternative-naming-conventions/ Thu, 05 Feb 2026 08:00:00 GMT Prescriptive class name conventions are no longer enough to keep CSS maintainable in a world of increasingly complex interfaces. Can the new `@scope` rule finally give developers the confidence to write CSS that can keep up with modern front ends? <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/02/css-scope-alternative-naming-conventions/</span> <p>When learning the principles of basic CSS, one is taught to write modular, reusable, and descriptive styles to ensure maintainability. But when developers become involved with real-world applications, it often feels impossible to add UI features without styles leaking into unintended areas.</p> <p>This issue often snowballs into a self-fulfilling loop; styles that are theoretically scoped to one element or class start showing up where they don’t belong. This forces the developer to create even more specific selectors to override the leaked styles, which then accidentally override global styles, and so on.</p> <p>Rigid class name conventions, such as <a href="https://getbem.com/introduction/">BEM</a>, are one theoretical solution to this issue. The <strong>BEM (Block, Element, Modifier) methodology</strong> is a <a href="https://www.smashingmagazine.com/2012/04/a-new-front-end-methodology-bem/">systematic way of naming CSS classes</a> to ensure reusability and structure within CSS files. Naming conventions like this can <a href="https://www.smashingmagazine.com/2018/06/bem-for-beginners/">reduce cognitive load by leveraging domain language to describe elements and their state</a>, and if implemented correctly, <a href="https://www.smashingmagazine.com/2025/06/css-cascade-layers-bem-utility-classes-specificity-control/">can make styles for large applications easier to maintain</a>. </p> <p>In the real world, however, it doesn’t always work out like that. Priorities can change, and with change, implementation becomes inconsistent. Small changes to the HTML structure can require many CSS class name revisions. With highly interactive front-end applications, class names following the BEM pattern can become long and unwieldy (e.g., <code>app-user-overview__status--is-authenticating</code>), and not fully adhering to the naming rules breaks the system’s structure, thereby negating its benefits.</p> <p>Given these challenges, it’s no wonder that developers have turned to frameworks, Tailwind being <a href="https://2024.stateofcss.com/en-US/tools/">the most popular CSS framework</a>. Rather than trying to fight what seems like an unwinnable specificity war between styles, it is easier to give up on the <a href="https://css-tricks.com/the-c-in-css-the-cascade/">CSS Cascade</a> and use tools that guarantee complete isolation.</p> Developers Lean More On Utilities <p>How do we know that some developers are keen on avoiding cascaded styles? It’s the rise of “modern” front-end tooling — like <a href="https://www.smashingmagazine.com/2016/04/finally-css-javascript-meet-cssx/">CSS-in-JS frameworks</a> — designed specifically for that purpose. Working with isolated styles that are tightly scoped to specific components can seem like a breath of fresh air. It removes the need to name things — <a href="https://24ways.org/2014/naming-things/">still one of the most hated and time-consuming front-end tasks</a> — and allows developers to be productive without fully understanding or leveraging the benefits of CSS inheritance.</p> <p>But ditching the CSS Cascade comes with its own problems. For instance, composing styles in JavaScript requires heavy build configurations and often leads to styles awkwardly intermingling with component markup or HTML. Instead of carefully considered naming conventions, we allow build tools to autogenerate selectors and identifiers for us (e.g., <code>.jsx-3130221066</code>), requiring developers to keep up with yet another pseudo-language in and of itself. (As if the cognitive load of understanding what all your component’s <code>useEffect</code>s do weren’t already enough!) </p> <p>Further abstracting the job of naming classes to tooling means that basic debugging is often constrained to specific application versions compiled for development, rather than leveraging native browser features that support live debugging, such as Developer Tools.</p> <p>It’s almost like we need to develop tools to debug the tools we’re using to abstract what the web already provides — all for the sake of running away from the “pain” of writing standard CSS.</p> <p>Luckily, modern CSS features not only make writing standard CSS more flexible but also give developers like us a great deal more power to manage the cascade and make it work for us. <a href="https://www.smashingmagazine.com/2022/01/introduction-css-cascade-layers/">CSS Cascade Layers</a> are a great example, but there’s another feature that gets a surprising lack of attention — although that is changing now that it has recently become <strong>Baseline compatible</strong>.</p> The CSS <code>@scope</code> At-Rule <p>I consider the <strong>CSS <code>@scope</code> at-rule</strong> to be a potential cure for the sort of style-leak-induced anxiety we’ve covered, one that does not force us to compromise native web advantages for abstractions and extra build tooling.</p> <blockquote>“The <code>@scope</code> CSS at-rule enables you to select elements in specific DOM subtrees, targeting elements precisely without writing overly-specific selectors that are hard to override, and without coupling your selectors too tightly to the DOM structure.”<br /><br />— <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/@scope">MDN</a></blockquote> <p>In other words, we can work with isolated styles in specific instances <strong>without sacrificing inheritance, cascading, or even the basic separation of concerns</strong> that has been a long-running guiding principle of front-end development.</p> <p>Plus, it has <a href="https://caniuse.com/css-cascade-scope">excellent browser coverage</a>. In fact, <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/146">Firefox 146</a> added support for <code>@scope</code> in December, making it <a href="https://developer.mozilla.org/en-US/docs/Glossary/Baseline/Compatibility">Baseline compatible</a> for the first time. Here is a simple comparison between a button using the BEM pattern versus the <code>@scope</code> rule:</p> <pre><code><!-- BEM --> <button class="button button--primary"> <span class="button__text">Click me</span> <span class="button__icon">→</span> </button> <style> .button .button__text { /* button text styles */ } .button .button__icon { /* button icon styles */ } .button--primary { primary button styles */ } </style> </code></pre> <pre><code><!-- @scope --> <button class="primary-button"> <span>Click me</span> <span>→</span> </button> <style> @scope (.primary-button) { span:first-child { /* button text styles */ } span:last-child { /* button icon styles */ } } </style> </code></pre> <p>The <code>@scope</code> rule allows for <strong>precision with less complexity</strong>. The developer no longer needs to create boundaries using class names, which, in turn, allows them to write selectors based on native HTML elements, thereby eliminating the need for prescriptive CSS class name patterns. By simply removing the need for class name management, <code>@scope</code> can alleviate the fear associated with CSS in large projects.</p> Basic Usage <p>To get started, add the <code>@scope</code> rule to your CSS and insert a root selector to which styles will be scoped:</p> <pre><code>@scope (<selector>) { /* Styles scoped to the <selector> */ } </code></pre> <p>So, for example, if we were to scope styles to a <code><nav></code> element, it may look something like this:</p> <div> <pre><code>@scope (nav) { a { /* Link styles within nav scope */ } a:active { /* Active link styles */ } a:active::before { /* Active link with pseudo-element for extra styling */ } @media (max-width: 768px) { a { /* Responsive adjustments */ } } } </code></pre> </div> <p>This, on its own, is not a groundbreaking feature. However, a second argument can be added to the scope to create a <strong>lower boundary</strong>, effectively defining the scope’s start and end points.</p> <div> <pre><code>/* Any <code>a</code> element inside <code>ul</code> will not have the styles applied */ @scope (nav) to (ul) { a { font-size: 14px; } } </code></pre> </div> <p>This practice is called <strong>donut scoping</strong>, and <a href="https://css-tricks.com/solved-by-css-donuts-scopes/">there are several approaches</a> one could use, including a series of similar, highly specific selectors coupled tightly to the DOM structure, a <code>:not</code> pseudo-selector, or assigning specific class names to <code><a></code> elements within the <code><nav></code> to handle the differing CSS.</p> <p>Regardless of those other approaches, the <code>@scope</code> method is much more concise. More importantly, it prevents the risk of broken styles if classnames change or are misused or if the HTML structure were to be modified. Now that <code>@scope</code> is Baseline compatible, we no longer need workarounds!</p> <p>We can take this idea further with multiple end boundaries to create a “style figure eight”:</p> <div> <pre><code>/* Any <a> or <p> element inside <aside> or <nav> will not have the styles applied */ @scope (main) to (aside, nav) { a { font-size: 14px; } p { line-height: 16px; color: darkgrey; } } </code></pre> </div> <p>Compare that to a version handled without the <code>@scope</code> rule, where the developer has to “reset” styles to their defaults:</p> <div> <pre><code>main a { font-size: 14px; } main p { line-height: 16px; color: darkgrey; } main aside a, main nav a { font-size: inherit; /* or whatever the default should be */ } main aside p, main nav p { line-height: inherit; /* or whatever the default should be */ color: inherit; /* or a specific color */ } </code></pre> </div> <p>Check out the following example. Do you notice how simple it is to target some nested selectors while exempting others?</p> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/wBWXggN">@scope example [forked]</a> by <a href="https://codepen.io/blakeeric">Blake Lundquist</a>.</p> <p>Consider a scenario where unique styles need to be applied to slotted content within <a href="https://www.smashingmagazine.com/2025/07/web-components-working-with-shadow-dom/">web components</a>. When slotting content into a web component, that content becomes part of the Shadow DOM, but still inherits styles from the parent document. The developer might want to implement different styles depending on which web component the content is slotted into:</p> <pre><code><!-- Same <user-card> content, different contexts --> <product-showcase> <user-card slot="reviewer"> <img src="avatar.jpg" slot="avatar"> <span slot="name">Jane Doe</span> </user-card> </product-showcase> <team-roster> <user-card slot="member"> <img src="avatar.jpg" slot="avatar"> <span slot="name">Jane Doe</span> </user-card> </team-roster> </code></pre> <p>In this example, the developer might want the <code><user-card></code> to have distinct styles only if it is rendered inside <code><team-roster></code>:</p> <pre><code>@scope (team-roster) { user-card { display: inline-flex; align-items: center; gap: 0.5rem; } user-card img { border-radius: 50%; width: 40px; height: 40px; } } </code></pre> More Benefits <p>There are additional ways that <code>@scope</code> can remove the need for class management without resorting to utilities or JavaScript-generated class names. For example, <code>@scope</code> opens up the possibility to easily <strong>target descendants of any selector</strong>, not just class names:</p> <div> <pre><code>/* Only div elements with a direct child button are included in the root scope */ @scope (div:has(> button)) { p { font-size: 14px; } } </code></pre> </div> <p>And they <strong>can be nested</strong>, creating scopes within scopes:</p> <pre><code>@scope (main) { p { font-size: 16px; color: black; } @scope (section) { p { font-size: 14px; color: blue; } @scope (.highlight) { p { background-color: yellow; font-weight: bold; } } } } </code></pre> <p>Plus, the root scope can be easily referenced within the <code>@scope</code> rule:</p> <div> <pre><code>/* Applies to elements inside direct child <code>section</code> elements of <code>main</code>, but stops at any direct <code>aside</code> that is a direct chiled of those sections */ @scope (main > section) to (:scope > aside) { p { background-color: lightblue; color: blue; } /* Applies to ul elements that are immediate siblings of root scope */ :scope + ul { list-style: none; } } </code></pre> </div> <p>The <code>@scope</code> at-rule also introduces a new <strong>proximity</strong> dimension to CSS specificity resolution. In traditional CSS, when two selectors match the same element, the selector with the higher specificity wins. With <code>@scope</code>, when two elements have equal specificity, the one whose scope root is closer to the matched element wins. This eliminates the need to override parent styles by manually increasing an element’s specificity, since inner components naturally supersede outer element styles.</p> <div> <pre><code><style> @scope (.container) { .title { color: green; } } <!-- The <h2> is closer to .container than to .sidebar so "color: green" wins. --> @scope (.sidebar) { .title { color: red; } } </style> <div class="sidebar"> <div class="container"> <h2 class="title">Hello</h2> </div> </div> </code></pre> </div> Conclusion <p>Utility-first CSS frameworks, such as Tailwind, work well for prototyping and smaller projects. Their benefits quickly diminish, however, when used in larger projects involving more than a couple of developers.</p> <p>Front-end development has become increasingly overcomplicated in the last few years, and CSS is no exception. While the <code>@scope</code> rule isn’t a cure-all, it can reduce the need for complex tooling. When used in place of, or alongside strategic class naming, <code>@scope</code> can make it easier and more fun to write maintainable CSS. </p> <h3>Further Reading</h3> <ul> <li><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/@scope">CSS <code>@scope</code></a> (MDN)</li> <li>“<a href="https://css-tricks.com/almanac/rules/s/scope/">CSS <code>@scope</code></a>”, Juan Diego Rodríguez (CSS-Tricks)</li> <li><a href="https://www.firefox.com/en-US/firefox/146.0/releasenotes/">Firefox 146 Release Notes</a> (Firefox)</li> <li><a href="https://caniuse.com/css-cascade-scope">Browser Support</a> (CanIUse)</li> <li><a href="https://2024.stateofcss.com/en-US/tools/">Popular CSS Frameworks</a> (State of CSS 2024)</li> <li>“<a href="https://css-tricks.com/the-c-in-css-the-cascade/">The “C” in CSS: Cascade</a>”, Thomas Yip (CSS-Tricks)</li> <li><a href="https://getbem.com/introduction/">BEM Introduction</a> (Get BEM)</li> </ul> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/02/css-scope-alternative-naming-conventions/</span> hello@smashingmagazine.com (Blake Lundquist) <![CDATA[Combobox vs. Multiselect vs. Listbox: How To Choose The Right One]]> https://smashingmagazine.com/2026/02/combobox-vs-multiselect-vs-listbox/ https://smashingmagazine.com/2026/02/combobox-vs-multiselect-vs-listbox/ Tue, 03 Feb 2026 10:00:00 GMT Combobox vs. Multi-Select vs. Listbox vs. Dual Listbox? How they are different, what purpose they serve, and how to choose the right one. Brought to you by <a href="https://ai-design-patterns.com">Design Patterns For AI Interfaces</a>, **friendly video courses on UX** and design patterns by Vitaly. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/02/combobox-vs-multiselect-vs-listbox/</span> <p>So what’s the difference between combobox, multiselect, listbox, and dropdown? While all these UI components might appear similar, they serve different purposes. The choice often comes down to the <strong>number of available options</strong> and their visibility.</p> <p>Let’s see how they differ, <strong>what purpose they serve</strong>, and how to choose the right one — avoiding misunderstandings and wrong expectations along the way.</p> <p><img src="https://files.smashing.media/articles/combobox-vs-multiselect-vs-listbox/1-combobox-vs-multiselect-vs-listbox.jpg" /></p> Not All List Patterns Are The Same <p>All the UI components highlighted above have exactly one thing in common: they support users’ interactions with lists. However, they do so slightly differently.</p> <p>Let’s take a look at each, one by one:</p> <ul> <li><strong>Dropdown</strong> → list is hidden until it’s triggered.</li> <li><strong>Combobox</strong> → type to filter + select 1 option.</li> <li><strong>Multiselect</strong> → type to filter + select many options.</li> <li><strong>Listbox</strong> → all list options visible by default (+ scroll).</li> <li><strong>Dual listbox</strong> → move items between 2 listboxes.</li> </ul> <p><img src="https://files.smashing.media/articles/combobox-vs-multiselect-vs-listbox/2-watson-design-system.jpg" /></p> <p>In other words, <em>Combobox</em> combines a text input field with a dropdown list, so users can <strong>type to filter</strong> and select a single option. With <em>Multiselect</em>, users can select many options (often displayed as pills or chips).</p> <p><em>Listboxes</em> display <strong>all list options visible</strong> by default, often with scrolling. It’s helpful when users need to see all available choices immediately. <em>Dual listbox</em> (also called <em>transfer list</em>) is a variation of a listbox that allows users to <strong>move items between two listboxes</strong> (left ↔ right), typically for bulk selection.</p> Never Hide Frequently Used Options <p>As mentioned above, the choice of the right UI component depends on <strong>2 factors</strong>: how many list options are available, and if all these options need to be visible by default. All lists could have tree structures, nesting, and group selection, too.</p> <p><img src="https://files.smashing.media/articles/combobox-vs-multiselect-vs-listbox/3-nongodb-design-system.jpg" /></p> <p>There is one principle that I’ve been following for years for any UI component: <strong>never hide frequently used options</strong>. If users rely on a particular selection frequently, there is very little value in hiding it from them.</p> <p>We could either make it <strong>pre-selected</strong>, or (if there are only 2–3 frequently used options) show them as <a href="https://smart-interface-design-patterns.com/articles/badges-chips-tags-pills/"><strong>chips or buttons</strong></a>, and then show the rest of the list on interaction. In general, it’s a good idea to always display popular options — even if it might clutter the UI.</p> How To Choose Which? <p>Not every list needs a complex selection method. For lists with <strong>fewer than 5 items</strong>, simple radio buttons or checkboxes usually work best. But if users need to select from a <strong>large list</strong> of options (e.g., 200+ items), combobox + multiselect are helpful because of the faster filtering (e.g., country selection).</p> <p><img src="https://files.smashing.media/articles/combobox-vs-multiselect-vs-listbox/4-matrix-options-multiselect-listboxes.jpg" /></p> <p><strong>Listboxes</strong> are helpful when people need to access <strong>many options at once</strong>, especially if they need to choose many options from that list as well. They could be helpful for frequently used filters.</p> <p><img src="https://files.smashing.media/articles/combobox-vs-multiselect-vs-listbox/5-dual-list-box.png" /></p> <p><strong>Dual listbox</strong> is often overlooked and ignored. But it can be very helpful for complex tasks, e..g bulk selection, or assigning roles, tasks, responsibilities. It’s the only UI component that allows users to review their full selection list side-by-side with the source list before committing (also called <em>“Transfer list”</em>).</p> <p>In fact, dual listbox is often faster, more accurate, and more accessible than <a href="https://smart-interface-design-patterns.com/articles/drag-and-drop-ux/">drag-and-drop</a>.</p> Usability Considerations <p>One important note to keep in mind is that all list types need to support <strong>keyboard navigation</strong> (e.g., ↑/↓ arrow keys) for accessibility. Some people will almost always rely uponthe keyboard to select options once they start typing.</p> <p><img src="https://files.smashing.media/articles/combobox-vs-multiselect-vs-listbox/7-keyboard-navigation.png" /></p> <p>Beyond that:</p> <ul> <li>For lists with <strong>7+ options</strong>, consider adding “Select All” and “Clear All” functionalities to streamline user interaction.</li> <li>For lengthy lists with a combobox, <strong>expose all options</strong> to users on click/tap, as otherwise they might never be seen,</li> <li>Most important, <strong>don’t display non-interactive elements as buttons</strong> to avoid confusion — and don't display interactive elements as static labels.</li> </ul> Wrapping Up: Not Everything Is A Dropdown <p>Names matter. A <strong>vertical list of options</strong> is typically described as a “dropdown” — but often it’s a bit too generic to be meaningful. <em>“Dropdown”</em> hints that the list is hidden by default. <em>“Multiselect”</em> implies multi-selection (checkbox) within a list. <em>“Combobox”</em> implies text input. And “Listbox” is simply a list of selectable items, visible at all times.</p> <p>The goal isn’t to be consistent with the definitions above for the sake of it. But rather to <strong>align intentions</strong> — speak the same language when deciding on, designing, building, and then using these UI components.</p> <p>It <strong>should work for everyone</strong> — designers, engineers, and end users — as long as static labels don’t look like interactive buttons, and radio buttons don’t act like checkboxes.</p> Meet “Design Patterns For AI Interfaces” <p>Meet <a href="https://ai-design-patterns.com/"><strong>Design Patterns For AI Interfaces</strong></a>, Vitaly’s new <strong>video course</strong> with practical examples from real-life products — with a <a href="https://smashingconf.com/online-workshops/workshops/ai-interfaces-vitaly-friedman/">live UX training</a> happening soon. <a href="https://www.youtube.com/watch?v=jhZ3el3n-u0">Jump to a free preview</a>.</p> <p></p><a href="https://ai-design-patterns.com/"><img src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/product-designer-career-paths/design-patterns-ai-interfaces.png" /></a>Meet <a href="https://ai-design-patterns.com/">Design Patterns For AI Interfaces</a>, Vitaly’s video course on interface design & UX.<p></p> <div><div><ul><li><a href="#"> Video + UX Training</a></li><li><a href="#">Video only</a></li></ul><div><h3>Video + UX Training</h3>$ 450.00 $ 799.00 <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3476562?price_id=4401578"> Get Video + UX Training<div></div></a><p>30 video lessons (10h) + <a href="https://smashingconf.com/online-workshops/workshops/ai-interfaces-vitaly-friedman/">Live UX Training</a>.<br />100 days money-back-guarantee.</p></div><div><h3>Video only</h3><div>$ 275.00$ 395.00</div> <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3476562?price_id=4397456"> Get the video course<div></div></a><p>30 video lessons (10h). Updated yearly.<br />Also available as a <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3570306?price_id=4503439">UX Bundle with 3 video courses.</a></p></div></div></div> Useful Resources <ul> <li><a href="https://smart-interface-design-patterns.com/articles/autocomplete-ux/">Autocomplete: UX Guidelines</a>, by Vitaly Friedman</li> <li><a href="https://playbook.ebay.com/design-system/components/combobox">Combobox</a>, by eBay 👍</li> <li><a href="https://eui.elastic.co/docs/components/forms/selection/combo-box/">Combobox</a>, by Elastic</li> <li><a href="https://designsystem.elisa.fi/9b207b2c3/p/082dd3-combobox">Combobox</a>, by Elisa</li> <li><a href="https://www.mongodb.design/component/combobox/live-example">Combobox</a>, by MongoDB 👍</li> <li><a href="https://design.visa.com/components/combobox/">Combobox</a>, by Visa 👍</li> <li><a href="https://watson.docplanner.design/latest/watson-web/components/combobox/usage-guidelines-L68K6G51">Combobox</a>, by Watson (Docplanner)</li> <li><a href="https://doc.wikimedia.org/codex/latest/components/demos/combobox.html">Combobox</a>, by Wikimedia</li> <li><a href="https://garden.zendesk.com/components/combobox">Combobox</a>, by Zendesk</li> <li><a href="https://www.mongodb.design/component/combobox/design-docs">Multiselect (MongoDB Combobox Design Docs)</a>, by MongoDB 👍</li> <li><a href="https://doc.wikimedia.org/codex/latest/components/demos/multiselect-lookup.html">Multiselect Lookup</a>, by Wikimedia</li> <li><a href="https://vaadin.com/docs/latest/components/multi-select-combo-box">Multi-select Combo Box</a>, by Vaadin</li> <li><a href="https://design.visa.com/components/multiselect/">Multiselect</a>, by Visa</li> <li><a href="https://ant.design/components/transfer">Transfer (Listbox example)</a>, by Ant Design</li> <li><a href="https://hopper.workleap.design/components/Listbox">Listbox</a>, by Hopper</li> <li><a href="https://vaadin.com/docs/latest/components/list-box">List Box</a>, by Vaadin</li> <li><a href="https://design.visa.com/components/listbox/">Listbox</a>, by Visa</li> <li><a href="https://www.patternfly.org/components/dual-list-selector">Dual List Selector</a>, by Red Hat (PatternFly)</li> <li><a href="https://www.lightningdesignsystem.com/2e1ef8501/p/763763-dual-listbox">Dual Listbox</a>, by Salesforce (Lightning Design System)</li> <li><a href="https://v5.mantine.dev/core/transfer-list/">Transfer List</a>, by Mantine</li> <li><a href="https://dashlite.net/demo1/components/misc/dual-listbox.html">Dual Listbox</a>, by Dashlite</li> <li><a href="https://smart-interface-design-patterns.com/articles/badges-chips-tags-pills/">Badges vs. Pills vs. Chips vs. Tags</a>, by Vitaly Friedman</li> <li><a href="https://www.nngroup.com/articles/listbox-dropdown/">Listboxes vs. Dropdown Lists</a>, by Anna Kaley (NN/g)</li> </ul> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/02/combobox-vs-multiselect-vs-listbox/</span> hello@smashingmagazine.com (Vitaly Friedman) <![CDATA[Short Month, Big Ideas (February 2026 Wallpapers Edition)]]> https://smashingmagazine.com/2026/01/desktop-wallpaper-calendars-february-2026/ https://smashingmagazine.com/2026/01/desktop-wallpaper-calendars-february-2026/ Sat, 31 Jan 2026 09:00:00 GMT Let’s make the most of the shortest month of the year with a new collection of desktop wallpapers that are sure to bring a smile to your face — and maybe spark your creativity, too. All of them were designed with love by the community for the community and can be downloaded for free. Happy February! <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/01/desktop-wallpaper-calendars-february-2026/</span> <p>Sometimes, the best inspiration lies right in front of us. With that in mind, we embarked on our <a href="https://www.smashingmagazine.com/category/wallpapers">wallpapers adventure</a> more than 14 years ago. The idea: to provide you with a new collection of <strong>unique and inspiring desktop wallpapers</strong> every month. This February is no exception, of course.</p> <p>For this post, artists and designers from across the globe once again got their ideas flowing and designed wallpapers to bring some good vibes to your desktops and home screens. All of them come in a <strong>variety of screen resolutions</strong> and can be downloaded for free. A huge thank-you to everyone who shared their design with us this month — this post wouldn’t exist without your kind support!</p> <p>If you too would like to get featured in one of our next wallpapers posts, please don’t hesitate to <strong><a href="https://www.smashingmagazine.com/desktop-wallpaper-calendars-join-in/">submit your design</a></strong>. We are always looking for creative talent and can’t wait to see <em>your</em> story come to life!</p> <ul> <li>You can <strong>click on every image to see a larger preview</strong>.</li> <li>We respect and carefully consider the ideas and motivation behind each and every artist’s work. This is why we give all artists the <strong>full freedom to explore their creativity</strong> and express emotions and experience through their works. This is also why the themes of the wallpapers weren’t anyhow influenced by us but rather designed from scratch by the artists themselves.</li> </ul> Eternal Tech <p>“The first one being older than 100 years, radio is still connecting people, places, and events.” — Designed by <a href="https://www.gingeritsolutions.com/">Ginger It Solutions</a> from Serbia.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/feb-26-eternal-tech-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2026/feb-26-eternal-tech-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/feb-26-eternal-tech-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-320x480.png">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-1280x1020.png">1280x1020</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/cal/feb-26-eternal-tech-cal-2560x1440.png">2560x1440</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-320x480.png">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-1280x1020.png">1280x1020</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/eternal-tech/nocal/feb-26-eternal-tech-nocal-2560x1440.png">2560x1440</a></li> </ul> Coffee Break <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/feb-26-coffee-break-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2026/feb-26-coffee-break-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/feb-26-coffee-break-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/cal/feb-26-coffee-break-cal-3840x2160.png">3840x2160</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/coffee-break/nocal/feb-26-coffee-break-nocal-3840x2160.png">3840x2160</a></li> </ul> Mosa-hic <p>“Small colored squares make me think of a mosaic, but the squares are not precisely tiled, so I call it a ‘mosa-hic,’ like the ‘hic hic’ sound someone makes when they’ve had a bit too much to drink.” — Designed by <a href="https://www.philippebrouard.fr/">Philippe Brouard</a> from France.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/feb-26-mosa-hic-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2026/feb-26-mosa-hic-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/feb-26-mosa-hic-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/cal/feb-26-mosa-hic-cal-1024x768.jpg">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/cal/feb-26-mosa-hic-cal-1366x768.jpg">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/cal/feb-26-mosa-hic-cal-1600x1200.jpg">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/cal/feb-26-mosa-hic-cal-1920x1080.jpg">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/cal/feb-26-mosa-hic-cal-1920x1200.jpg">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/cal/feb-26-mosa-hic-cal-2560x1440.jpg">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/cal/feb-26-mosa-hic-cal-2560x1600.jpg">2560x1600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/cal/feb-26-mosa-hic-cal-2880x1800.jpg">2880x1800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/cal/feb-26-mosa-hic-cal-3840x2160.jpg">3840x2160</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/nocal/feb-26-mosa-hic-nocal-1024x768.jpg">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/nocal/feb-26-mosa-hic-nocal-1366x768.jpg">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/nocal/feb-26-mosa-hic-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/nocal/feb-26-mosa-hic-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/nocal/feb-26-mosa-hic-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/nocal/feb-26-mosa-hic-nocal-2560x1440.jpg">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/nocal/feb-26-mosa-hic-nocal-2560x1600.jpg">2560x1600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/nocal/feb-26-mosa-hic-nocal-2880x1800.jpg">2880x1800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/mosa-hic/nocal/feb-26-mosa-hic-nocal-3840x2160.jpg">3840x2160</a></li> </ul> Search Within <p>“I used the search-bar metaphor to reflect a daily habit and transform it into a moment of introspection, reminding myself to pause and look inward.” — Designed by <a href="https://linkedin.com/in/hiteshpuri">Hitesh Puri</a> from India, Delhi.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/feb-26-search-within-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2026/feb-26-search-within-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/feb-26-search-within-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/cal/feb-26-search-within-cal-430x932.png">430x932</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/cal/feb-26-search-within-cal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/cal/feb-26-search-within-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/cal/feb-26-search-within-cal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/cal/feb-26-search-within-cal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/cal/feb-26-search-within-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/cal/feb-26-search-within-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/cal/feb-26-search-within-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/cal/feb-26-search-within-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/cal/feb-26-search-within-cal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/cal/feb-26-search-within-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/cal/feb-26-search-within-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/cal/feb-26-search-within-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/cal/feb-26-search-within-cal-2560x1440.png">2560x1440</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/nocal/feb-26-search-within-nocal-430x932.png">430x932</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/nocal/feb-26-search-within-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/nocal/feb-26-search-within-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/nocal/feb-26-search-within-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/nocal/feb-26-search-within-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/nocal/feb-26-search-within-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/nocal/feb-26-search-within-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/nocal/feb-26-search-within-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/nocal/feb-26-search-within-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/nocal/feb-26-search-within-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/nocal/feb-26-search-within-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/nocal/feb-26-search-within-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/nocal/feb-26-search-within-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/search-within/nocal/feb-26-search-within-nocal-2560x1440.png">2560x1440</a></li> </ul> The Lighthouse Of Mystery <p>“We continue the film saga. This time, we go to the mysterious Shutter Island, a lighthouse with many mysteries that will absorb you.” — Designed by <a href="https://www.silocreativo.com/en/">Veronica Valenzuela</a> from Spain.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/feb-26-the-lighthouse-of-mystery-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2026/feb-26-the-lighthouse-of-mystery-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/feb-26-the-lighthouse-of-mystery-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/cal/feb-26-the-lighthouse-of-mystery-cal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/cal/feb-26-the-lighthouse-of-mystery-cal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/cal/feb-26-the-lighthouse-of-mystery-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/cal/feb-26-the-lighthouse-of-mystery-cal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/cal/feb-26-the-lighthouse-of-mystery-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/cal/feb-26-the-lighthouse-of-mystery-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/cal/feb-26-the-lighthouse-of-mystery-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/cal/feb-26-the-lighthouse-of-mystery-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/cal/feb-26-the-lighthouse-of-mystery-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/cal/feb-26-the-lighthouse-of-mystery-cal-2560x1440.png">2560x1440</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/nocal/feb-26-the-lighthouse-of-mystery-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/nocal/feb-26-the-lighthouse-of-mystery-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/nocal/feb-26-the-lighthouse-of-mystery-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/nocal/feb-26-the-lighthouse-of-mystery-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/nocal/feb-26-the-lighthouse-of-mystery-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/nocal/feb-26-the-lighthouse-of-mystery-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/nocal/feb-26-the-lighthouse-of-mystery-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/nocal/feb-26-the-lighthouse-of-mystery-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/nocal/feb-26-the-lighthouse-of-mystery-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/the-lighthouse-of-mystery/nocal/feb-26-the-lighthouse-of-mystery-nocal-2560x1440.png">2560x1440</a></li> </ul> That’s All Folks <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/feb-26-thats-all-folks-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2026/feb-26-thats-all-folks-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/feb-26-thats-all-folks-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/cal/feb-26-thats-all-folks-cal-3840x2160.png">3840x2160</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-26/thats-all-folks/nocal/feb-26-thats-all-folks-nocal-3840x2160.png">3840x2160</a></li> </ul> Fall In Love With Yourself <p>“We dedicate February to Frida Kahlo to illuminate the world with color. Fall in love with yourself, with life, and then with whoever you want.” — Designed by <a href="https://www.silocreativo.com/en/">Veronica Valenzuela</a> from Spain.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2026/feb-25-fall-in-love-with-yourself-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2026/feb-25-fall-in-love-with-yourself-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2026/feb-25-fall-in-love-with-yourself-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/fall-in-love-with-yourself/nocal/feb-25-fall-in-love-with-yourself-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/fall-in-love-with-yourself/nocal/feb-25-fall-in-love-with-yourself-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/fall-in-love-with-yourself/nocal/feb-25-fall-in-love-with-yourself-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/fall-in-love-with-yourself/nocal/feb-25-fall-in-love-with-yourself-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/fall-in-love-with-yourself/nocal/feb-25-fall-in-love-with-yourself-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/fall-in-love-with-yourself/nocal/feb-25-fall-in-love-with-yourself-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/fall-in-love-with-yourself/nocal/feb-25-fall-in-love-with-yourself-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/fall-in-love-with-yourself/nocal/feb-25-fall-in-love-with-yourself-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/fall-in-love-with-yourself/nocal/feb-25-fall-in-love-with-yourself-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/fall-in-love-with-yourself/nocal/feb-25-fall-in-love-with-yourself-nocal-2560x1440.png">2560x1440</a></li> </ul> Plants <p>“I wanted to draw some very cozy place, both realistic and cartoonish, filled with little details. A space with a slightly unreal atmosphere that some great shops or cafes have. A mix of plants, books, bottles, and shelves seemed like a perfect fit. I must admit, it took longer to draw than most of my other pictures! But it was totally worth it. <a href="https://vlad.studio/wallpaper/plants">Watch the making-of</a>.” — Designed by <a href="https://vlad.studio/">Vlad Gerasimov</a> from Georgia.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2024/feb-23-plants-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2024/feb-23-plants-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2024/feb-23-plants-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-800x480.jpg">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-800x600.jpg">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-1024x600.jpg">1024x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-1024x768.jpg">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-1152x864.jpg">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-1280x720.jpg">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-1280x800.jpg">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-1280x960.jpg">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-1366x768.jpg">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-1440x900.jpg">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-1440x960.jpg">1440x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-1600x900.jpg">1600x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-2560x1440.jpg">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-2560x1600.jpg">2560x1600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-2880x1800.jpg">2880x1800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-3072x1920.jpg">3072x1920</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-3840x2160.jpg">3840x2160</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-23/plants/nocal/feb-23-plants-nocal-5120x2880.jpg">5120x2880</a></li> </ul> Farewell, Winter <p>“Although I love winter (mostly because of the fun winter sports), there are other great activities ahead. Thanks, winter, and see you next year!” — Designed by <a href="https://dribbble.com/izhik">Igor Izhik</a> from Canada.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a25494a0-31b0-45aa-8831-8548dbb08729/feb-16-farewell-winter-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/673630eb-6299-4aa4-bfca-05c8f78db651/feb-16-farewell-winter-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/673630eb-6299-4aa4-bfca-05c8f78db651/feb-16-farewell-winter-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-16/farewell-winter/nocal/feb-16-farewell-winter-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/farewell-winter/nocal/feb-16-farewell-winter-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/farewell-winter/nocal/feb-16-farewell-winter-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/farewell-winter/nocal/feb-16-farewell-winter-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/farewell-winter/nocal/feb-16-farewell-winter-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/farewell-winter/nocal/feb-16-farewell-winter-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/farewell-winter/nocal/feb-16-farewell-winter-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/farewell-winter/nocal/feb-16-farewell-winter-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/farewell-winter/nocal/feb-16-farewell-winter-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/farewell-winter/nocal/feb-16-farewell-winter-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/farewell-winter/nocal/feb-16-farewell-winter-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/farewell-winter/nocal/feb-16-farewell-winter-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/farewell-winter/nocal/feb-16-farewell-winter-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/farewell-winter/nocal/feb-16-farewell-winter-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/farewell-winter/nocal/feb-16-farewell-winter-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/farewell-winter/nocal/feb-16-farewell-winter-nocal-2560x1440.jpg">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/farewell-winter/nocal/feb-16-farewell-winter-nocal-2560x1600.jpg">2560x1600</a></li> </ul> Love Is In The Play <p>“Forget Lady and the Tramp and their spaghetti kiss, ’cause Snowflake and Cloudy are enjoying their bliss. The cold and chilly February weather made our kitties knit themselves a sweater. Knitting and playing, the kitties tangled in the yarn and fell in love in your neighbor’s barn.” — Designed by <a href="https://www.popwebdesign.net/corporate_identity.html">PopArt Studio</a> from Serbia.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1cecbbf7-4e98-4b29-a9c7-2117d078c000/feb-22-love-is-in-the-play-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e1bcf2b3-4ed1-4038-a774-54998c203467/feb-22-love-is-in-the-play-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e1bcf2b3-4ed1-4038-a774-54998c203467/feb-22-love-is-in-the-play-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/love-is-in-the-play/nocal/feb-22-love-is-in-the-play-nocal-2560x1440.png">2560x1440</a></li> </ul> True Love <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/00688e2b-8b60-4752-b851-1c3af5c09f31/feb-21-true-love-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ffe38772-cdb2-43d6-b334-76d1f46a97f7/feb-21-true-love-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ffe38772-cdb2-43d6-b334-76d1f46a97f7/feb-21-true-love-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-2560x1440.png">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/true-love/nocal/feb-21-true-love-nocal-3840x2160.png">3840x2160</a></li> </ul> February Ferns <p>Designed by Nathalie Ouederni from France.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4ef7f934-807e-44ae-af7e-f7e19cc24d19/feb-17-february-ferns-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/45a8625f-8583-49fa-8b06-0caee27e883a/feb-17-february-ferns-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/45a8625f-8583-49fa-8b06-0caee27e883a/feb-17-february-ferns-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-17/february-ferns/nocal/feb-17-february-ferns-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/february-ferns/nocal/feb-17-february-ferns-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/february-ferns/nocal/feb-17-february-ferns-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/february-ferns/nocal/feb-17-february-ferns-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/february-ferns/nocal/feb-17-february-ferns-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/february-ferns/nocal/feb-17-february-ferns-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/february-ferns/nocal/feb-17-february-ferns-nocal-2560x1440.jpg">2560x1440</a></li> </ul> The Great Beyond <p>Designed by Lars Pauwels from Belgium.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a231e39d-c928-496f-9421-fd054849511a/mar-18-the-great-beyond-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4f47db11-566a-41b6-abbb-22bdca722545/mar-18-the-great-beyond-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4f47db11-566a-41b6-abbb-22bdca722545/mar-18-the-great-beyond-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/mar-18/the-great-beyond/nocal/mar-18-the-great-beyond-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/mar-18/the-great-beyond/nocal/mar-18-the-great-beyond-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/mar-18/the-great-beyond/nocal/mar-18-the-great-beyond-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/mar-18/the-great-beyond/nocal/mar-18-the-great-beyond-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/mar-18/the-great-beyond/nocal/mar-18-the-great-beyond-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/mar-18/the-great-beyond/nocal/mar-18-the-great-beyond-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/mar-18/the-great-beyond/nocal/mar-18-the-great-beyond-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/mar-18/the-great-beyond/nocal/mar-18-the-great-beyond-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/mar-18/the-great-beyond/nocal/mar-18-the-great-beyond-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/mar-18/the-great-beyond/nocal/mar-18-the-great-beyond-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/mar-18/the-great-beyond/nocal/mar-18-the-great-beyond-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/mar-18/the-great-beyond/nocal/mar-18-the-great-beyond-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/mar-18/the-great-beyond/nocal/mar-18-the-great-beyond-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/mar-18/the-great-beyond/nocal/mar-18-the-great-beyond-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/mar-18/the-great-beyond/nocal/mar-18-the-great-beyond-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/mar-18/the-great-beyond/nocal/mar-18-the-great-beyond-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/mar-18/the-great-beyond/nocal/mar-18-the-great-beyond-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/mar-18/the-great-beyond/nocal/mar-18-the-great-beyond-nocal-2560x1440.png">2560x1440</a></li> </ul> It’s A Cupcake Kind Of Day <p>“Sprinkles are fun, festive, and filled with love… especially when topped on a cupcake! Everyone is creative in their own unique way, so why not try baking some cupcakes and decorating them for your sweetie this month? Something homemade, like a cupcake or DIY craft, is always a sweet gesture.” — Designed by Artsy Cupcake from the United States.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/42e901ee-8f81-4524-b9c9-ee514db8ced4/feb-20-cupcake-kind-of-day-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/860f193e-fc82-4912-a8c0-24d3404bf14b/feb-20-cupcake-kind-of-day-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/860f193e-fc82-4912-a8c0-24d3404bf14b/feb-20-cupcake-kind-of-day-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-20/cupcake-kind-of-day/nocal/feb-20-cupcake-kind-of-day-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-20/cupcake-kind-of-day/nocal/feb-20-cupcake-kind-of-day-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-20/cupcake-kind-of-day/nocal/feb-20-cupcake-kind-of-day-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-20/cupcake-kind-of-day/nocal/feb-20-cupcake-kind-of-day-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-20/cupcake-kind-of-day/nocal/feb-20-cupcake-kind-of-day-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-20/cupcake-kind-of-day/nocal/feb-20-cupcake-kind-of-day-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-20/cupcake-kind-of-day/nocal/feb-20-cupcake-kind-of-day-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-20/cupcake-kind-of-day/nocal/feb-20-cupcake-kind-of-day-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-20/cupcake-kind-of-day/nocal/feb-20-cupcake-kind-of-day-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-20/cupcake-kind-of-day/nocal/feb-20-cupcake-kind-of-day-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-20/cupcake-kind-of-day/nocal/feb-20-cupcake-kind-of-day-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-20/cupcake-kind-of-day/nocal/feb-20-cupcake-kind-of-day-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-20/cupcake-kind-of-day/nocal/feb-20-cupcake-kind-of-day-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-20/cupcake-kind-of-day/nocal/feb-20-cupcake-kind-of-day-nocal-2560x1440.png">2560x1440</a></li> </ul> Mochi <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2026/feb-25-mochi-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2026/feb-25-mochi-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2026/feb-25-mochi-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-25/mochi/nocal/feb-25-mochi-nocal-3840x2160.png">3840x2160</a></li> </ul> Balloons <p>Designed by <a href="https://www.behance.net/xenialatii">Xenia Latii</a> from Germany.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/29f2fe4b-b188-4651-b9b2-6d4da1640418/feb-17-balloons-large-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3e0b07f1-eeda-490e-8f47-2a065ff33626/feb-17-balloons-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3e0b07f1-eeda-490e-8f47-2a065ff33626/feb-17-balloons-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-640x480.jpg">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/balloons/nocal/feb-17-balloons-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Magic Of Music <p>Designed by <a href="https://vlad.studio/">Vlad Gerasimov</a> from Georgia.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f7e0cc9a-3fe6-4e17-b01f-288c66fedd19/feb-22-magic-of-music-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cfc93ecc-124f-45e3-a58b-0037b2d0b57d/feb-22-magic-of-music-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cfc93ecc-124f-45e3-a58b-0037b2d0b57d/feb-22-magic-of-music-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-1024x600.jpg">1024x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-1440x960.jpg">1440x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-1600x900.jpg">1600x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-2560x1440.jpg">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-2560x1600.jpg">2560x1600</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-2880x1800.jpg">2880x1800</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-3072x1920.jpg">3072x1920</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-3840x2160.jpg">3840x2160</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-22/magic-of-music/nocal/feb-22-magic-of-music-nocal-5120x2880.jpg">5120x2880</a></li> </ul> Love Angel Vader <p>“Valentine’s Day is coming? Noooooooooooo!” — Designed by <a href="https://ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9c509bc1-3632-404b-a51b-bf3a3f5f59ad/feb-15-love-angel-vader-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/601d583f-b013-4157-a116-dfb215326aac/feb-15-love-angel-vader-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/601d583f-b013-4157-a116-dfb215326aac/feb-15-love-angel-vader-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-640x960.png">640x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-1600x1050.png">1600x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-2560x1440.png">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/love-angel-vader/nocal/feb-15-love-angel-vader-nocal-2880x1800.png">2880x1800</a></li> </ul> Principles Of Good Design <p>“The simplicity seen in the work of Dieter Rams which has ensured his designs from the 50s and 60s still hold a strong appeal.” — Designed by Vinu Chaitanya from India.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c30b1e6b-8a48-4e4f-8d26-5147c7868549/feb-14-principles-of-good-design-dieter-rams-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/55db647c-7c44-4016-a0e0-e122c10ad712/feb-14-principles-of-good-design-dieter-rams-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/55db647c-7c44-4016-a0e0-e122c10ad712/feb-14-principles-of-good-design-dieter-rams-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/principles-of-good-design--dieter-rams/nocal/feb-14-principles-of-good-design--dieter-rams-nocal-2560x1440.png">2560x1440</a></li> </ul> Time Thief <p>“Who has stolen our time? Maybe the time thief, so be sure to enjoy the other 28 days of February.” — Designed by <a href="https://www.colorsfera.com">Colorsfera</a> from Spain.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0bf601e5-1d63-4c54-9c91-4ba017e6e555/feb-15-time-thief-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/44a5513e-c012-49f7-ba56-b8f8993a85eb/feb-15-time-thief-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/44a5513e-c012-49f7-ba56-b8f8993a85eb/feb-15-time-thief-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-1260x1440.png">1260x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/time-thief/nocal/feb-15-time-thief-nocal-2560x1440.png">2560x1440</a></li> </ul> Dark Temptation <p>“A dark romantic feel, walking through the city on a dark and rainy night.” — Designed by Matthew Talebi from the United States.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/12fcba42-e892-42b9-a49c-d0c711e74f57/feb-19-dark-temptation-large-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6b581622-d662-4bae-9e75-918edcbb2f47/feb-19-dark-temptation-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6b581622-d662-4bae-9e75-918edcbb2f47/feb-19-dark-temptation-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-19/dark-temptation/nocal/feb-19-dark-temptation-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-19/dark-temptation/nocal/feb-19-dark-temptation-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-19/dark-temptation/nocal/feb-19-dark-temptation-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-19/dark-temptation/nocal/feb-19-dark-temptation-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-19/dark-temptation/nocal/feb-19-dark-temptation-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-19/dark-temptation/nocal/feb-19-dark-temptation-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-19/dark-temptation/nocal/feb-19-dark-temptation-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-19/dark-temptation/nocal/feb-19-dark-temptation-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-19/dark-temptation/nocal/feb-19-dark-temptation-nocal-2560x1440.png">2560x1440</a></li> </ul> The Bathman <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2026/feb-24-the-bathman-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2026/feb-24-the-bathman-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2026/feb-24-the-bathman-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/feb-24/the-bathman/nocal/feb-24-the-bathman-nocal-3840x2160.png">3840x2160</a></li> </ul> Snowy Sunset <p>Designed by <a href="https://www.nathalie-croze.com">Nathalie Croze</a> from France.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d215db67-a1d0-45c4-adde-1b1fb45226d8/feb-17-snowy-sunset-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d319e185-4cd3-4097-a0c2-0f8d685b6ba7/feb-17-snowy-sunset-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d319e185-4cd3-4097-a0c2-0f8d685b6ba7/feb-17-snowy-sunset-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-17/snowy-sunset/nocal/feb-17-snowy-sunset-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/snowy-sunset/nocal/feb-17-snowy-sunset-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/snowy-sunset/nocal/feb-17-snowy-sunset-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/snowy-sunset/nocal/feb-17-snowy-sunset-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Like The Cold Side Of A Pillow <p>Designed by Sarah Tanner from the United States.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/eb089340-ac18-4696-bb77-37feb410fff5/february-13-like-the-cold-side-of-a-pillow-56-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/bbd21d5c-996e-479e-a6e1-2b50f84266df/february-13-like-the-cold-side-of-a-pillow-56-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/bbd21d5c-996e-479e-a6e1-2b50f84266df/february-13-like-the-cold-side-of-a-pillow-56-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/february-13/february-13-like_the_cold_side_of_a_pillow__56-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-13/february-13-like_the_cold_side_of_a_pillow__56-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-13/february-13-like_the_cold_side_of_a_pillow__56-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-13/february-13-like_the_cold_side_of_a_pillow__56-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-13/february-13-like_the_cold_side_of_a_pillow__56-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-13/february-13-like_the_cold_side_of_a_pillow__56-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-13/february-13-like_the_cold_side_of_a_pillow__56-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-13/february-13-like_the_cold_side_of_a_pillow__56-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-13/february-13-like_the_cold_side_of_a_pillow__56-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-13/february-13-like_the_cold_side_of_a_pillow__56-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-13/february-13-like_the_cold_side_of_a_pillow__56-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-13/february-13-like_the_cold_side_of_a_pillow__56-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-13/february-13-like_the_cold_side_of_a_pillow__56-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-13/february-13-like_the_cold_side_of_a_pillow__56-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-13/february-13-like_the_cold_side_of_a_pillow__56-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-13/february-13-like_the_cold_side_of_a_pillow__56-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-13/february-13-like_the_cold_side_of_a_pillow__56-nocal-2560x1440.jpg">2560x1440</a></li></ul> Ice Cream Love <p>“My inspiration for this wallpaper is the biggest love someone can have in life: the love for ice cream!” — Designed by Zlatina Petrova from Bulgaria.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9f3fca30-4243-4258-8b04-5ced15ddd1f3/feb-15-ice-cream-love-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cc9accac-73e6-4539-ae40-7f21d17fbb91/feb-15-ice-cream-love-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cc9accac-73e6-4539-ae40-7f21d17fbb91/feb-15-ice-cream-love-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-640x480.jpg">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/ice-cream-love/nocal/feb-15-ice-cream-love-nocal-2560x1440.jpg">2560x1440</a></li></ul> Febrewery <p>“I live in Madison, WI, which is famous for its breweries. Wisconsin even named their baseball team “The Brewers.” If you like beer, brats, and lots of cheese, it’s the place for you!” — Designed by Danny Gugger from the United States.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b9e36114-f8e1-4a28-aca4-898941170d52/feb-14-febrewery-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ed63511c-5466-4882-afc2-924670127811/feb-14-febrewery-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ed63511c-5466-4882-afc2-924670127811/feb-14-febrewery-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/february-14/febrewery/nocal/feb-14-febrewery-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/febrewery/nocal/feb-14-febrewery-nocal-1020x768.png">1020x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/febrewery/nocal/feb-14-febrewery-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/febrewery/nocal/feb-14-febrewery-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/febrewery/nocal/feb-14-febrewery-nocal-1136x640.png">1136x640</a>, <a href="https://smashingmagazine.com/files/wallpapers/february-14/febrewery/nocal/feb-14-febrewery-nocal-2560x1440.png">2560x1440</a></li> </ul> Share The Same Orbit! <p>“I prepared a simple and chill layout design for February called ‘Share The Same Orbit!’ which suggests to share the love orbit.” — Designed by <a href="https://www.behance.net/valentinkeleti">Valentin Keleti</a> from Romania.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c2bff2b8-9a09-4cb8-93d5-a4c7133b9705/feb-18-share-the-same-orbit-large-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b767b438-6982-4932-bf6f-ed3c9ba8ac40/feb-18-share-the-same-orbit-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b767b438-6982-4932-bf6f-ed3c9ba8ac40/feb-18-share-the-same-orbit-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-640x480.jpg">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/share-the-same-orbit/nocal/feb-18-share-the-same-orbit-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Febpurrary <p>“I was doodling pictures of my cat one day and decided I could turn it into a fun wallpaper — because a cold, winter night in February is the perfect time for staying in and cuddling with your cat, your significant other, or both!” — Designed by <a href="https://angeliadesign.com/">Angelia DiAntonio</a> from Ohio, USA.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/389e73f4-33e0-4937-a776-f94007f97296/feb-17-febpurrary-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/07785d5f-70da-47db-b48e-e05e7fd48d04/feb-17-febpurrary-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/07785d5f-70da-47db-b48e-e05e7fd48d04/feb-17-febpurrary-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-17/febpurrary/nocal/feb-17-febpurrary-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/febpurrary/nocal/feb-17-febpurrary-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/febpurrary/nocal/feb-17-febpurrary-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/febpurrary/nocal/feb-17-febpurrary-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/febpurrary/nocal/feb-17-febpurrary-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/febpurrary/nocal/feb-17-febpurrary-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/febpurrary/nocal/feb-17-febpurrary-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/febpurrary/nocal/feb-17-febpurrary-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/febpurrary/nocal/feb-17-febpurrary-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/febpurrary/nocal/feb-17-febpurrary-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/febpurrary/nocal/feb-17-febpurrary-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/febpurrary/nocal/feb-17-febpurrary-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/febpurrary/nocal/feb-17-febpurrary-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/febpurrary/nocal/feb-17-febpurrary-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/febpurrary/nocal/feb-17-febpurrary-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/febpurrary/nocal/feb-17-febpurrary-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Snow <p>Designed by <a href="https://www.doud.be">Elise Vanoorbeek</a> from Belgium.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/973b3d07-a36b-4d28-a902-87168f409ad5/feb-15-snow-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3afa06bc-dc11-40dc-9b47-d4273a39c2da/feb-15-snow-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3afa06bc-dc11-40dc-9b47-d4273a39c2da/feb-15-snow-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-15/snow/nocal/feb-15-snow-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/snow/nocal/feb-15-snow-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/snow/nocal/feb-15-snow-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/snow/nocal/feb-15-snow-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/snow/nocal/feb-15-snow-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/snow/nocal/feb-15-snow-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/snow/nocal/feb-15-snow-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/snow/nocal/feb-15-snow-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/snow/nocal/feb-15-snow-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/snow/nocal/feb-15-snow-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/snow/nocal/feb-15-snow-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/snow/nocal/feb-15-snow-nocal-2560x1440.jpg">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/snow/nocal/feb-15-snow-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-15/snow/nocal/feb-15-snow-nocal-2880x1800.jpg">2880x1800</a></li></ul> Dog Year Ahead <p>Designed by <a href="https://www.popwebdesign.net/index_eng.html">PopArt Studio</a> from Serbia.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4519a4e6-3d2b-49f7-97da-f312d416acfc/feb-18-dog-year-ahead-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b6e75626-1f6d-4fc8-b3c9-fcf098c2c057/feb-18-dog-year-ahead-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b6e75626-1f6d-4fc8-b3c9-fcf098c2c057/feb-18-dog-year-ahead-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-640x480.jpg">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/dog-year-ahead/nocal/feb-18-dog-year-ahead-nocal-2560x1440.jpg">2560x1440</a> </li></ul> French Fries <p>Designed by <a href="https://www.doreenbethge.de">Doreen Bethge</a> from Germany.</p> <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/feb-18-french-fries-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/21035651-73be-4944-a3e5-5618bc39533a/feb-18-french-fries-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/21035651-73be-4944-a3e5-5618bc39533a/feb-18-french-fries-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-18/french-fries/nocal/feb-18-french-fries-nocal-2560x1440.png">2560x1440</a></li> </ul> “Greben” Icebreaker <p>“Danube is Europe’s second largest river, connecting ten different countries. In these cold days, when ice paralyzes rivers and closes waterways, a small but brave icebreaker called Greben (Serbian word for ‘reef’) seems stronger than winter. It cuts through the ice on Đerdap gorge (Iron Gate) — the longest and biggest gorge in Europe — thus helping the production of electricity in the power plant. This is our way to give thanks to Greben!” — Designed by <a href="https://www.popwebdesign.net/index_eng.html">PopArt Studio</a> from Serbia.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/66dabe40-37b6-4339-a746-be25a6d2ae1a/feb-17-greben-icebreaker-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b2d4ce90-9d66-4359-b6d1-f8a84f2cb0e9/feb-17-greben-icebreaker-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b2d4ce90-9d66-4359-b6d1-f8a84f2cb0e9/feb-17-greben-icebreaker-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-640x480.jpg">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-17/greben-icebreaker/nocal/feb-17-greben-icebreaker-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Out There, There’s Someone Like You <p>“I am a true believer that out there in this world there is another person who is just like us, the problem is to find her/him.” — Designed by <a href="https://www.mariakellerac.com">Maria Keller</a> from Mexico.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0e73961a-fd20-40d4-af18-e5c6aa0c9966/feb-16-out-there-theres-someone-like-you-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c58dc2c5-de15-461f-876c-e5b4f3e6ca9f/feb-16-out-there-theres-someone-like-you-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c58dc2c5-de15-461f-876c-e5b4f3e6ca9f/feb-16-out-there-theres-someone-like-you-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-640x1136.png">640x1136</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-750x1334.png">750x1334</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-1242x2208.png">1242x2208</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-2560x1440.png">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-16/out-there-theres-someone-like-you/nocal/feb-16-out-there-theres-someone-like-you-nocal-2880x1800.png">2880x1800</a></li> </ul> On The Light Side <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2024/feb-21-on-the-light-side-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2024/feb-21-on-the-light-side-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2024/feb-21-on-the-light-side-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-2560x1440.png">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/feb-21/on-the-light-side/nocal/feb-21-on-the-light-side-nocal-3840x2160.png">3840x2160</a></li> </ul> Get Featured Next Month <p>Feeling inspired? We’ll publish the <strong>March wallpapers</strong> on February 28, so if you’d like to be a part of the collection, please don’t hesitate to <a href="https://www.smashingmagazine.com/desktop-wallpaper-calendars-join-in/">submit your design</a>. We are already looking forward to it!</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/01/desktop-wallpaper-calendars-february-2026/</span> hello@smashingmagazine.com (Cosima Mielke) <![CDATA[Practical Use Of AI Coding Tools For The Responsible Developer]]> https://smashingmagazine.com/2026/01/practical-use-ai-coding-tools-responsible-developer/ https://smashingmagazine.com/2026/01/practical-use-ai-coding-tools-responsible-developer/ Fri, 30 Jan 2026 13:00:00 GMT AI coding tools like agents can be valuable allies in everyday development work. They help handle time-consuming grunt work, guide you through large legacy codebases, and offer low-risk ways to implement features in previously unfamiliar programming languages. Here are practical, easy-to-apply techniques to help you use these tools to improve your workflow. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/01/practical-use-ai-coding-tools-responsible-developer/</span> <p>Over the last two years, my team at <a href="https://work.co/">Work & Co</a> and I have been testing out and gradually integrating AI coding tools like Copilot, Cursor, Claude, and ChatGPT to help us ship web experiences that are used by the masses. Admittedly, after some initial skepticism and a few aha moments, various AI tools have found their way into my daily use. Over time, the list of applications where we found it made sense to let AI take over started to grow, so I decided to share some <strong>practical use cases</strong> for AI tools for what I call the “responsible developer”.</p> <p>What do I mean by a <strong>responsible developer</strong>?</p> <p>We have to make sure that we deliver quality code as expected by our stakeholders and clients. Our contributions (i.e., pull requests) should not become a burden on our colleagues who will have to review and test our work. Also, in case you work for a company: The tools we use need to be approved by our employer. Sensitive aspects like security and privacy need to be handled properly: Don’t paste secrets, customer data (PII), or proprietary code into tools without policy approval. Treat it like code from a stranger on the internet. Always test and verify.</p> <p><strong>Note</strong>: <em>This article assumes some very basic familiarity with AI coding tools like Copilot inside VSCode or Cursor. If all of this sounds totally new and unfamiliar to you, the <a href="https://github.com/features/copilot/tutorials">Github Copilot video tutorials</a> can be a fantastic starting point for you.</em></p> <p><img src="https://files.smashing.media/articles/practical-use-ai-coding-tools-responsible-developer/01-vscode-copilot.png" /></p> Helpful Applications Of AI Coding Tools <p><strong>Note</strong>: The following examples will mainly focus on working in JavaScript-based web applications like React, Vue, Svelte, or Angular.</p> <h3>Getting An Understanding Of An Unfamiliar Codebase</h3> <p>It’s not uncommon to work on established codebases, and joining a large legacy codebase can be intimidating. Simply open your project and your AI agent (in my case, Copilot Chat in VSCode) and start asking questions just like you would ask a colleague. In general, I like to talk to any AI agent just as I would to a fellow human.</p> <p>Here is a more refined example prompt:</p> <blockquote>“Give me a high-level architecture overview: entrypoints, routing, auth, data layer, build tooling. Then list 5 files to read in order. Treat explanations as hypotheses and confirm by jumping to referenced files.”</blockquote> <p>You can keep asking follow-up questions like <em>“How does the routing work in detail?”</em> or <em>“Talk me through the authentication process and methods”</em> and it will lead you to helpful directions to shine some light into the dark of an unfamiliar codebase.</p> <h3>Triaging Breaking Changes When Upgrading Dependencies</h3> <p>Updating npm packages, especially when they come with breaking changes, can be tedious and time-consuming work, and make you debug a fair amount of regressions. I recently had to upgrade the data visualization library <a href="plotly.js">plotly.js</a> up one major release version from version 2 to 3, and as a result of that, the axis labeling in some of the graphs stopped working. </p> <p>I went on to ask ChatGPT:</p> <blockquote>“I updated my Angular project that uses Plotly. I updated the plotly.js — dist package from version 2.35.2 to 3.1.0 — and now the labels on the x and y axis are gone. What happened?”</blockquote> <p>The agent came back with a solution promptly (see for yourself below).</p> <p><strong>Note</strong>: <em>I still verified the explanation against the official migration guide before shipping the fix.</em></p> <p><img src="https://files.smashing.media/articles/practical-use-ai-coding-tools-responsible-developer/02-chatgpt-plotly.png" /></p> <h3>Replicating Refactors Safely Across Files</h3> <p>Growing codebases most certainly unveil opportunities for code consolidation. For example, you notice code duplication across files that can be extracted into a single function or component. As a result, you decide to create a shared component that can be included instead and perform that refactor in one file. Now, instead of manually carrying out those changes to your remaining files, you ask your agent to roll out the refactor for you.</p> <p>Agents let you select multiple files as context. Once the refactor for one file is done, I can add both the refactored and untouched files into context and prompt the agent to roll out the changes to other files like this: <em>“Replicate the changes I made in file A to file B as well”</em>.</p> <h3>Implementing Features In Unfamiliar Technologies</h3> <p>One of my favorite aha-moments using AI coding tools was when it helped me create a quite complex animated gradient animation in GLSL, a language I have been fairly unfamiliar with. On a recent project, our designers came up with an animated gradient as a loading state on a 3D object. I really liked the concept and wanted to deliver something unique and exciting to our clients. The problem: I only had two days to implement it, and GLSL has quite the steep learning curve.</p> <p>Again, an AI tool (in this case, ChatGPT) came in handy, and I started quite simply prompting it to create a standalone HTML file for me that renders a canvas and a very simple animated color gradient. Step after step, I prompted the AI to add more finesse to it until I arrived at a decent result so I could start integrating the shader into my actual codebase.</p> <p>The end result: Our clients were super happy, and we delivered a complex feature in a small amount of time thanks to AI.</p> <h3>Writing Tests</h3> <p>In my experience, there’s rarely enough time on projects to continuously write and maintain a proper suite of unit and integration tests, and on top of that, many developers don’t really enjoy the task of writing tests. Prompting your AI helper to set up and write tests for you is entirely possible and can be done in a small amount of time. Of course, you, as a developer, should still make sure that your tests actually take a look at the critical parts of your application and follow sensible testing principles, but you can “outsource” the writing of the tests to our AI helper.</p> <p>Example prompt: </p> <blockquote>“Write unit tests for this function using Jest. Cover happy path, edge cases, and failure modes. Explain why each test exists.”</blockquote> <p>You can even pass along testing guru Kent C. Dodds’ testing best practices as guidelines to your agent, like below:</p> <p><img src="https://files.smashing.media/articles/practical-use-ai-coding-tools-responsible-developer/03-post-testing.png" /></p> <h3>Internal Tooling</h3> <p>Somewhat similar to the shader example mentioned earlier, I was recently tasked to analyze code duplication in a codebase and compare before and after a refactor. Certainly not a trivial task if you don’t want to go the time-consuming route of comparing files manually. With the help of Copilot, I created a script that analyzed code duplication for me, arranged and ordered the output in a table, and exported it to Excel. Then I took it a step further. When our code refactor was done, I prompted the agent to take my existing Excel sheet as the baseline, add in the current state of duplication in separate columns, and calculate the delta. </p> <h3>Updating Code Written A Long Time Ago</h3> <p>Recently, an old client of mine hit me up, as over time, a few features weren’t working properly on his website anymore.</p> <p>The catch: The website was built almost ten years ago, and the JavaScript and SCSS were using rather old compile tools like requireJS, and the setup required an older version of Node.js that wouldn’t even run on my 2025 MacBook.</p> <p>Updating the whole build process by hand would have taken me days, so I decided to prompt the AI agent, <em>“Can you update the JS and SCSS build process to a lean 2025 stack like Vite?”</em> It sure did, and after around an hour of refining with the agent, I had my SCSS and JS build switched to Vite, and I was able to focus on actual bugfixing. Just make sure to properly validate the output and compiled files when doing such integral changes to your build process.</p> <h3>Summarizing And Drafting</h3> <p>Would you like to summarize all your recent code changes in one sentence for a commit message, or have a long list of commits and would like to sum them up in three bullet points? No problem, let the AI take care of it, but please make sure to proofread it.</p> <p>An example prompt is as simple as messaging a fellow human: <em>“Please sum up my recent changes in concise bullet points”</em>. </p> <p>My advice here would be to use GPT for writing with caution, and as with code, please check the output before sending or submitting.</p> Recommendations And Best Practices <h3>Prompting</h3> <p>One of the not-so-obvious benefits of using AI is that the more specific and tailored your prompts are, the better the output. The process of prompting an AI agent forces us to <strong>formulate our requirements as specifically as possible</strong> before we write and code. This is why, as a general rule, I highly recommend being as specific as possible with your prompting.</p> <p>Ryan Florence, co-author of Remix, suggests a simple yet powerful way to improve this process by finishing your initial prompt with the sentence:</p> <blockquote>“Before we start, do you have any questions for me?”</blockquote> <p>At this point, the AI usually comes back with helpful questions where you can clarify your specific intent, guiding the agent to provide you with a <strong>more tailored approach</strong> for your task. </p> <p><img src="https://files.smashing.media/articles/practical-use-ai-coding-tools-responsible-developer/04-post-cursor.png" /></p> <h3>Use Version Control And Work In Digestible Chunks</h3> <p>Using version control like git not only comes in handy when collaborating as a team on a single codebase but also to provide you as an individual contributor with stable points to roll back to in case of an emergency. Due to its non-deterministic nature, AI can sometimes go rogue and make changes that are simply not helpful for what you are trying to achieve and eventually break things irreparably. </p> <p>Splitting up your work into <strong>multiple commits</strong> will help you create stable points that you can revert to in case things go sideways. And your teammates will thank you as well, as they will have an easier time reviewing your code when it is split up into semantically well-structured chunks. </p> <h3>Review Thoroughly</h3> <p>This is more of a general best practice, but in my opinion, it becomes even more important when using AI tools for development work: <strong>Be the first critical reviewer of your code</strong>. Make sure to take some time to go over your changes line by line, just like you would review someone else’s code, and only submit your work once it passes your own self-review. </p> <blockquote>“Two things are both true to me right now: AI agents are amazing and a huge productivity boost. They are also massive slop machines if you turn off your brain and let go completely.”<br /><br />— Armin Ronacher in his blog post <a href="https://lucumr.pocoo.org/2026/1/18/agent-psychosis/">Agent Psychosis: Are We Going Insane?</a></blockquote> Conclusion And Critical Thoughts <p>In my opinion, AI coding tools can improve our productivity as developers on a daily basis and free up mental capacity for more planning and high-level thinking. They force us to articulate our desired outcome with meticulous detail.</p> <p>Any AI can, at times, hallucinate, which basically means it lies in a confident tone. So please make sure to check and test, especially when you are in doubt. AI is not a silver bullet, and I believe, excellence and the ability to solve problems as a developer will never go out of fashion.</p> <p>For developers who are just starting out in their career these tools can be highly tempting to do the majority of the work for them. What may get lost here is the often draining and painful work through bugs and issues that are tricky to debug and solve, aka “the grind”. Even Cursor AI’s very own Lee Robinson questions this in one of his posts:</p> <p><img src="https://files.smashing.media/articles/practical-use-ai-coding-tools-responsible-developer/05-post-leerob.png" /></p> <p>AI coding tools are evolving at a fast pace, and I am excited for what will come next. I hope you found this article and its tips helpful and are excited to try out some of these for yourself.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/01/practical-use-ai-coding-tools-responsible-developer/</span> hello@smashingmagazine.com (Stefan Kaltenegger) <![CDATA[Unstacking CSS Stacking Contexts]]> https://smashingmagazine.com/2026/01/unstacking-css-stacking-contexts/ https://smashingmagazine.com/2026/01/unstacking-css-stacking-contexts/ Tue, 27 Jan 2026 10:00:00 GMT In CSS, we can create “stacking contexts” where elements are visually placed one on top of the next in a three-dimensional sense that creates the perception of depth. Stacking contexts are incredibly useful, but they’re also widely misunderstood and often mistakenly created, leading to a slew of layout issues that can be tricky to solve. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/01/unstacking-css-stacking-contexts/</span> <p>Have you ever set <code>z-index: 99999</code> on an element in your CSS, and it doesn’t come out on top of other elements? A value that large should easily place that element visually on top of anything else, assuming all the different elements are set at either a lower value or not set at all.</p> <p>A webpage is usually represented in a two-dimensional space; however, by applying specific CSS properties, an imaginary z-axis plane is introduced to convey depth. This plane is perpendicular to the screen, and from it, the user perceives the order of elements, one on top of the other. The idea behind the imaginary z-axis, the user’s perception of stacked elements, is that the CSS properties that create it combine to form what we call a <strong>stacking context</strong>.</p> <p>We’re going to talk about how elements are “stacked” on a webpage, what controls the stacking order, and practical approaches to “unstack” elements when needed.</p> About Stacking Contexts <p>Imagine your webpage as a desk. As you add HTML elements, you’re laying pieces of paper, one after the other, on the desk. The last piece of paper placed is equivalent to the most recently added HTML element, and it sits on top of all the other papers placed before it. This is the normal document flow, even for nested elements. The desk itself represents the root stacking context, formed by the <code><html></code> element, which contains all other folders.</p> <p>Now, specific CSS properties come into play.</p> <p>Properties like <code>position</code> (with <code>z-index</code>), <code>opacity</code>, <code>transform</code>, and <code>contain</code>) act like a folder. This folder takes an element and all of its children, extracts them from the main stack, and groups them into a separate sub-stack, creating what we call a <strong>stacking context</strong>. For positioned elements, this happens when we declare a <code>z-index</code> value other than <code>auto</code>. For properties like <code>opacity</code>, <code>transform</code>, and <code>filter</code>, the stacking context is created automatically when specific values are applied.</p> <p><img src="https://files.smashing.media/articles/unstacking-css-stacking-contexts/1-stacking-context-order.png" /></p> <blockquote>Try to understand this: Once a piece of paper (i.e., a child element) is inside a folder (i.e., the parent’s stacking context), it can never exit that folder or be placed between papers in a different folder. Its <code>z-index</code> is now only relevant inside its own folder.</blockquote> <p>In the illustration below, Paper B is now within the stacking context of Folder B, and can only be ordered with other papers in the folder.</p> <p><img src="https://files.smashing.media/articles/unstacking-css-stacking-contexts/2-stacking-contexts.png" /></p> <p>Imagine, if you will, that you have two folders on your desk:</p> <pre><code><div class="folder-a">Folder A</div> <div class="folder-b">Folder B</div> </code></pre> <pre><code>.folder-a { z-index: 1; } .folder-b { z-index: 2; } </code></pre> <p>Let’s update the markup a bit. Inside Folder A is a special page, <code>z-index: 9999</code>. Inside Folder B is a plain page, <code>z-index: 5</code>.</p> <pre><code><div class="folder-a"> <div class="special-page">Special Page</div> </div> <div class="folder-b"> <div class="plain-page">Plain Page</div> </div> </code></pre> <pre><code>.special-page { z-index: 9999; } .plain-page { z-index: 5; } </code></pre> <p>Which page is on top?</p> <p>It’s the <code>.plain-page</code> in Folder B. The browser ignores the child papers and stacks the two folders first. It sees Folder B (<code>z-index: 2</code>) and places it on top of Folder A (<code>z-index: 1</code>) because we know that two is greater than one. Meanwhile, the <code>.special-page</code> set to <code>z-index: 9999</code> page is at the bottom of the stack even though its <code>z-index</code> is set to the highest possible value.</p> <p>Stacking contexts can also be nested (folders inside folders), creating a “family tree.” The same principle applies: a child can never escape its parents’ folder.</p> <p>Now that you get how stacking contexts behave like folders that group and reorder layers, it’s worth asking: why do certain properties — like <code>transform</code> and <code>opacity</code> — create new stacking contexts?</p> <p>Here’s the thing: these properties don’t create stacking contexts because of how they look; they do it because of how the browser works under the hood. When you apply <code>transform</code>, <code>opacity</code>, <code>filter</code>, or <code>perspective</code>, you’re telling the browser, <em>“Hey, this element might move, rotate, or fade, so be ready!”</em></p> <p><img src="https://files.smashing.media/articles/unstacking-css-stacking-contexts/3-diagram-stacking-context.png" /></p> <p>When you use these properties, the browser creates a new stacking context to manage rendering more efficiently. This allows the browser to handle animations, transforms, and visual effects independently, reducing the need to recalculate how these elements interact with the rest of the page. Think of it as the browser saying, <em>“I’ll handle this folder separately so I don’t have to reshuffle the entire desk every time something inside it changes.”</em></p> <p>But there’s a side effect. Once the browser lifts an element into its own layer, it must “flatten” everything within it, creating a new stacking context. It’s like taking a folder off the desk to handle it separately; everything inside that folder gets grouped, and the browser now treats it as a single unit when deciding what sits on top of what.</p> <p>So even though the <code>transform</code> and <code>opacity</code> properties might not appear to affect the way that elements stack visually, they do, and it’s for performance optimisation. Several other CSS properties can also create stacking contexts for similar reasons. <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_positioned_layout/Stacking_context#features_creating_stacking_contexts">MDN provides a complete list</a> if you want to dig deeper. There are quite a few, which only illustrates how easy it is to inadvertently create a stacking context without knowing it.</p> The “Unstacking” Problem <p>Stacking issues can arise for many reasons, but some are more common than others. Modal components are a classic pattern because they require toggling the component to “open” on a top layer above all other elements, then removing it from the top layer when it is “closed.”</p> <p>I’m pretty confident that all of us have run into a situation where we open a modal and, for whatever reason, it doesn’t appear. It’s not that it didn’t open properly, but that it is out of view in a lower layer of the stacking context.</p> <p>This leaves you to wonder “how come?” since you set:</p> <div> <pre><code>.overlay { position: fixed; /* creates the stacking context */ z-index: 1; /* puts the element on a layer above everything else */ inset: 0; width: 100%; height: 100vh; overflow: hidden; background-color: #00000080; } </code></pre> </div> <p>This looks correct, but if the parent element containing the modal trigger is a child element within another parent element that’s also set to <code>z-index: 1</code>, that technically places the modal in a sublayer obscured by the main folder. Let’s look at that specific scenario and a couple of other common stacking-context pitfalls. I think you’ll see not only how easy it is to inadvertently create stacking contexts, but also how to mismanage them. Also, how you return to a managed state depends on the situation.</p> <h3>Scenario 1: The Trapped Modal</h3> <p><img src="https://files.smashing.media/articles/unstacking-css-stacking-contexts/4-microsoft-edge-stacking-context.png" /></p> <p>You can immediately see your modal trapped in a low-level layer and identify the parent.</p> <h4>Browser Extensions</h4> <p>Smart developers have built extensions to help. Tools like this <a href="https://chrome.google.com/webstore/detail/z-context/jigamimbjojkdgnlldajknogfgncplbhhttps://chrome.google.com/webstore/detail/z-context/jigamimbjojkdgnlldajknogfgncplbh">“CSS Stacking Context Inspector” Chrome extension</a> add an extra <code>z-index</code> tab to your DevTools to show you information about elements that create a stacking context.</p> <p><img src="https://files.smashing.media/articles/unstacking-css-stacking-contexts/5-browser-extensions.png" /></p> <h4>IDE Extensions</h4> <p>You can even spot issues during development with an extension <a href="https://marketplace.visualstudio.com/items?itemName=mikerheault.vscode-better-css-stacking-contexts">like this one for VS Code</a>, which highlights potential stacking context issues directly in your editor.</p> <p><img src="https://files.smashing.media/articles/unstacking-css-stacking-contexts/6-ide-extensions.png" /></p> Unstacking And Regaining Control <p>After we’ve identified the root cause, the next step is to deal with it. There are several approaches you can take to tackle this problem, and I’ll list them in order. You can choose anyone at any level, though; no one can complain or obstruct another.</p> <h3>Change The HTML Structure</h3> <p>This is considered the optimal fix. For you to run into a stacking context issue, you must have placed some elements in funny positions within your HTML. Restructuring the page will help you reshape the DOM and eliminate the stacking context problem. Find the problematic element and remove it from the trapping element in the HTML markup. For instance, we can solve the first scenario, “The Trapped Modal,” by moving the <code>.modal-container</code> out of the header and placing it in the <code><body></code> element by itself.</p> <div> <pre><code><header class="header"> <h2>Header</h2> <button id="open-modal">Open Modal</button> <!-- Former position --> </header> <main class="content"> <h1>Main Content</h1> <p>This content has a z-index of 2 and will still not cover the modal.</p> </main> <!-- New position --> <div id="modal-container" class="modal-container"> <div class="modal-overlay"></div> <div class="modal-content"> <h3>Modal Title</h3> <p>Now, I'm not behind anything. I've gotten a better position as a result of DOM restructuring.</p> <button id="close-modal">Close</button> </div> </div> </code></pre> </div> <p>When you click the “Open Modal” button, the modal is positioned in front of everything else as it’s supposed to be.</p> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/azZVVNP">Scenario 1: The Trapped Modal (Solution) [forked]</a> by <a href="https://codepen.io/drprime01">Shoyombo Gabriel Ayomide</a>.</p> <h3>Adjust The Parent Stacking Context In CSS</h3> <p>What if the element is one you can’t move without breaking the layout? It’s better to address the issue: <strong>the parent establishes the context.</strong> Find the CSS property (or properties) responsible for triggering the context and remove it. If it has a purpose and cannot be removed, give the parent a higher <code>z-index</code> value than its sibling elements to lift the entire container. With a higher <code>z-index</code> value, the parent container moves to the top, and its children appear closer to the user.</p> <p>Based on what we learned in “<a href="/scl/fi/ue0rufxffviprc9858j25/Debugging-CSS-Stacking-Contexts.paper?rlkey=ezbdaiq6mojvb7xzezxlds29b&dl=0#:uid=376729122027939635792428&h2=Problem-2:-The-Submerged-Dropd">The Submerged Dropdown</a>” scenario, we can’t move the dropdown out of the navbar; it wouldn’t make sense. However, we can increase the <code>z-index</code> value of the <code>.navbar</code> container to be greater than the <code>.content</code> element’s <code>z-index</code> value.</p> <pre><code>.navbar { background: #333; /* z-index: 1; */ z-index: 3; position: relative; } </code></pre> <p>With this change, the <code>.dropdown-menu</code> now appears in front of the content without any issue.</p> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/YPWEEWz">Scenario 2: The Submerged Dropdown (Solution) [forked]</a> by <a href="https://codepen.io/drprime01">Shoyombo Gabriel Ayomide</a>.</p> <h3>Try Portals, If Using A Framework</h3> <p>In frameworks like <a href="https://react.dev/reference/react-dom/createPortal">React</a> or <a href="https://www.digitalocean.com/community/tutorials/vuejs-portal-vue">Vue</a>, a Portal is a feature that lets you render a component outside its normal parent hierarchy in the DOM. Portals are like a teleportation device for your components. They let you render a component’s HTML anywhere in the document (typically right into <code>document.body</code>) while keeping it logically connected to its original parent for props, state, and events. This is perfect for escaping stacking context traps since the rendered output literally appears outside the problematic parent container.</p> <pre><code>ReactDOM.createPortal( <ToolTip />, document.body ); </code></pre> <p>This ensures your dropdown content isn’t hidden behind its parent, even if the parent has <code>overflow: hidden</code> or a lower <code>z-index</code>.</p> <p>In the “The Clipped Tooltip” scenario we looked at earlier, I used a Portal to rescue the tooltip from the <code>overflow: hidden</code> clip by placing it in the document body and positioning it above the trigger within the container.</p> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/myEqqEe">Scenario 3: The Clipped Tooltip (Solution) [forked]</a> by <a href="https://codepen.io/drprime01">Shoyombo Gabriel Ayomide</a>.</p> Introducing Stacking Context Without Side Effects <p>All the approaches explained in the previous section are aimed at “unstacking” elements from problematic stacking contexts, but there are some situations where you’ll actually need or want to create a stacking context.</p> <p>Creating a new stacking context is easy, but all approaches come with a side effect. That is, except for using <a href="https://css-tricks.com/almanac/properties/i/isolation/"><code>isolation: isolate</code></a>. When applied to an element, the stacking context of that element’s children is determined relative to each child and within that context, rather than being influenced by elements outside of it. A classic example is assigning that element a negative value, such as <code>z-index: -1</code>.</p> <p>Imagine you have a <code>.card</code> component. You want to add a decorative shape that sits behind the <code>.card</code>’s text, but on top of the card’s background. Without a stacking context on the card, <code>z-index: -1</code> sends the shape to the bottom of the root stacking context (the whole page). This makes it disappear behind the <code>.card</code>’s white background:</p> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/QwEOOEM">Negative z-index (problem) [forked]</a> by <a href="https://codepen.io/drprime01">Shoyombo Gabriel Ayomide</a>.</p> <p>To solve this, we declare <code>isolation: isolate</code> on the parent <code>.card</code>:</p> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/MYeOOeG">Negative z-index (solution) [forked]</a> by <a href="https://codepen.io/drprime01">Shoyombo Gabriel Ayomide</a>.</p> <p>Now, the <code>.card</code> element itself becomes a stacking context. When its child element — the decorative shape created on the <code>:before</code> pseudo-element — has <code>z-index: -1</code>, it goes to the very bottom of the parent’s stacking context. It sits perfectly behind the text and on top of the card’s background, as intended.</p> Conclusion <p>Remember: the next time your <code>z-index</code> seems out of control, it’s a trapped stacking context.</p> <h3>References</h3> <ul> <li><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_positioned_layout/Stacking_context">Stacking context</a> (MDN)</li> <li><a href="https://web.dev/learn/css/z-index">Z-index and stacking contexts</a> (web.dev)</li> <li>“<a href="https://www.freecodecamp.org/news/the-css-isolation-property/">How to Create a New Stacking Context with the Isolation Property in CSS</a>”, Natalie Pina</li> <li>“<a href="https://www.joshwcomeau.com/css/stacking-contexts/">What The Heck, z-index??</a>”, Josh Comeau</li> </ul> <h3>Further Reading On SmashingMag</h3> <ul> <li>“<a href="https://www.smashingmagazine.com/2021/02/css-z-index-large-projects/">Managing CSS Z-Index In Large Projects</a>”, Steven Frieson</li> <li>“<a href="https://www.smashingmagazine.com/2024/09/sticky-headers-full-height-elements-tricky-combination/">Sticky Headers And Full-Height Elements: A Tricky Combination</a>”, Philip Braunen</li> <li>“<a href="https://www.smashingmagazine.com/2019/04/z-index-component-based-web-application/">Managing Z-Index In A Component-Based Web Application</a>”, Pavel Pomerantsev</li> <li>“<a href="https://www.smashingmagazine.com/2009/09/the-z-index-css-property-a-comprehensive-look/">The Z-Index CSS Property: A Comprehensive Look</a>”, Louis Lazaris</li> </ul> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/01/unstacking-css-stacking-contexts/</span> hello@smashingmagazine.com (Gabriel Shoyombo) <![CDATA[Beyond Generative: The Rise Of Agentic AI And User-Centric Design]]> https://smashingmagazine.com/2026/01/beyond-generative-rise-agentic-ai-user-centric-design/ https://smashingmagazine.com/2026/01/beyond-generative-rise-agentic-ai-user-centric-design/ Thu, 22 Jan 2026 13:00:00 GMT Developing effective agentic AI requires a new research playbook. When systems plan, decide, and act on our behalf, UX moves beyond usability testing into the realm of trust, consent, and accountability. Victor Yocco outlines the research methods needed to design agentic AI systems responsibly. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/01/beyond-generative-rise-agentic-ai-user-centric-design/</span> <p>Agentic AI stands ready to transform customer experience and operational efficiency, necessitating a new strategic approach from leadership. This evolution in artificial intelligence empowers systems to <strong>plan</strong>, <strong>execute</strong>, and <strong>persist</strong> in tasks, moving beyond simple recommendations to proactive action. For UX teams, product managers, and executives, understanding this shift is crucial for unlocking opportunities in innovation, streamlining workflows, and redefining how technology serves people.</p> <p>It’s easy to confuse <strong>Agentic AI</strong> with Robotic Process Automation (RPA), which is technology that focuses on rules-based tasks performed on computers. The distinction lies in rigidity versus reasoning. RPA is excellent at following a strict script: if X happens, do Y. It mimics human hands. Agentic AI mimics human reasoning. It does not follow a linear script; it <strong>creates</strong> one.</p> <p>Consider a recruiting workflow. An RPA bot can scan a resume and upload it to a database. It performs a repetitive task perfectly. An Agentic system looks at the resume, notices the candidate lists a specific certification, cross-references that with a new client requirement, and decides to draft a personalized outreach email highlighting that match. RPA executes a predefined plan; Agentic AI formulates the plan based on a goal. This autonomy separates agents from the predictive tools we have used for the last decade.</p> <p>Another example is managing meeting conflicts. A predictive model integrated into your calendar might analyze your meeting schedule and the schedules of your colleagues. It could then suggest potential conflicts, such as two important meetings scheduled at the same time, or a meeting scheduled when a key participant is on vacation. It provides you with information and flags potential issues, but you are responsible for taking action.</p> <p>An agentic AI, in the same scenario, would go beyond just suggesting conflicts to avoid. Upon identifying a conflict with a key participant, the agent could act by:</p> <ul> <li>Checking the availability of all necessary participants.</li> <li>Identifying alternative time slots that work for everyone.</li> <li>Sending out proposed new meeting invitations to all attendees.</li> <li>If the conflict is with an external participant, the agent could draft and send an email explaining the need to reschedule and offering alternative times.</li> <li>Updating your calendar and the calendars of your colleagues with the new meeting details once confirmed.</li> </ul> <p>This agentic AI understands the goal (resolving the meeting conflict), plans the steps (checking availability, finding alternatives, sending invites), executes those steps, and persists until the conflict is resolved, all with minimal direct user intervention. This demonstrates the “agentic” difference: the system takes <strong>proactive steps</strong> for the user, rather than just providing information to the user.</p> <p>Agentic AI systems understand a goal, plan a series of steps to achieve it, execute those steps, and even adapt if things go wrong. Think of it like a <strong>proactive digital assistant</strong>. The underlying technology often combines large language models (LLMs) for understanding and reasoning, with planning algorithms that break down complex tasks into manageable actions. These agents can interact with various tools, APIs, and even other AI models to accomplish their objectives, and critically, they can maintain a persistent state, meaning they remember previous actions and continue working towards a goal over time. This makes them fundamentally different from typical generative AI, which usually completes a single request and then resets.</p> A Simple Taxonomy of Agentic Behaviors <p>We can categorize agent behavior into four distinct modes of autonomy. While these often look like a progression, they function as independent operating modes. A user might trust an agent to act autonomously for scheduling, but keep it in “suggestion mode” for financial transactions. </p> <p>We derived these levels by adapting industry standards for autonomous vehicles (<a href="https://www.sae.org/news/blog/sae-levels-driving-automation-clarity-refinements">SAE levels</a>) to digital user experience contexts.</p> <h3>Observe-and-Suggest</h3> <p>The agent functions as a monitor. It analyzes data streams and flags anomalies or opportunities, but takes zero action.</p> <p><strong>Differentiation</strong><br />Unlike the next level, the agent generates no complex plan. It points to a problem.</p> <p><strong>Example</strong><br />A DevOps agent notices a server CPU spike and alerts the on-call engineer. It does not know how or attempt to fix it, but it knows something is wrong.</p> <p><strong>Implications for design and oversight</strong><br />At this level, design and oversight should prioritize clear, non-intrusive notifications and a well-defined process for users to act on suggestions. The focus is on empowering the user with timely and relevant information without taking control. UX practitioners should focus on making suggestions clear and easy to understand, while product managers need to ensure the system provides value without overwhelming the user.</p> <h3>Plan-and-Propose</h3> <p>The agent identifies a goal and generates a multi-step strategy to achieve it. It presents the full plan for human review.</p> <p><strong>Differentiation</strong><br />The agent acts as a strategist. It does not execute; it waits for approval on the entire approach.</p> <p><strong>Example</strong><br />The same DevOps agent notices the CPU spike, analyzes the logs, and proposes a remediation plan: </p> <ol> <li>Spin up two extra instances.</li> <li>Restart the load balancer.</li> <li>Archive old logs.</li> </ol> <p>The human reviews the logic and clicks “Approve Plan”.</p> <p><strong>Implications for design and oversight</strong><br />For agents that plan and propose, design must ensure the proposed plans are easily understandable and that users have intuitive ways to modify or reject them. Oversight is crucial in monitoring the quality of proposals and the agent’s planning logic. UX practitioners should design clear visualizations of the proposed plans, and product managers must establish clear review and approval workflows.</p> <h3>Act-with-Confirmation</h3> <p>The agent completes all preparation work and places the final action in a staged state. It effectively holds the door open, waiting for a nod.</p> <p><strong>Differentiation</strong><br />This differs from “Plan-and-Propose” because the work is already done and staged. It reduces friction. The user confirms the outcome, not the strategy.</p> <p><strong>Example</strong><br />A recruiting agent drafts five interview invitations, finds open times on calendars, and creates the calendar events. It presents a “Send All” button. The user provides the final authorization to trigger the external action.</p> <p><strong>Implications for design and oversight</strong><br />When agents act with confirmation, the design should provide transparent and concise summaries of the intended action, clearly outlining potential consequences. Oversight needs to verify that the confirmation process is robust and that users are not being asked to blindly approve actions. UX practitioners should design confirmation prompts that are clear and provide all necessary information, and product managers should prioritize a robust audit trail for all confirmed actions.</p> <h3>Act-Autonomously</h3> <p>The agent executes tasks independently within defined boundaries.</p> <p><strong>Differentiation</strong><br />The user reviews the history of actions, not the actions themselves.</p> <p><strong>Example</strong><br />The recruiting agent sees a conflict, moves the interview to a backup slot, updates the candidate, and notifies the hiring manager. The human only sees a notification: Interview rescheduled to Tuesday.</p> <p><strong>Implications for design and oversight</strong><br />For autonomous agents, the design needs to establish clear pre-approved boundaries and provide robust monitoring tools. Oversight requires continuous evaluation of the agent’s performance within these boundaries, a critical need for robust logging, clear override mechanisms, and user-defined kill switches to maintain user control and trust. UX practitioners should focus on designing effective dashboards for monitoring autonomous agent behavior, and product managers must ensure clear governance and ethical guidelines are in place.</p> <p><img src="https://files.smashing.media/articles/beyond-generative-rise-agentic-ai-user-centric-design/1-agentic-autonomy-matrix.png" /></p> <p>Let’s look at a real-world application in HR technology to see these modes in action. Consider an “Interview Coordination Agent” designed to handle the logistics of hiring.</p> <ul> <li><strong>In Suggest Mode</strong><br />The agent notices an interviewer is double-booked. It highlights the conflict on the recruiter’s dashboard: <em>“Warning: Sarah is double-booked for the 2 PM interview.”</em></li> <li><strong>In Plan Mode</strong><br />The agent analyzes Sarah’s calendar and the candidate’s availability. It presents a solution: <em>“I recommend moving the interview to Thursday at 10 AM. This requires moving Sarah’s 1:1 with her manager.”</em> The recruiter reviews this logic.</li> <li><strong>In Confirmation Mode</strong><br />The agent drafts the emails to the candidate and the manager. It populates the calendar invites. The recruiter sees a summary: <em>“Ready to reschedule to Thursday. Send updates?”</em> The recruiter clicks <em>“Confirm.”</em></li> <li><strong>In Autonomous Mode</strong><br />The agent handles the conflict instantly. It respects a pre-set rule: <em>“Always prioritize candidate interviews over internal 1:1s.”</em> It moves the meeting and sends the notifications. The recruiter sees a log entry: <em>“Resolved schedule conflict for Candidate B.”</em></li> </ul> Research Primer: What To Research And How <p>Developing effective agentic AI demands a distinct research approach compared to traditional software or even generative AI. The autonomous nature of AI agents, their ability to make decisions, and their potential for proactive action necessitate specialized methodologies for understanding user expectations, mapping complex agent behaviors, and anticipating potential failures. The following research primer outlines key methods to measure and evaluate these unique aspects of agentic AI. </p> <h3>Mental-Model Interviews</h3> <p>These interviews uncover users’ preconceived notions about how an AI agent should behave. Instead of simply asking what users <em>want</em>, the focus is on understanding their internal models of the agent’s capabilities and limitations. We should avoid using the word “agent” with participants. It carries sci-fi baggage or is a term too easily confused with a human agent offering support or services. Instead, frame the discussion around “assistants” or “the system.”</p> <p>We need to uncover where users draw the line between helpful automation and intrusive control.</p> <ul> <li><strong>Method:</strong> Ask users to describe, draw, or narrate their expected interactions with the agent in various hypothetical scenarios.</li> <li><strong>Key Probes (reflecting a variety of industries):</strong><ul> <li>To understand the boundaries of desired automation and potential anxieties around over-automation, ask:<ul> <li>If your flight is canceled, what would you want the system to do automatically? What would worry you if it did that without your explicit instruction?</li> </ul> </li> <li>To explore the user’s understanding of the agent’s internal processes and necessary communication, ask:<ul> <li>Imagine a digital assistant is managing your smart home. If a package is delivered, what steps do you imagine it takes, and what information would you expect to receive? </li> </ul> </li> <li>To uncover expectations around control and consent within a multi-step process, ask:<ul> <li>If you ask your digital assistant to schedule a meeting, what steps do you envision it taking? At what points would you want to be consulted or given choices?</li> </ul> </li> </ul> </li> <li><strong>Benefits of the method:</strong> Reveals implicit assumptions, highlights areas where the agent’s planned behavior might diverge from user expectations, and informs the design of appropriate controls and feedback mechanisms.</li> </ul> <h3>Agent Journey Mapping:</h3> <p>Similar to traditional user journey mapping, agent journey mapping specifically focuses on the anticipated actions and decision points of the AI agent itself, alongside the user’s interaction. This helps to proactively identify potential pitfalls.</p> <ul> <li><strong>Method:</strong> Create a visual map that outlines the various stages of an agent’s operation, from initiation to completion, including all potential actions, decisions, and interactions with external systems or users.</li> <li><strong>Key Elements to Map:</strong><ul> <li><strong>Agent Actions:</strong> What specific tasks or decisions does the agent perform?</li> <li><strong>Information Inputs/Outputs:</strong> What data does the agent need, and what information does it generate or communicate?</li> <li><strong>Decision Points:</strong> Where does the agent make choices, and what are the criteria for those choices?</li> <li><strong>User Interaction Points:</strong> Where does the user provide input, review, or approve actions?</li> <li><strong>Points of Failure:</strong> Crucially, identify specific instances where the agent could misinterpret instructions, make an incorrect decision, or interact with the wrong entity.<ul> <li><strong>Examples:</strong> Incorrect recipient (e.g., sending sensitive information to the wrong person), overdraft (e.g., an automated payment exceeding available funds), misinterpretation of intent (e.g., booking a flight for the wrong date due to ambiguous language).</li> </ul> </li> <li><strong>Recovery Paths:</strong> How can the agent or user recover from these failures? What mechanisms are in place for correction or intervention?</li> </ul> </li> <li><strong>Benefits of the method:</strong> Provides a holistic view of the agent’s operational flow, uncovers hidden dependencies, and allows for the proactive design of safeguards, error handling, and user intervention points to prevent or mitigate negative outcomes.</li> </ul> <p><img src="https://files.smashing.media/articles/beyond-generative-rise-agentic-ai-user-centric-design/2-agent-journey-map.jpg" /></p> <h3>Simulated Misbehavior Testing:</h3> <p>This approach is designed to stress-test the system and observe user reactions when the AI agent <em>fails</em> or deviates from expectations. It’s about understanding trust repair and emotional responses in adverse situations.</p> <ul> <li><strong>Method:</strong> In controlled lab studies, deliberately introduce scenarios where the agent makes a mistake, misinterprets a command, or behaves unexpectedly.</li> <li><strong>Types of “Misbehavior” to Simulate:</strong><ul> <li><strong>Command Misinterpretation:</strong> The agent performs an action slightly different from what the user intended (e.g., ordering two items instead of one).</li> <li><strong>Information Overload/Underload:</strong> The agent provides too much irrelevant information or not enough critical details.</li> <li><strong>Unsolicited Action:</strong> The agent takes an action the user explicitly did not want or expect (e.g., buying stock without approval).</li> <li><strong>System Failure:</strong> The agent crashes, becomes unresponsive, or provides an error message.</li> <li><strong>Ethical Dilemmas:</strong> The agent makes a decision with ethical implications (e.g., prioritizing one task over another based on an unforeseen metric).</li> </ul> </li> <li><strong>Observation Focus:</strong><ul> <li><strong>User Reactions:</strong> How do users react emotionally (frustration, anger, confusion, loss of trust)?</li> <li><strong>Recovery Attempts:</strong> What steps do users take to correct the agent’s behavior or undo its actions?</li> <li><strong>Trust Repair Mechanisms:</strong> Do the system’s built-in recovery or feedback mechanisms help restore trust? How do users want to be informed about errors?</li> <li><strong>Mental Model Shift:</strong> Does the misbehavior alter the user’s understanding of the agent’s capabilities or limitations?</li> </ul> </li> <li><strong>Benefits of the method:</strong> Crucial for identifying design gaps related to error recovery, feedback, and user control. It provides insights into how resilient users are to agent failures and what is needed to maintain or rebuild trust, leading to more robust and forgiving agentic systems.</li> </ul> <p>By integrating these research methodologies, UX practitioners can move beyond simply making agentic systems <em>usable</em> to making them <em>trusted</em>, <em>controllable</em>, and <em>accountable</em>, fostering a positive and productive relationship between users and their AI agents. Note that these aren’t the only methods relevant to exploring agentic AI effectively. Many other methods exist, but these are most accessible to practitioners in the near term. I’ve previously covered the Wizard of Oz method, a slightly more advanced method of concept testing, which is also a valuable tool for exploring agentic AI concepts.</p> Ethical Considerations In Research Methodology <p>When researching agentic AI, particularly when simulating misbehavior or errors, ethical considerations are key to take into account. There are many publications focusing on ethical UX research, including an <a href="https://www.smashingmagazine.com/2020/12/ethical-considerations-ux-research/">article I wrote for Smashing Magazine</a>, <a href="https://www.uxdesigninstitute.com/blog/what-are-user-research-ethics/">these guidelines</a> from the UX Design Institute, and this page from the <a href="https://www.inclusivedesigntoolkit.com/ethics/">Inclusive Design Toolkit</a>.</p> Key Metrics For Agentic AI <p>You’ll need a comprehensive set of key metrics to effectively assess the performance and reliability of agentic AI systems. These metrics provide insights into user trust, system accuracy, and the overall user experience. By tracking these indicators, developers and designers can identify areas for improvement and ensure that AI agents operate safely and efficiently.</p> <p><strong>1. Intervention Rate</strong><br />For autonomous agents, we measure success by silence. If an agent executes a task and the user does not intervene or reverse the action within a set window (e.g., 24 hours), we count that as acceptance. We track the Intervention Rate: how often does a human jump in to stop or correct the agent? A high intervention rate signals a misalignment in trust or logic.</p> <p><strong>2. Frequency of Unintended Actions per 1,000 Tasks</strong><br />This critical metric quantifies the number of actions performed by the AI agent that were not desired or expected by the user, normalized per 1,000 completed tasks. A low frequency of unintended actions signifies a well-aligned AI that accurately interprets user intent and operates within defined boundaries. This metric is closely tied to the AI’s understanding of context, its ability to disambiguate commands, and the robustness of its safety protocols.</p> <p><strong>3. Rollback or Undo Rates</strong><br />This metric tracks how often users need to reverse or undo an action performed by the AI. High rollback rates suggest that the AI is making frequent errors, misinterpreting instructions, or acting in ways that are not aligned with user expectations. Analyzing the reasons behind these rollbacks can provide valuable feedback for improving the AI’s algorithms, understanding of user preferences, and its ability to predict desirable outcomes. </p> <p>To understand why, you must implement a microsurvey on the undo action. For example, when a user reverses a scheduling change, a simple prompt can ask: <em>“Wrong time? Wrong person? Or did you just want to do it yourself?”</em> Allowing the user to click on the option that best corresponds to their reasoning. </p> <p><strong>4. Time to Resolution After an Error</strong><br />This metric measures the duration it takes for a user to correct an error made by the AI or for the AI system itself to recover from an erroneous state. A short time to resolution indicates an efficient and user-friendly error recovery process, which can mitigate user frustration and maintain productivity. This includes the ease of identifying the error, the accessibility of undo or correction mechanisms, and the clarity of error messages provided by the AI.</p> <p><img src="https://files.smashing.media/articles/beyond-generative-rise-agentic-ai-user-centric-design/3-trust-accountability-dashboard.jpg" /></p> <p>Collecting these metrics requires instrumenting your system to track Agent Action IDs. Every distinct action the agent takes, such as proposing a schedule or booking a flight, must generate a unique ID that persists in the logs. To measure the Intervention Rate, we do not look for an immediate user reaction. We look for the absence of a counter-action within a defined window. If an Action ID is generated at 9:00 AM and no human user modifies or reverts that specific ID by 9:00 AM the next day, the system logically tags it as Accepted. This allows us to quantify success based on user silence rather than active confirmation.</p> <p>For Rollback Rates, raw counts are insufficient because they lack context. To capture the underlying reason, you must implement intercept logic on your application’s Undo or Revert functions. When a user reverses an agent-initiated action, trigger a lightweight microsurvey. This can be a simple three-option modal asking the user to categorize the error as factually incorrect, lacking context, or a simple preference to handle the task manually. This combines quantitative telemetry with qualitative insight. It enables engineering teams to distinguish between a broken algorithm and a user preference mismatch.</p> <p>These metrics, when tracked consistently and analyzed holistically, provide a robust framework for evaluating the performance of agentic AI systems, allowing for continuous improvement in control, consent, and accountability.</p> Designing Against Deception <p>As agents become increasingly capable, we face a new risk: <strong>Agentic Sludge</strong>. Traditional sludge creates friction that makes it hard to cancel a subscription or delete an account. Agentic sludge acts in reverse. It removes friction to a fault, making it too easy for a user to agree to an action that benefits the business rather than their own interests.</p> <p>Consider an agent assisting with travel booking. Without clear guardrails, the system might prioritize a partner airline or a higher-margin hotel. It presents this choice as the optimal path. The user, trusting the system’s authority, accepts the recommendation without scrutiny. This creates a deceptive pattern where the system optimizes for revenue under the guise of convenience.</p> <h3>The Risk Of Falsely Imagined Competence</h3> <p>Deception may not stem from malicious intent. It often manifests in AI as <strong>Imagined Competence</strong>. Large Language Models frequently sound authoritative even when incorrect. They present a false booking confirmation or an inaccurate summary with the same confidence as a verified fact. Users may naturally trust this confident tone. This mismatch creates a dangerous gap between system capability and user expectations.</p> <p>We must design specifically to bridge this gap. If an agent fails to complete a task, the interface must signal that failure clearly. If the system is unsure, it must express uncertainty rather than masking it with polished prose.</p> <h3>Transparency via Primitives</h3> <p>The antidote to both sludge and hallucination is <strong>provenance</strong>. Every autonomous action requires a specific metadata tag explaining the origin of the decision. Users need the ability to inspect the logic chain behind the result.</p> <p>To achieve this, we must <strong>translate primitives into practical answers</strong>. In software engineering, primitives refer to the core units of information or actions an agent performs. To the engineer, this looks like an API call or a logic gate. To the user, it must appear as a <strong>clear explanation</strong>.</p> <p>The design challenge lies in mapping these technical steps to human-readable rationales. If an agent recommends a specific flight, the user needs to know why. The interface cannot hide behind a generic suggestion. It must expose the underlying primitive: <em>Logic: Cheapest_Direct_Flight</em> or <em>Logic: Partner_Airline_Priority</em>.</p> <p>Figure 4 illustrates this translation flow. We take the raw system primitive — the actual code logic — and map it to a user-facing string. For instance, a primitive checking a calendar schedule a meeting becomes a clear statement: I’ve proposed a 4 PM meeting.</p> <p>This level of transparency ensures the agent’s actions appear logical and beneficial. It allows the user to verify that the agent acted in their best interest. By exposing the primitives, we transform a black box into a glass box, ensuring users remain the final authority on their own digital lives.</p> <p><img src="https://files.smashing.media/articles/beyond-generative-rise-agentic-ai-user-centric-design/4-translation-flow.jpg" /></p> Setting The Stage For Design <p>Building an agentic system requires a new level of psychological and behavioral understanding. It forces us to move beyond conventional usability testing and into the realm of <strong>trust</strong>, <strong>consent</strong>, and <strong>accountability</strong>. The research methods we’ve discussed, from probing mental models to simulating misbehavior and establishing new metrics, provide a necessary foundation. These practices are the essential tools for proactively identifying where an autonomous system might fail and, more importantly, how to repair the user-agent relationship when it does.</p> <p>The shift to agentic AI is a <strong>redefinition of the user-system relationship</strong>. We are no longer designing for tools that simply respond to commands; we are designing for partners that act on our behalf. This changes the design imperative from efficiency and ease of use to <strong>transparency</strong>, <strong>predictability</strong>, and <strong>control</strong>.</p> <p>When an AI can book a flight or trade a stock without a final click, the design of its “on-ramps” and “off-ramps” becomes paramount. It is our responsibility to ensure that users feel they are in the driver’s seat, even when they’ve handed over the wheel.</p> <p>This new reality also elevates the role of the UX researcher. We become the custodians of user trust, working collaboratively with engineers and product managers to define and test the guardrails of an agent’s autonomy. Beyond being researchers, we become advocates for user control, transparency, and the ethical safeguards within the development process. By translating primitives into practical questions and simulating worst-case scenarios, we can build robust systems that are both powerful and safe.</p> <p>This article has outlined the “what” and “why” of researching agentic AI. It has shown that our traditional toolkits are insufficient and that we must adopt new, forward-looking methodologies. The next article will build upon this foundation, providing the specific design patterns and organizational practices that make an agent’s utility transparent to users, ensuring they can harness the power of agentic AI with confidence and control. The future of UX is about making systems trustworthy.</p> <p>For additional understanding of agentic AI, you can explore the following resources:</p> <ul> <li><a href="https://www.google.com/search?q=https://ai.googleblog.com/blog/topic/agentic-ai/">Google AI Blog on Agentic AI</a> </li> <li><a href="https://www.microsoft.com/en-us/research/project/agent-ai/">Microsoft’s research on AI Agents</a></li> </ul> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/01/beyond-generative-rise-agentic-ai-user-centric-design/</span> hello@smashingmagazine.com (Victor Yocco) <![CDATA[Rethinking “Pixel Perfect” Web Design]]> https://smashingmagazine.com/2026/01/rethinking-pixel-perfect-web-design/ https://smashingmagazine.com/2026/01/rethinking-pixel-perfect-web-design/ Tue, 20 Jan 2026 10:00:00 GMT Amit Sheen takes a hard look at the “Pixel Perfect” legacy concept, explaining why it’s failing us and redefining what “perfection” actually looks like in a multi-device, fluid world. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/01/rethinking-pixel-perfect-web-design/</span> <p>It’s 2026. We are operating in an era of incredible technological leaps, where advanced tooling and AI-enhanced workflows have fundamentally transformed how we design, build, and bridge the gap between the two. The web is moving faster than ever, with groundbreaking features and standards emerging almost daily.</p> <p>Yet, in the middle of this high-speed evolution, there’s one thing we’ve been carrying with us since the early days of print, a phrase that feels increasingly out of sync with our modern reality: “Pixel Perfect.”</p> <p><img src="https://files.smashing.media/articles/rethinking-pixel-perfect-web-design/1-pixel-perfect-design.png" /></p> <p>I’ll be honest, I’m not a fan. In fact, I believe the idea that we can have pixel-perfection in our designs has become <strong>misleading</strong>, <strong>vague</strong>, and ultimately <strong>counterproductive</strong> to the way we build for the modern web. As a community of developers and designers, it’s time we take a hard look at this legacy concept, understand why it’s failing us, and redefine what “perfection” actually looks like in a multi-device, fluid world.</p> A Brief History Of A Rigid Mindset <p>To understand why many of us still aim for pixel perfection today, we have to look back at where it all began. It didn’t start on the web, but as a stowaway from the era when layout software first allowed us to design for print on a personal computer, and GUI design from the late 1980s and ’90s.</p> <p>In the print industry, perfection was absolute. Once a design was sent to the press, every dot of ink had a fixed, unchangeable position on a physical page. When designers transitioned to the early web, they brought this <strong>“printed page” mentality</strong> with them. The goal was simple: The website must be an exact, pixel-for-pixel replica of the static mockup created in design applications like Photoshop and QuarkXPress.</p> <p><img src="https://files.smashing.media/articles/rethinking-pixel-perfect-web-design/2-printed-page-mentality.jpg" /></p> <p>I’m old enough to remember working with talented designers who had spent their entire careers in the print world. They would hand over web designs and, with total sincerity, insist on discussing the layout in centimeters and inches. To them, the screen was just another piece of paper, albeit one that glowed.</p> <p>In those days, we “tamed” the web to achieve this. <a href="https://alistapart.com/article/journey/">We used table-based layouts</a>, nested three levels deep, and stretched <a href="https://css-tricks.com/snippets/html/base64-encode-of-1x1px-transparent-gif/">1×1 pixel “spacer GIFs”</a> to create precise gaps. We designed for a single, “standard” resolution (usually 800×600) because, back then, we could actually pretend we knew exactly what the user was seeing.</p> <div> <pre><code><!-- A typical "Pixel Perfect" layout from 1998 --> <table width="800" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="150" valign="top" bgcolor="#CCCCCC"> <img src="spacer.gif" width="150" height="1"> <!-- Sidebar --> </td> <td width="10"><img src="spacer.gif" width="10" height="1"></td> <td width="640" valign="top"> <!-- Content goes here --> </td> </tr> </table> </code></pre> </div> Cracks In The Foundation <p>The first major challenge to the fixed-table mindset came as early as 2000. In his seminal article, “<a href="https://alistapart.com/article/dao/">A Dao of Web Design</a>”, John Allsopp argued that by trying to force the web into the constraints of print, we were missing the point of the medium entirely. He called the quest for pixel-perfection a “ritual” that ignored the web’s inherent fluidity.</p> <blockquote>When a new medium borrows from an existing one, some of what it borrows makes sense, but much of the borrowing is thoughtless, “ritual,” and often constrains the new medium. Over time, the new medium develops its own conventions, throwing off existing conventions that don’t make sense.</blockquote> <p>Nonetheless, the “pixel-perfection” refused to die. While its meaning has shifted and morphed over the decades, it has rarely been well-defined. Many have tried, such as in 2010 when the design agency <strong>ustwo</strong> released the <a href="https://downloads.ctfassets.net/ve81k805bx04/2bMTFo4agkUgmsSgeu8uik/462da69baf7fc97876b2cd87bc4b857f/PP3.pdf">Pixel Perfect Precision (PPP)</a> (PDF) handbook. But that same year, <a href="https://alistapart.com/article/responsive-web-design/">Responsive Web Design</a> also gained massive momentum, effectively killing the idea that a website could look identical on every screen.</p> <p>Yet, here we are, still using a term born from the limitations of monitors dated to the ’90s to describe the complex interfaces of 2026.</p> <p><img src="https://files.smashing.media/articles/rethinking-pixel-perfect-web-design/3-pixel-perfectt-web-design.png" /></p> <blockquote><strong>Note:</strong> Before we continue, it’s important to acknowledge the exceptions. There are, of course, scenarios where pixel precision is non-negotiable. Icon grids, sprite sheets, canvas rendering, game engines, or bitmap exports often require exact, pixel-level control to function correctly. These, however, are specialized technical requirements, not a general rule for modern UI development.</blockquote> Why “Pixel Perfect” Is Failing the Modern Web <p>In our current landscape, clinging to the idea of “pixel perfection” isn’t just anachronistic, it’s actively harmful to the products we build. Here is why.</p> <h3>It Is Fundamentally Vague</h3> <p>Let’s start with a simple question: When a designer asks for a “pixel-perfect” implementation, what are they actually asking for? Is it the colors, the spacing, the typography, the borders, the alignment, the shadows, the interactions? Take a moment to think about it.</p> <p>If your answer is “everything”, then you’ve just identified the core issue.</p> <p>The term “pixel-perfect” is so all-encompassing that it lacks any real technical specificity. It’s a blanket statement that masks a lack of clear requirements. When we say “make it pixel perfect,” we aren’t giving a directive; we’re expressing a feeling.</p> <h3>The Multi-Surface Reality</h3> <p>The concept of a “standard screen size” is now a relic of the past. We are building for an almost infinite variety of <a href="https://viewports.fyi/">viewports</a>, resolutions, and aspect-ratios, and this reality is not likely to change any time soon. Plus, the web is no longer confined to a flat, rectangular piece of glass; it can be on a foldable phone that changes aspect ratios mid-session, or on a spatial interface projected into a room.</p> <p>Every Internet-connected device <a href="https://css-tricks.com/snippets/css/media-queries-for-standard-devices/">has its own pixel density, scaling factors, and rendering quirks</a>.</p> <p>A design that is “perfect” on one set of pixels is, by definition, imperfect on another. Striving for a single, static “perfection” ignores the fluid, adaptive nature of the modern web. When the canvas is constantly shifting, the very idea of a fixed pixel implementation becomes a technical impossibility.</p> <p><img src="https://files.smashing.media/articles/rethinking-pixel-perfect-web-design/6-tweet.png" /></p> <h3>The Dynamic Nature Of Content</h3> <p>A static mockup is a snapshot of a single state with a specific set of data. But content is rarely static like that in the real world. <a href="https://www.smashingmagazine.com/2014/12/how-to-conduct-website-localization/">Localization is a prime example</a>: a label that fits perfectly inside a button component in English might overflow the container in German or require a different font entirely for CJK languages.</p> <p>Beyond text length, localization means changes with currency symbols, date formatting, and numeric systems. Any of these variables can significantly impact a page layout. If a design is built to be “pixel-perfect” based on a specific string of text, it is inherently fragile. A pixel-perfect layout completely collapses the moment content changes.</p> <p><img src="https://files.smashing.media/articles/rethinking-pixel-perfect-web-design/4-pricing-card.png" /></p> Accessibility Is The Real Perfection <p>True perfection means a site that works for everyone. If a layout is so rigid that it breaks when a user increases their font size or forces a high-contrast mode, it isn’t perfect — it’s broken. “Pixel perfect” often prioritizes visual aesthetics over functional accessibility, creating barriers for users who don’t fit the “standard” profile.</p> Think Systems, Not Pages <p>We no longer build pages; we build design systems. We create components that must work in isolation and a variety of contexts, whether in headers, in sidebars, or in dynamic grids. Trying to match a component to a specific pixel coordinate in a static mockup is a fool’s errand.</p> <p>A pure “pixel-perfect” approach treats every instance as a unique snowflake, which is the antithesis of a scalable, <a href="https://www.smashingmagazine.com/2023/01/key-good-component-design-selfishness/">component-based architecture</a>. It forces developers to choose between following a static image and maintaining the integrity of the system.</p> Perfection Is Technical Debt <p>When we prioritize exact visual matching over sound engineering, we aren’t just making a design choice; we are incurring technical debt. Chasing that last pixel often forces developers to bypass the browser’s natural layout engine.</p> <p>Working in exact units leads to <a href="https://css-tricks.com/magic-numbers-in-css/">“magic numbers”</a>, those arbitrary <code>margin-top: 3px</code> or <code>left: -1px</code> hacks, sprinkled throughout the codebase to force an element into a specific position on a specific screen. This creates a fragile, brittle architecture, leading to a never-ending cycle of “visual bug” tickets.</p> <pre><code>/* The "Pixel Perfect" Hack */ .card-title { margin-top: 13px; /* Matches the mockup exactly on 1440px */ margin-left: -2px; /* Optical adjustment for a specific font */ } /* The "Design Intent" Solution */ .card-title { margin-top: var(--space-m); /* Part of a consistent scale */ align-self: start; /* Logical alignment */ } </code></pre> <p>By insisting on pixel-perfection, we are building a foundation that is difficult to automate, difficult to refactor, and ultimately, more expensive to maintain. We have much more flexible ways to calculate sizing in CSS, thanks to <a href="https://css-tricks.com/css-length-units/#relative-units">relative units</a>.</p> Moving From Pixels To Intent <p>So far, I’ve spent a lot of time talking about what we <em>shouldn’t</em> do. But let’s be clear: Moving away from “pixel perfection” isn’t an excuse for sloppy implementation or a “close enough” attitude. We still need consistency, we still want our products to look and feel high-quality, and we still need a shared methodology for achieving that.</p> <p>So, if “pixel perfection” is no longer a viable goal, what <em>should</em> we be striving for?</p> <p>The answer, I believe, lies in shifting our focus from individual pixels to <strong>design intent</strong>. In a fluid world, perfection isn’t about matching a static image, but ensuring that the core logic and visual integrity of the design are preserved across every possible context.</p> <h3>Design Intent Over Static Values</h3> <p>Instead of asking for a <code>margin: 24px</code> in a design, we should be asking: <em>Why is this margin here?</em> Is it to create a visual separation between sections? Is it part of a consistent spacing scale? When we understand the intent, we can implement it using fluid units and functions (like <code>rem</code> and <code>clamp()</code>, respectively) and use advanced tools, like <a href="https://www.smashingmagazine.com/2021/05/complete-guide-css-container-queries/">CSS Container Queries</a>, that allow the design to breathe and adapt while still feeling “right”.</p> <div> <pre><code>/* Intent: A heading that scales smoothly with the viewport */ h1 { font-size: clamp(2rem, 5vw + 1rem, 4rem); } /* Intent: Change layout based on the component's own width, not the screen */ .card-container { container-type: inline-size; } @container (min-width: 400px) { .card { display: grid; grid-template-columns: 1fr 2fr; } } </code></pre> </div> <h3>Speaking In Tokens</h3> <p><a href="https://css-tricks.com/what-are-design-tokens/">Design tokens</a> are the bridge between design and code. When a designer and developer agree on a token like <code>--spacing-large</code> instead of <code>32px</code>, they aren’t just syncing values, but instead syncing logic. This ensures that even if the underlying value changes to accommodate a specific condition, the relationship between elements remains perfect.</p> <pre><code>:root { /* The logic is defined once */ --color-primary: #007bff; --spacing-unit: 8px; --spacing-large: calc(var(--spacing-unit) * 4); } /* And reused everwhere */ .button { background-color: var(--color-primary); padding: var(--spacing-large); } </code></pre> <h3>Fluidity As A Feature, Not A Bug</h3> <p>We need to stop viewing the web’s flexibility as something to be tamed and start seeing that flexibility as its greatest strength. A “perfect” implementation is one that looks intentional at 320px, 1280px, and even in a 3D spatial environment. This means embracing intrinsic web design based on an element’s natural size in any context — and using modern CSS tools to create layouts that “know” how to arrange themselves based on the available space.</p> Death To The “Handover” <p>In this intent-driven world, the “handover” of traditional design assets has become another relic of the past. We no longer pass static Photoshop files across a digital wall and hope for the best. Instead, we work within <a href="https://www.smashingmagazine.com/2022/04/artifacts-design-systems/"><strong>living design systems</strong></a>.</p> <p>Modern tooling allows designers to specify behaviors, not just positions. When a designer defines a component, they aren’t just drawing a box; they’re defining its constraints, its fluid scales, and its relationship to the content. As developers, our job is to implement that logic.</p> <p>The conversation has shifted from <em>“Why is this</em> <em>three</em> <em>pixels off?”</em> to <em>“How should this component behave when the container shrinks?”</em> and <em>“What happens to the hierarchy when the text is translated to a longer language?”</em></p> Better Language, Better Outcomes <p>Speaking of conversations, when we aim for “pixel perfection”, we set ourselves up for friction. Mature teams have long moved past this binary “match-or-fail” mindset towards a more descriptive vocabulary that reflects the complexity of our work.</p> <p>By replacing “pixel perfect” with more precise terms, we create shared expectations and eliminate pointless arguments. Here are a few phrases that have served me well for productive discussions around intent and fluidity:</p> <ul> <li><strong>“Visually consistent with the design system.”</strong><br />Instead of matching a specific mockup, we ensure the implementation follows the established rules of our system.</li> <li><strong>“Matches spacing and hierarchy.”</strong><br />We focus on the relationships and rhythm between elements rather than their absolute coordinates.</li> <li><strong>“Preserves proportions and alignment logic.”</strong><br />We ensure that the <em>intent</em> of the layout remains intact, even as it scales and shifts.</li> <li><strong>“Acceptable variance across platforms.”</strong><br />We acknowledge that a site will look different, within a defined and agreed-upon range of variation, and that’s okay as long as the experience remains high-quality.</li> </ul> <p>Language creates reality. Clear language doesn’t just improve the code, but the relationship between designers and developers. It moves us toward a shared ownership of the final, living product. When we speak the same language, “perfection” stops being a demand and starts being a collaborative achievement.</p> A Note To My Design Colleagues <p>When you hand over a design, don’t give us a fixed width, but a set of rules. Tell us what should stretch, what should stay fixed, and what should happen when the content inevitably overflows. Your “perfection” lies in the logic you define, not the pixels you draw.</p> <p><img src="https://files.smashing.media/articles/rethinking-pixel-perfect-web-design/5-rethinking-pixel-perfect-web-design.png" /></p> The New Standard Of Excellence <p>The web was never meant to be a static gallery of frozen pixels. It was born to be a messy, fluid, and gloriously unpredictable medium. When we cling to an outdated model of “pixel perfection”, we are effectively trying to put a leash on a hurricane. It’s unnatural in today’s front-end landscape.</p> <p>In 2026, we have the tools to build interfaces that think, adapt, and breathe. We have AI that can generate layouts in seconds and spatial interfaces that defy the very concept of a “screen”. In this world, perfection isn’t a fixed coordinate but a promise; <strong>it’s the promise that no matter who is looking, or what they are looking through, the <em>soul</em> of the design remains intact</strong>.</p> <p>So, let’s bury the term once and for all. Let’s leave the centimeters to the architects and the spacer GIFs to the digital museums. If you want something to look exactly the same for the next hundred years, carve it in stone or print it on a high-quality cardstock. But if you want to build for the web, embrace the chaos.</p> <p>Stop counting pixels. Start building <em>intent</em>.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/01/rethinking-pixel-perfect-web-design/</span> hello@smashingmagazine.com (Amit Sheen) <![CDATA[Smashing Animations Part 8: Theming Animations Using CSS Relative Colour]]> https://smashingmagazine.com/2026/01/smashing-animations-part-8-css-relative-colour/ https://smashingmagazine.com/2026/01/smashing-animations-part-8-css-relative-colour/ Wed, 14 Jan 2026 10:00:00 GMT CSS relative colour values are now widely supported. In this article, pioneering author and web designer [Andy Clarke](https://stuffandnonsense.co.uk/) shares practical techniques for using them to theme and animate SVG graphics. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/01/smashing-animations-part-8-css-relative-colour/</span> <p>I’ve recently refreshed the animated graphics on <a href="https://stuffandnonsense.co.uk/">my website</a> with a new theme and a group of pioneering characters, putting into practice plenty of the techniques I shared in <a href="https://www.smashingmagazine.com/author/andy-clarke/">this series</a>. A few of my animations change appearance when someone interacts with them or at different times of day.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/1-andy-website-animated-graphics.png" /></p> <p>The colours in the graphic atop <a href="https://stuffandnonsense.co.uk/blog">my blog pages</a> change from morning until night every day. Then, there’s the <a href="https://stuffandnonsense.co.uk/blog/let-it-snow">snow mode</a>, which adds chilly colours and a wintery theme, courtesy of an overlay layer and a blending mode.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/2-snow-mode.png" /></p> <p>While working on this, I started to wonder whether CSS relative colour values could give me more control while also simplifying the process.</p> <p><strong>Note</strong>: <em>In this tutorial, I’ll focus on relative colour values and the OKLCH colour space for theming graphics and animations. If you want to dive deep into relative colour, Ahmad Shadeed created a superb <a href="https://ishadeed.com/article/css-relative-colors/">interactive guide</a>. As for colour spaces, gamuts, and OKLCH, our own Geoff Graham <a href="https://www.smashingmagazine.com/2023/08/oklch-color-spaces-gamuts-css/">wrote</a> about them.</em></p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/3-yogi-bear-show.png" /></p> <p>Repeated use of elements was key. Backgrounds were reused whenever possible, with zooms and overlays helping construct new scenes from the same artwork. It was born of necessity, but it also encouraged thinking in terms of series rather than individual scenes.</p> The problem With Manually Updating Colour Palettes <p>Let’s get straight to my challenge. In Toon Titles like this one — based on the 1959 Yogi Bear Show episode “Lullabye-Bye Bear” — and my work generally, palettes are limited to a select few colours.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/4-yogi-bear.png" /></p> <p>I create shades and tints from what I call my “foundation” colour to expand the palette without adding more hues.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/5-colour-palette.png" /></p> <p>In <a href="https://www.sketch.com">Sketch</a>, I work in the <a href="https://www.smashingmagazine.com/2021/07/hsl-colors-css/">HSL colour space</a>, so this process involves increasing or decreasing the lightness value of my foundation colour. Honestly, it’s not an arduous task — but choosing a different foundation colour requires creating a whole new set of shades and tints. Doing that manually, again and again, quickly becomes laborious.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/6-foundation-colour.png" /></p> <p>I mentioned the HSL — <strong>H</strong> (hue), S (saturation), and <strong>L</strong> (lightness) — colour space, but that’s just one of several ways to describe colour.</p> <p>RGB — <strong>R</strong> (red), <strong>G</strong> (green), <strong>B</strong> (blue) — is probably the most familiar, at least in its Hex form.</p> <p>There’s also LAB — <strong>L</strong> (lightness), <strong>A</strong> (green–red), <strong>B</strong> (blue–yellow) — and the newer, but now widely supported LCH — <strong>L</strong> (lightness), <strong>C</strong> (chroma), <strong>H</strong> (hue) — model in its OKLCH form. With LCH — specifically OKLCH in CSS — I can adjust the lightness value of my foundation colour.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/7-lightness-change-foundation-colour.png" /></p> <p>Or I can alter its <em>chroma</em>. LCH chroma and HSL saturation both describe the intensity or richness of a colour, but they do so in different ways. LCH gives me a wider range and more predictable blending between colours.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/8-chroma-changes-foundation-colour.png" /></p> <p>I can also alter the hue to create a palette of colours that share the same lightness and chroma values. In both HSL and LCH, the hue spectrum starts at red, moves through green and blue, and returns to red.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/9-hue-changes-foundation-colour.png" /></p> Why OKLCH Changed How I Think About Colour <p>Browser support for the OKLCH colour space <a href="https://caniuse.com/wf-oklab">is now widespread</a>, even if design tools — including Sketch — haven’t caught up. Fortunately, that shouldn’t stop you from using OKLCH. Browsers will happily convert Hex, HSL, LAB, and RGB values into OKLCH for you. You can define a CSS custom property with a foundation colour in any space, including Hex:</p> <pre><code>/* Foundation colour */ --foundation: #5accd6; </code></pre> <p>Any colours derived from it will be converted into OKLCH automatically:</p> <pre><code>--foundation-light: oklch(from var(--foundation) [...]; } --foundation-mid: oklch(from var(--foundation) [...]; } --foundation-dark: oklch(from var(--foundation) [...]; } </code></pre> Relative Colour As A Design System <p>Think of relative colour as saying: <em>“Take this colour, tweak it, then give me the result.”</em> There are two ways to adjust a colour: absolute changes and proportional changes. They look similar in code, but behave very differently once you start swapping foundation colours. Understanding that difference is what can turn using relative colour into a system.</p> <pre><code>/* Foundation colour */ --foundation: #5accd6; </code></pre> <p>For example, the lightness value of my foundation colour is <code>0.7837</code>, while a darker version has a value of <code>0.5837</code>. To calculate the difference, I subtract the lower value from the higher one and apply the result using a <code>calc()</code> function:</p> <pre><code>--foundation-dark: oklch(from var(--foundation) calc(l - 0.20) c h); </code></pre> <p>To achieve a lighter colour, I add the difference instead:</p> <pre><code>--foundation-light: oklch(from var(--foundation) calc(l + 0.10) c h); </code></pre> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/10-calculating-colour-difference.png" /></p> <p>Chroma adjustments follow the same process. To reduce the intensity of my foundation colour from <code>0.1035</code> to <code>0.0035</code>, I subtract one value from the other:</p> <pre><code>oklch(from var(--foundation) l calc(c - 0.10) h); </code></pre> <p>To create a palette of hues, I calculate the difference between the hue value of my foundation colour (<code>200</code>) and my new hue (<code>260</code>):</p> <pre><code>oklch(from var(--foundation) l c calc(h + 60)); </code></pre> <p>Those calculations are absolute. When I subtract a fixed amount, I’m effectively saying, <em>“Always subtract this much.”</em> The same applies when adding fixed values:</p> <pre><code>calc(c - 0.10) calc(c + 0.10) </code></pre> <p>I learned the limits of this approach the hard way. When I relied on subtracting fixed chroma values, colours collapsed towards grey as soon as I changed the foundation. A palette that worked for one colour fell apart for another.</p> <p>Multiplication behaves differently. When I multiply chroma, I’m telling the browser: <em>“Reduce this colour’s intensity by a proportion.”</em> The relationship between colours remains intact, even when the foundation changes:</p> <pre><code>calc(c * 0.10) </code></pre> My Move It, Scale It, Rotate It Rules <ul> <li><strong>Move</strong> lightness (add or subtract),</li> <li><strong>Scale</strong> chroma (multiply),</li> <li><strong>Rotate</strong> hue (add or subtract degrees).</li> </ul> <p>I scale chroma because I want intensity changes to stay proportional to the base colour. Hue relationships are rotational, so multiplying hue makes no sense. Lightness is perceptual and absolute — multiplying it often produces odd results.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/11-move-scale-rotate.png" /></p> From One Colour To An Entire Theme <p>Relative colour allows me to define a foundation colour and generate every other colour I need — fills, strokes, gradient stops, shadows — from it. At that point, colour stops being a palette and starts being a system.</p> <blockquote>SVG illustrations tend to reuse the same few colours across fills, strokes, and gradients. Relative colour lets you define those relationships once and reuse them everywhere — much like animators reused backgrounds to create new scenes.</blockquote> <p>Change the foundation colour once, and every derived colour updates automatically, without recalculating anything by hand. Outside of animated graphics, I could use this same approach to define colours for the states of interactive elements such as buttons and links.</p> <p>The foundation colour I used in my “Lullabye-Bye Bear” Toon Title is a cyan-looking blue. The background is a radial gradient between my foundation and a darker version.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/12-toon-titles-website.png" /></p> <p>To create alternative versions with entirely different moods, I only need to change the foundation colour:</p> <pre><code>--foundation: #5accd6; --grad-end: var(--foundation); --grad-start: oklch(from var(--foundation) calc(l - 0.2357) calc(c * 0.833) h); </code></pre> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/13-toon-titles-website.png" /></p> <p>To bind those custom properties to my SVG gradient without duplicating colour values, I replaced hard-coded <code>stop-color</code> values with inline styles:</p> <div> <pre><code><defs> <radialGradient id="bg-grad" […]> <stop offset="0%" style="stop-color: var(--grad-end);" /> <stop offset="100%" style="stop-color: var(--grad-start);" /> </radialGradient> </defs> </code></pre> </div> <pre><code><path fill="url(#bg-grad)" fill="#5DCDD8" d="[...]"/> </code></pre> <p>Next, I needed to ensure that my <a href="https://stuffandnonsense.co.uk/toon-text/index.html">Toon Text</a> always contrasts with whatever foundation colour I choose. A <code>180deg</code> hue rotation produces a complementary colour that certainly pops — but can vibrate uncomfortably:</p> <pre><code>.text-light { fill: oklch(from var(--foundation) l c calc(h + 180)); } </code></pre> <p>A <code>90°</code> shift produces a vivid secondary colour without being fully complementary:</p> <pre><code>.text-light { fill: oklch(from var(--foundation) l c calc(h - 90)); } </code></pre> <p>My recreation of Quick Draw McGraw’s 1959 Toon Title “El Kabong“ uses the same techniques but with a more varied palette. For example, there’s another radial gradient between the foundation colour and a darker shade.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/14-quick-draw-mcgraw.png" /></p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/15-quick-draw-mcgraw-toon-titles.png" /></p> <p>The building and tree in the background are simply different shades of the same foundation colour. For those paths, I needed two additional <code>fill</code> colours:</p> <pre><code>.bg-mid { fill: oklch(from var(--foundation) calc(l - 0.04) calc(c * 0.91) h); } .bg-dark { fill: oklch(from var(--foundation) calc(l - 0.12) calc(c * 0.64) h); } </code></pre> When The Foundations Start To Move <p>So far, everything I’ve shown has been static. Even when someone uses a colour picker to change the foundation colour, that change happens instantly. But animated graphics rarely stand still — the clue is in the name. So, if colour is part of the system, there’s no reason it can’t animate, too.</p> <p>To animate the foundation colour, I first need to split it into its OKLCH channels — lightness, chroma, and hue. But there’s an important extra step: I need to register those values as <em>typed</em> custom properties. But what does that mean?</p> <p>By default, a browser doesn’t know whether a CSS custom property value represents a colour, length, number, or something else entirely. That often means <a href="https://css-tricks.com/what-you-need-to-know-about-css-color-interpolation/">they can’t be interpolated smoothly during animation</a>, and jump from one value to the next.</p> <p>Registering a custom property tells the browser the type of value it represents and how it should behave over time. In this case, I want the browser to treat my colour channels as numbers so they can be animated smoothly.</p> <pre><code>@property --f-l { syntax: "<number>"; inherits: true; initial-value: 0.40; } @property --f-c { syntax: "<number>"; inherits: true; initial-value: 0.11; } @property --f-h { syntax: "<number>"; inherits: true; initial-value: 305; } </code></pre> <p>Once registered, these custom properties behave like native CSS. The browser can interpolate them frame-by-frame. I then rebuild the foundation colour from those channels:</p> <pre><code>--foundation: oklch(var(--f-l) var(--f-c) var(--f-h)); </code></pre> <p>This makes the foundation colour become animatable, just like any other numeric value. Here’s a simple “breathing” animation that gently shifts lightness over time:</p> <pre><code>@keyframes breathe { 0%, 100% { --f-l: 0.36; } 50% { --f-l: 0.46; } } .toon-title { animation: breathe 10s ease-in-out infinite; } </code></pre> <p>Because every other colour in fills, gradients, and strokes is derived from <code>--foundation</code>, they all animate together, and nothing needs to be updated manually.</p> One Animated Colour, Many Effects <p>At the start of this process, I wondered whether CSS relative colour values could offer more possibilities while also making them simpler to implement. I recently added a new gold mine background to my website’s <a href="https://stuffandnonsense.co.uk/contact">contact page</a>, and the first iteration included oil lamps that glow and swing.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/16-gold-mine-scene.png" /></p> <p>I wanted to explore how animating CSS relative colours could make the mine interior more realistic by tinting it with colours from the lamps. I wanted them to affect the world around them, the way real light does. So, rather than animating multiple colours, I built a tiny lighting system that animates just one colour.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/17-overlay-layer-svg.png" /></p> <p>My first task was to slot an overlay layer between the background and my lamps:</p> <pre><code><path id="overlay" fill="var(--overlay-tint)" [...] style="mix-blend-mode: color" /> </code></pre> <p>I used <code>mix-blend-mode: color</code> because that tints what’s beneath it while preserving the underlying luminance. As I only want the overlay to be visible when animations are turned on, I made the overlay opt-in:</p> <pre><code>.svg-mine #overlay { display: none; } @media (prefers-reduced-motion: no-preference) { .svg-mine[data-animations=on] #overlay { display: block; opacity: 0.5; } } </code></pre> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/18-overlay-gold-mine-scene.png" /></p> <p>The overlay was in place, but not yet connected to the lamps. I needed a light source. My lamps are simple, and each one contains a <code>circle</code> element that I blurred with a filter. The <code>filter</code> produces a very soft blur over the entire circle.</p> <div> <pre><code><filter id="lamp-glow-1" x="-120%" y="-120%" width="340%" height="340%"> <feGaussianBlur in="SourceGraphic" stdDeviation="56"/> </filter> </code></pre> </div> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/19-oil-lamps.png" /></p> <p>Instead of animating the overlay and lamps separately, I animate a single “flame” colour token and derive everything else from that. First, I register three typed custom properties for OKLCH channels:</p> <pre><code>@property --fl-l { syntax: "<number>"; inherits: true; initial-value: 0.86; } @property --fl-c { syntax: "<number>"; inherits: true; initial-value: 0.12; } @property --fl-h { syntax: "<number>"; inherits: true; initial-value: 95; } </code></pre> <p>I animated those channels, deliberately pushing a few frames towards orange so the flicker reads clearly as firelight:</p> <div> <pre><code>@keyframes flame { 0%, 100% { --fl-l: 0.86; --fl-c: 0.12; --fl-h: 95; } 6% { --fl-l: 0.91; --fl-c: 0.10; --fl-h: 92; } 12% { --fl-l: 0.83; --fl-c: 0.14; --fl-h: 100; } 18% { --fl-l: 0.88; --fl-c: 0.11; --fl-h: 94; } 24% { --fl-l: 0.82; --fl-c: 0.16; --fl-h: 82; } 30% { --fl-l: 0.90; --fl-c: 0.12; --fl-h: 90; } 36% { --fl-l: 0.79; --fl-c: 0.17; --fl-h: 76; } 44% { --fl-l: 0.87; --fl-c: 0.12; --fl-h: 96; } 52% { --fl-l: 0.81; --fl-c: 0.15; --fl-h: 102; } 60% { --fl-l: 0.89; --fl-c: 0.11; --fl-h: 93; } 68% { --fl-l: 0.83; --fl-c: 0.16; --fl-h: 85; } 76% { --fl-l: 0.91; --fl-c: 0.10; --fl-h: 91; } 84% { --fl-l: 0.85; --fl-c: 0.14; --fl-h: 98; } 92% { --fl-l: 0.80; --fl-c: 0.17; --fl-h: 74; } } </code></pre> </div> <p>Then I scoped that animation to the SVG, so the shared variables are available to both the lamps and my overlay:</p> <div> <pre><code>@media (prefers-reduced-motion: no-preference) { .svg-mine[data-animations=on] { animation: flame 3.6s infinite linear; isolation: isolate; /* Build a flame colour from animated channels */ --flame: oklch(var(--fl-l) var(--fl-c) var(--fl-h)); /* Lamp colour derived from flame */ --lamp-core: oklch(from var(--flame) calc(l + 0.05) calc(c * 0.70) h); /* Overlay tint derived from the same flame */ --overlay-tint: oklch(from var(--flame) calc(l + 0.06) calc(c * 0.65) calc(h - 10)); } } </code></pre> </div> <p>Finally, I applied those derived colours to the glowing lamps and the overlay they affect:</p> <pre><code>@media (prefers-reduced-motion: no-preference) { .svg-mine[data-animations=on] #mine-lamp-1 > circle, .svg-mine[data-animations=on] #mine-lamp-2 > circle { fill: var(--lamp-core); } .svg-mine[data-animations=on] #overlay { display: block; fill: var(--overlay-tint); opacity: 0.5; } } </code></pre> <p><img src="https://files.smashing.media/articles/smashing-animations-part-8-css-relative-colour/20-lamps-overlay-connected.png" /></p> <p>When the flame shifts toward orange, the lamps warm up, and the scene warms with them. When the flame cools, everything settles together. The best part is that nothing is written manually. If I change the foundation colour or tweak the flame animation ranges, the entire lighting system updates simultaneously.</p> <p>You can see <a href="https://stuffandnonsense.co.uk/contact">the final result on my website</a>.</p> Reuse, Repurpose, Revisited <p>Those Hanna-Barbera animators were forced to repurpose elements out of necessity, but I reuse colours because it makes my work <strong>more consistent</strong> and <strong>easier to maintain</strong>. CSS relative colour values allow me to:</p> <ul> <li>Define a single foundation colour,</li> <li>Describe how other colours relate to it,</li> <li>Reuse those relationships everywhere, and</li> <li>Animate the system by changing one value.</li> </ul> <p>Relative colour doesn’t just make theming easier. It encourages a way of thinking where colour, like motion, is intentional — and where changing one value can transform an entire scene without rewriting the work beneath it.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/01/smashing-animations-part-8-css-relative-colour/</span> hello@smashingmagazine.com (Andy Clarke) <![CDATA[UX And Product Designer’s Career Paths In 2026]]> https://smashingmagazine.com/2026/01/ux-product-designer-career-paths/ https://smashingmagazine.com/2026/01/ux-product-designer-career-paths/ Mon, 12 Jan 2026 10:00:00 GMT How to shape your career path for 2026, with decision trees for designers and a UX skills self-assessment matrix. The only limits for tomorrow are the doubts we have today. Brought to you by <a href="https://smart-interface-design-patterns.com/">Smart Interface Design Patterns</a>, a **friendly video course on UX** and design patterns by Vitaly. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/01/ux-product-designer-career-paths/</span> <p>As the new year begins, I often find myself in a strange place — reflecting back at the previous year or looking forward to the year ahead. And as I speak with colleagues and friends at the time, it typically doesn’t take long for a conversation about <strong>career trajectory</strong> to emerge.</p> <p>So I thought I’d share a few thoughts on <strong>how to shape your career path</strong> as we are looking ahead to 2026. Hopefully you’ll find it useful.</p> Run A Retrospective For Last Year <p>To be honest, for many years, I was mostly reacting. Life was happening <em>to</em> me, rather than me shaping the life that I was living. I was <strong>making progress reactively</strong> and I was looking out for all kinds of opportunities. It was easy and quite straightforward — I was floating and jumping between projects and calls and making things work as I was going along.</p> <p><img src="https://files.smashing.media/articles/product-designer-career-paths/4-career-paths-ux-designers.jpeg" /></p> <p>Years ago, my wonderful wife introduced <strong>one little annual ritual</strong> which changed that dynamic entirely. By the end of each year, we sit with nothing but paper and pencil and run a thorough <strong>retrospective of the past year</strong> — successes, mistakes, good moments, bad moments, things we loved, and things we wanted to change.</p> <p>We look back at our memories, projects, and events that stood out that year. And then we take notes for where we stand in terms of personal growth, professional work, and social connections — and <strong>how we want to grow</strong>.</p> <p>These are <strong>the questions</strong> I’m trying to answer there:</p> <ul> <li>What did I find <strong>most rewarding</strong> and fulfilling last year?</li> <li>What <strong>fears and concerns slowed me down</strong> the most?</li> <li>What could I <strong>leave behind</strong>, give away or simplify?</li> <li>What tasks would be <strong>good to delegate</strong> or automate?</li> <li>What are my <strong>3 priorities to grow</strong> this upcoming year?</li> <li>What <strong>times do I block</strong> in my calendar for my priorities?</li> </ul> <p>It probably sounds quite cliche, but these 4–5h of our time every year set a <strong>foundation for changes</strong> to introduce for the next year. This little exercise shapes the trajectory that I’ll be designing and prioritizing next year. I can’t recommend it enough.</p> UX Skills Self-Assessment Matrix <p>Another little tool that I found helpful for professional growth is <a href="https://www.figma.com/community/file/1142203484282738794/design-skills-matrix">UX Skills Self-Assessment Matrix</a> (Figma template) by Maigen Thomas. It’s a neat little tool that’s designed to help you understand what you’d like to do more of, what you’d prefer to do less, and where your <strong>current learning curve</strong> lies vs. where you feel <strong>confident in your expertise</strong>.</p> <p><img src="https://files.smashing.media/articles/product-designer-career-paths/2-design-skills-self-assessment-matrix.jpeg" /></p> <p>The exercise typically takes around 20–30 minutes, and it helps identify the <strong>UX skills with a sweet spot</strong> — typically the upper half of the canvas. You’ll also pinpoint areas where you’re improving, and those where you are already pretty good at. It’s a neat reality check — and a great reminder once you review it year after year. Highly recommended!</p> UX Career Levels For Design Systems Teams <p>A while back, <a href="https://www.linkedin.com/in/javiercuello/?lipi=urn%3Ali%3Apage%3Ad_flagship3_pulse_read%3BarGUwB3ET%2FyNMblHCHHbCg%3D%3D">Javier Cuello</a> has put together a Career Levels For Design System Teams (Figma Kit), a neat little helper for product designers looking to transition into design systems teams or managers building a career matrix for them. The model maps progression levels (Junior, Semi-Senior, Senior, and Staff) to key development areas, with skills and responsibilities required at each stage.</p> <p><img src="https://files.smashing.media/articles/product-designer-career-paths/5-ux-career-levels.jpeg" /></p> <p>What I find quite valuable in Javier’s model is the mapping of strategy and impact, along with systematic thinking and governance. While as designers we often excel at tactical design — from elegant UI components to file organization in Figma — we often lag a little bit behind in strategic decisions.</p> <p>To a large extent, the difference between levels of seniority is moving from tactical initiatives to strategic decisions. It’s proactively looking for organizational challenges that a system can help with. It’s finding and inviting key people early. It’s also about embedding yourself in other teams when needed.</p> <p>But it’s also keeping an eye out for situations when design systems fail, and paving the way to make it more difficult to fail. And: adapting the workflow around the design system to ship on a tough deadline when needed, but with a viable plan of action on how and when to pay back accumulating UX debt.</p> Find Your Product Design Career Path <p>When we speak about career trajectory, it’s almost always assumed that the career progression inevitably leads to <strong>management</strong>. However, this hasn’t been a path I preferred, and it isn’t always the ideal path for everyone.</p> <p>Personally, I prefer to work on intricate fine details of UX flows and deep dive into <strong>complex UX challenges</strong>. However, eventually it might feel like you’ve stopped growing — perhaps you’ve hit a ceiling in your organization, or you have little room for exploration and learning. So where do you go from there?</p> <p><img src="https://files.smashing.media/articles/product-designer-career-paths/3-producst-design-career-paths-mirror-model.jpeg" /></p> <p>A helpful model to think about your next steps is to consider Ryan Ford’s <a href="https://uxdesign.cc/fixing-product-design-career-paths-with-the-mirror-model-76152b7e547?sk=v2%2F0a6cb162-4def-4f1c-ac5e-b145597646c7">Mirror Model</a>. It explores <strong>career paths and expectations</strong> that you might want to consider to advocate for a position or influence that you wish to achieve next.</p> <p>That’s typically something you might want to study and <strong>decide on your own first</strong>, and then bring it up for discussion. Usually, there are internal opportunities out there. So before changing the company, you can switch teams, or you could shape a more fulfilling role <strong>internally</strong>.</p> <p>You just need to find it first. Which brings us to the next point.</p> Proactively Shaping Your Role <p>I keep reminding myself of <a href="https://www.linkedin.com/in/jasonmesut?miniProfileUrn=urn%3Ali%3Afs_miniProfile%3AACoAAAAawX0BwaORuqGb58dyVh03pJIPpuU6s68&lipi=urn%3Ali%3Apage%3Ad_flagship3_pulse_read%3BarGUwB3ET%2FyNMblHCHHbCg%3D%3D">Jason Mesut</a>’s observation that when we speak about career ladders, it assumes that we can either go up, down, or fall off. But in reality, you can <strong>move up, move down, and move sideways</strong>. As Jason says, “promoting just the vertical progression doesn’t feel healthy, especially in such a diverse world of work, and diverse careers ahead of us all.”</p> <p>So, in the attempt to climb up, perhaps consider also moving sideways. <strong>Zoom out and explore</strong> where your interests are. Focus on the much-needed intersection between business needs and user needs. Between problem space and solution space. Between strategic decisions and operations. Then zoom in. In the end, you might not need to climb anything — but rather just find that right spot that brings your expertise to light and makes the biggest impact.</p> <p><img src="https://files.smashing.media/articles/product-designer-career-paths/1-career-decision-map-ux-designers.jpeg" /></p> <p>Sometimes these roles might involve acting as a <strong>“translator”</strong> between design and engineering, specializing in UX and accessibility. They could also involve <strong>automating design processes</strong> with AI, improving workflow efficiency, or focusing on internal search UX or legacy systems.</p> <p>These roles are never advertised, but they have a <strong>tremendous impact</strong> on a business. If you spot such a gap and proactively bring it to senior management, you might be able to shape a role that brings your strengths into the spotlight, rather than trying to fit into a predefined position.</p> What About AI? <p>One noticeable skill that is worth sharpening is, of course, around <strong>designing AI experiences</strong>. The point isn’t about finding ways to replace design work with AI automation. Today, it seems like people crave nothing more than actual human experience — created by humans, with attention to humans’ needs and intentions, designed and built and tested with humans, embedding human values and working well for humans.</p> <p><img src="https://files.smashing.media/articles/product-designer-career-paths/6-design-patterns-ai-interfaces.jpeg" /></p> <p>If anything, we should be more <strong>obsessed with humans</strong>, not with AI. If anything, AI amplifies the need for authenticity, curation, critical thinking, and strategy. And that’s a skill that will be very much needed in 2026. We need designers who can design beautiful AI experiences (and frankly, I do have a <a href="https://ai-design-patterns.com/">whole course</a> on that) — experiences people understand, value, use, and <strong>trust</strong>.</p> <p>No technology can create <strong>clarity, structure, trust, and care</strong> out of poor content, poor metadata, and poor value for end users. If we understand the fundamentals of good design, and then design with humans in mind, and consider humans’ needs and wants and struggles, we can help users and businesses bridge that gap in a way AI never could. And that’s what you and perhaps your renewed role could bring to the table.</p> Wrapping Up <p>The most important thing about all these little tools and activities is that they help you <strong>get more clarity</strong>. Clarity on where you currently stand and where you actually want to grow towards.</p> <p>These are <strong>wonderful conversation starters</strong> to help you find a path you’d love to explore, on your own or with your manager. However, just one thing I’d love to emphasize: </p> <blockquote>Absolutely, feel free to refine the role to amplify your strengths, rather than finding a way to match a particular role perfectly.</blockquote> <p>Don’t forget: you bring <strong>incredible value</strong> to your team and to your company. Sometimes it just needs to be highlighted or guided to the right spot to bring it into the spotlight.</p> <p>You’ve got this — and happy 2026! ✊🏼✊🏽✊🏾</p> Meet “Design Patterns For AI Interfaces” <p>Meet <strong>design patterns that work</strong> for AI products in <a href="https://ai-design-patterns.com/"><strong>Design Patterns For AI Interfaces</strong></a>, Vitaly’s shiny new <strong>video course</strong> with practical examples from real-life products — with a <a href="https://smashingconf.com/online-workshops/workshops/ai-interfaces-vitaly-friedman/">live UX training</a> happening soon. <a href="https://www.youtube.com/watch?v=jhZ3el3n-u0">Jump to a free preview</a>. Use code <strong>SNOWFLAKE</strong> to <strong>save 20%</strong> off!</p> <p></p><a href="https://ai-design-patterns.com/"><img src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/product-designer-career-paths/design-patterns-ai-interfaces.png" /></a>Meet <a href="https://ai-design-patterns.com/">Design Patterns For AI Interfaces</a>, Vitaly’s video course on interface design & UX.<p></p> <div><div><ul><li><a href="#"> Video + UX Training</a></li><li><a href="#">Video only</a></li></ul><div><h3>Video + UX Training</h3>$ 450.00 $ 799.00 <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3476562?price_id=4401578"> Get Video + UX Training<div></div></a><p>30 video lessons (10h) + <a href="https://smashingconf.com/online-workshops/workshops/ai-interfaces-vitaly-friedman/">Live UX Training</a>.<br />100 days money-back-guarantee.</p></div><div><h3>Video only</h3><div>$ 275.00$ 395.00</div> <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3476562?price_id=4397456"> Get the video course<div></div></a><p>30 video lessons (10h). Updated yearly.<br />Also available as a <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3570306?price_id=4503439">UX Bundle with 3 video courses.</a></p></div></div></div> Useful Resources <ul> <li><a href="https://www.figma.com/community/file/1142203484282738794/design-skills-matrix">UX Skills Self-Assessment Matrix (Figma template)</a>, by Maigen Thomas</li> <li>“<a href="https://uxdesign.cc/fixing-product-design-career-paths-with-the-mirror-model-76152b7e547?sk=v2%2F0a6cb162-4def-4f1c-ac5e-b145597646c7">Product Designer’s Career Levels Paths</a>” + <a href="https://drive.google.com/file/d/1BePJyrd8q0D1mVgIV2h8ghds8IbbyzBR/view">PNG</a>, by Ryan Ford</li> <li><a href="https://www.linkedin.com/feed/update/urn:li:activity:7345798373368578050/">Career Decision Map For UX Designers (PNG)</a>, by Lily Yue</li> <li><a href="https://www.linkedin.com/posts/lilyyue_uxdesign-careergrowth-productdesign-activity-7343261653901144066-8nLf/">Diverse Career Paths For UX Designers (PNG)</a>, by Lily Yue</li> <li><a href="https://medium.com/shapingdesign">Shaping Designers and Design Teams</a>, by Jason Mesut</li> <li><a href="https://miro.com/templates/skills-map-design/">UX Skills Self-Assessment Map template (Miro)</a>, by Paóla Quintero</li> <li><a href="https://www.nngroup.com/articles/skill-mapping/">UX Skill Mapping Template (Google Sheets)</a>, by Rachel Krause, NN/g</li> <li>“<a href="https://shannonethomas.com/2023/08/08/growth-framework">Design Team’s Growth Matrix</a>”, by Shannon E. Thomas</li> <li><a href="https://www.figma.com/community/file/1220482745322443565/figma-product-design-writing-career-levels">Figma Product Design & Writing Career Levels</a>, by Figma</li> <li><a href="https://miro.com/templates/content-design-role-frameworks/">Content Design Role Frameworks</a>, by Tempo</li> <li>“<a href="https://dscout.com/people-nerds/uxr-career-framework">UX Research Career Framework</a>”, by Nikki Anderson</li> <li><a href="https://uxchrisnguyen.gumroad.com/l/uxcareerladder"><em>UX Career Ladders</em> (free eBook)</a>, by Christopher Nguyen</li> <li><a href="https://docs.google.com/spreadsheets/d/1cNkL4nY3Z8vTyIpIsvqpaFortYZfF-VIoUE0mkbkRMo/edit?gid=0#gid=0">Product Design Level Expectations</a>, by Aaron James</li> </ul> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/01/ux-product-designer-career-paths/</span> hello@smashingmagazine.com (Vitaly Friedman) <![CDATA[Penpot Is Experimenting With MCP Servers For AI-Powered Design Workflows]]> https://smashingmagazine.com/2026/01/penpot-experimenting-mcp-servers-ai-powered-design-workflows/ https://smashingmagazine.com/2026/01/penpot-experimenting-mcp-servers-ai-powered-design-workflows/ Thu, 08 Jan 2026 08:00:00 GMT <p>This article is a sponsored by <a href="https://penpot.app?utm_source=SmashingMag&utm_medium=Article&utm_campaign=MCPserver">Penpot</a></p> <p>Imagine that your Penpot file contains a full icon set in addition to the design itself, which uses some but not all of those icons. If you were to ask an AI such as Claude or Gemini to export only the icons that are being used, it wouldn’t be able to do that. It’s not able to interact with Penpot files.</p> <p>However, a <strong>Penpot MCP server</strong> can. It can perform a handpicked number of operations under set rules and permissions, especially since Penpot has an extensive API and even more so because it’s <strong>open-source</strong>.</p> <p>The AI’s job is simply to understand your intent, choose the right operation for the MCP server to perform (an export in this case), and pass along any parameters (i.e., icons that are being used). The MCP server then translates this into a structured API request and executes it.</p> <p>It might help to think of AI as a server in a restaurant that takes your order, the MCP server as both the menu and chef, and the API request as (hopefully) a hot pizza pie on a warm plate.</p> <p>Why MCP servers, exactly? Well, Penpot isn’t able to understand your intent because it’s not an LLM, nor does it allow third-party LLMs to interact with your Penpot files for the security and privacy of your Penpot data. Although Penpot MCP servers do act as a <strong>secure bridge</strong>, translating AI intent into API requests using your Penpot files and data as context.</p> <p>What’s even better is that because Penpot takes a <strong>design-expressed-as-code approach</strong>, designs can be programmatically created, edited, and analyzed on a granular level. It’s more contextual, more particular, and therefore more powerful in comparison to what other MCP servers offer, and <em>far</em> more thoughtful than the subpar ‘Describe → Generate’ AI workflow that I don’t think anybody really wants. <a href="https://penpot.app/blog/penpot-ai-whitepaper/">Penpot’s AI whitepaper</a> describes this as the bad approach and the ‘Convert to Code’ approach as the ugly approach, whereas MCP servers are more refined and adaptable.</p> Features And Technical Details <p>Before we move on to use cases, here are some features and technical details that further explain how Penpot MCP servers work:</p> <ul> <li>Complies with MCP standards;</li> <li>Integrates with the Penpot API for real-time design data;</li> <li>Includes a Python SDK, REST API, plugin system, and CLI tools;</li> <li>Works with any MCP-enabled AI assistant (Claude in VS Code, Claude in Cursor, Claude Desktop, etc.);</li> <li>Supports sharing design context with AI models, and letting them see and understand components;</li> <li>Facilitates communication with Penpot using natural language.</li> </ul> <p>What, then, could MCP servers enable us to do in Penpot, and what have existing experiments already achieved? Let’s take a look.</p> Penpot MCP Server Use-Cases <p>If you just want to skip to what Penpot MCP servers can do, Penpot have a few <a href="https://drive.google.com/drive/u/0/folders/1CCuBqHEevWsp15bYkf3W7CLXLja5R_M_">MCP demos</a> stashed in a Google Drive that are more than worth watching. Penpot CEO Pablo Ruiz-Múzquiz mentioned that videos 03, 04, 06, 08, and 12 are their favorites.</p> <p>An even faster way to summarize MCP servers is to <a href="https://www.youtube.com/watch?v=KNsvFc4Elfs&list=PLgcCPfOv5v57Sp_vY4VggqUpAbP5fTIkM">watch the unveiling from Penpot Fest 2025</a>.</p> <p>Otherwise, let’s take a look at some of the more refined examples that Penpot demonstrated in their <a href="https://community.penpot.app/t/penpot-mcp-server-showcase-ask-for-help/10040?utm_source=SmashingMagazine&utm_medium=Article&utm_campaign=MCPserver">public showcase</a>.</p> <h3>Design-to-Code and Back Again (and More)</h3> <p>Running on from what I was saying earlier about how Penpot designs are expressed as code, this means that MCP servers can be used to convert design to code using AI, but also code to design, design to documentation, documentation to design system elements, design to code again <em>based</em> on said design system, and then completely new components based on said design system.</p> <p>It sounds surreal, but the demo below shows off this <strong>transmutability</strong>, and it’s not from vague instruction but rather previous design choices, regardless of how they were expressed (design, code, or documentation). There are no surprises — these are simply the decisions that you would’ve made anyway based on previous decisions, executed swiftly.</p> <p>In the demo, Juan de la Cruz García, Designer at Penpot, frictionlessly transmutes some simple components into documentation, design system elements, code, new components, and even a complete Storybook project like a piece of Play-Doh:</p> <h3>Design-to-Code, Design/Code Validation, And Simple Operations</h3> <p>In a similar demo below, Dominik Jain, Co-Founder at Oraios AI, creates a Node.js web app based on the design before updating the frontend styles, saves names and identifiers to memory to ensure smooth design-to-code translation before checking it for consistency, adds a comment next to the selected shape in Penpot, and then replaces a scribble in Penpot with an adapted component. There’s a lot happening here, but you can see exactly what Dominik is typing into Claude Desktop as well as Claude’s responses, and it’s <em>very</em> robust:</p> <p>By the way, the previous demo used Claude in VS Code, so I should note that <strong>Penpot MCP servers are LLM-agnostic</strong>. Your tech stack is totally up to you. IvanTheGeek managed to <a href="https://community.penpot.app/t/penpot-mcp-server-showcase-ask-for-help/10040/3?utm_source=SmashingMagazine&utm_medium=Article&utm_campaign=MCPserver">set up their MCP server with the JetBrains Rider IDE and Junie AI</a>.</p> <h3>More Use Cases</h3> <p>Translate a Penpot board to production-ready semantic HTML and modular CSS while leveraging any Penpot design tokens (remember that Penpot designs are already expressed as code, so this isn’t a shot in the dark):</p> <p>Generate an interactive web prototype without changing the existing HTML:</p> <p>As shown earlier, convert a scribble into a component, leveraging existing design and/or design system elements:</p> <p>Create design system documentation from a Penpot file:</p> <p>And here are some more use-cases from Penpot and the community:</p> <ul> <li>Advanced exports,</li> <li>Search for design elements using natural language,</li> <li>Pull data from external APIs using natural language,</li> <li>Easily connect Penpot to other external tools,</li> <li>Saving repetitive tasks to memory and executing them,</li> <li>Visual regression testing,</li> <li>Design consistency and redundancy checking,</li> <li>Accessibility and usability analysis and feedback,</li> <li>Design system compliance checking,</li> <li>Guideline compliance checking (brand, content, etc.),</li> <li>Monitor adoption and usage with design analytics,</li> <li>Automatically keep documentation in sync with design,</li> <li>Design file organization (e.g., tagging/categorization).</li> </ul> <p>Essentially, Penpot MCP servers lead the way to an <strong>infinite number of workflows</strong> thanks to the efficiency and ease of your chosen LLM/LLM client, but without exposing your data to it.</p> What Would You Use MCP Servers For? <p>Penpot MCP servers aren’t even at the beta stage, but it is an <strong>active experiment</strong> that you can be a part of. Penpot users have already begun exploring use cases for MCP servers, but Penpot wants to see more. To ensure that the next generation of design tools meets the needs of designers, developers, and product teams in general, they must be built <strong>collectively</strong> and <strong>collaboratively</strong>, especially where AI is concerned.</p> <p><strong>Note</strong>: <em>Penpot is looking for beta testers eager to explore, experiment with, and help refine Penpot’s MCP Server. To join, write to <a href="mailto:support@penpot.app">support@penpot.app</a> with the subject line “MCP beta test volunteer.”</em></p> <p>Is there anything that you feel Penpot MCP servers could do that current tools aren’t able to do well enough, fast enough, or aren’t able to do at all?</p> <p>You can learn <a href="https://github.com/penpot/penpot-mcp">how to set up a Penpot MCP server right here</a> and start tinkering today, or if your brain’s buzzing with ideas already, Penpot want you to <a href="https://community.penpot.app/t/penpot-mcp-server-showcase-ask-for-help/10040?utm_source=SmashingMagazine&utm_medium=Article&utm_campaign=MCPserver">join the discussion</a>, share your feedback, and talk about your use-cases. Alternatively, the comment section right below isn’t a bad place to start either!</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/01/penpot-experimenting-mcp-servers-ai-powered-design-workflows/</span> hello@smashingmagazine.com (Daniel Schwarz) <![CDATA[Pivoting Your Career Without Starting From Scratch]]> https://smashingmagazine.com/2026/01/pivoting-career-without-starting-from-scratch/ https://smashingmagazine.com/2026/01/pivoting-career-without-starting-from-scratch/ Wed, 07 Jan 2026 10:00:00 GMT Most developers spend their days fixing bugs, shipping features, and jumping into the next sprint without even thinking about it. After a while, you begin to ask yourself, “Is this still what I want to be doing?” This article looks at how you can move into a new direction in your career without starting from scratch, and how the skills you already use, like problem-solving, communication, and empathy, can open new doors. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/01/pivoting-career-without-starting-from-scratch/</span> <p>Has work felt “different” to you? You show up, do your work, fix what needs fixing, and get the job done, but the excitement isn’t quite the same anymore. Maybe the work has become too routine, or maybe you’ve grown in a way your role hasn’t kept up with. You catch yourself thinking, <em>“I’ve been doing this for years, but where do I go from here?”</em></p> <p>It’s not always about the burnouts or frustrations. Sometimes it’s just <strong>curiosity</strong>. You’ve learned a lot, built things, solved problems, and now a small part of you wants to see what else you can do. Maybe the rise of AI is making you look at your job differently, or maybe you feel ready for a new kind of challenge that does not look like your current day-to-day.</p> <p>I have seen many people across different fields go through this. Developers moving into product work, designers shifting to UX research, engineers getting into teaching, or support folks building communities. Everyone reaches that point where they want their work to feel meaningful again.</p> <p>The good thing is you are not starting from zero. The experience you already have, like solving problems, making decisions, working, and communicating with people, those are real, valuable skills that carry over anywhere. Most of the time, the next step is not about leaving tech behind. It’s about finding where your skills make the most sense next.</p> <p>This article is about that: How to rethink your path when things start to feel a bit stale, and how to move toward something new without losing everything you’ve built so far.</p> Redefining Your Toolkit <p>When people start thinking about changing careers, the first thing they usually do is focus on what they do not have. The missing skills, the new tools they need to learn, or how far behind they feel. It is a normal reaction, but it is not always the best place to begin. </p> <p>Instead, try looking at what is already there. <strong>You have probably built more useful skills than you realize.</strong> Many of us get used to describing ourselves by our job titles, such as developer, designer, or analyst, but those titles do not fully explain what we actually do. They just tell us where we sit on a team. The real story is the work behind the title.</p> <p>Think of a developer, for example. On paper, the job is to write code, but in reality, a developer spends most of their time solving problems, making decisions, and building systems that make sense to other people. The same goes for designers. They do not just make things look good; they pay attention to how people think, how they move through a screen, and how to make something feel clear and simple.</p> <blockquote>Your skills don’t disappear when your title changes. They just find new ways to show up.</blockquote> <p>These are what people call <strong>transferable skills</strong>, but you do not need the fancy term to get the idea. These are abilities that stay useful no matter where you go. Problem-solving, curiosity, clear communication, empathy, and learning fast — these are the things that make you good at what you do, even if the tools or roles change.</p> <p>You already use them more than you think. When you fix a bug, you are learning how to track a problem back to its roots. When you explain a technical idea to someone non-technical, you are practicing clarity. When you deal with tight deadlines, you are learning how to manage priorities. None of these disappear if you switch fields. You apply it somewhere else.</p> <p>So, before you worry about what you do not know, take a moment to see what you already do well. Write it down if you have to. Not just the tasks, but the thinking behind them. That is where your real value is.</p> Four Real-World Paths to Explore <p>Once you start seeing your skills beyond your job title, you may realize how many directions you can actually take. The tech world keeps changing fast: tools change, teams change, new roles show up every year, and people move in ways they never planned.</p> <p>Here are four real paths that many people in tech are taking today.</p> <table> <thead> <tr> <th>From</th> <th>To</th> <th>What Changes</th> <th>Why It Works</th> </tr> </thead> <tbody> <tr> <td><strong>Developer</strong></td> <td><strong>Product Manager</strong></td> <td>You move from building the product to shaping what gets built and why.</td> <td>Developers already understand tradeoffs, user needs, and how features come together. That is product thinking in action.</td> </tr> <tr> <td><strong>Engineer</strong></td> <td><strong>Developer Advocate</strong></td> <td>You focus less on code delivery and more on helping others succeed with your product.</td> <td>You already know the technology inside out, so turning that knowledge into clear communication makes you a natural teacher.</td> </tr> <tr> <td><strong>Back-end Engineer</strong></td> <td><strong>Solutions Engineer</strong></td> <td>You bring your problem-solving mindset to real client challenges.</td> <td>It is not about selling, it is about understanding problems deeply and building trust through technical skill.</td> </tr> <tr> <td><strong>Designer</strong></td> <td><strong>UX Researcher or Service Designer</strong></td> <td>You shift from visuals to understanding how people think, feel, and interact.</td> <td>Good design starts with empathy, and that same skill fits perfectly in research and experience design.</td> </tr> </tbody> </table> <p>What many people discover when they take one of these steps is that their daily work changes, not their identity. The tools and routines might be different, but the core way they think and solve problems stays the same.</p> <p>The biggest change is usually <strong>perspective</strong>. Instead of focusing on <em>how</em> something gets built, you begin to care more about <em>why</em> it matters, who it helps, and what impact it has. For many people, that shift often brings back the excitement they might have lost somewhere along the way.</p> Your First Steps Towards A New Path <p>When you find a direction that feels interesting, the next step is figuring out how to move toward it without losing your footing where you are. This is where curiosity turns into a plan.</p> <h3>1. Take A Look At What You Bring</h3> <p>Start by checking your strengths. It does not have to be anything complex. Write down what you do well, what feels natural to you, and what people usually ask you for help with.</p> <p>If you want a simple guide, <a href="https://www.learningpeople.com/uk/resources/guides/how-to-do-a-personal-skills-audit/?utm_source=chatgpt.com">Learning People</a> has a good breakdown for auditing your personal skills, including a template for identifying and evaluating your skills. Try filling it out; it’s well worth the few minutes it takes to complete.</p> <p>After listing your strengths, try matching them with roles you’re curious about. For example, if you’re a developer who enjoys explaining things, that could connect well with mentoring, writing tutorials, or developer advocacy.</p> <h3>2. Learn By Getting Close To It</h3> <p>Job descriptions aren’t a perfect reflection of the realities of working a specific job. Talking with people who do that job will. So, reach out to people who already do what you’re interested in and ask them what their day-to-day looks like, what parts they enjoy, and what surprised them when they started. </p> <p>And if possible, shadow someone or volunteer to help on a project. You don’t need a job change to explore something new. Short, hands-on experiences often teach you far more than any course, and many people are more than willing to take you under their wing, especially if you are offering your time and help in exchange for experience.</p> <h3>3. Build Proof Through Small Experiments</h3> <p>Do something small that points in the direction you want to go. Maybe build a simple tool, write a short piece about what you’re learning, or help a local startup or open-source team. These don’t need to be perfect, but they just need to exist. They show direction, not completion.</p> <p>Blogging has always been a perfect way to share your learning path and demonstrate your excitement about it. Plus, it establishes a track record of the knowledge you acquire.</p> <h3>4. Shape Your Story As You Grow</h3> <p>Instead of going with the idea of <em>“I’m switching careers,”</em> try thinking of it as <em>“I’m building on what I already do.”</em> That simple shift makes your journey clearer. It shows that you’re not starting from zero — you’re simply moving forward with more intention.</p> Navigating The Mental Hurdles <p>Every career shift, even when it feels exciting, comes with doubts. You might ask yourself, <em>“What if I’m not ready?”</em> or <em>“What if I can’t keep up?”</em> These thoughts are more common than people admit. </p> <h3>Imposter Syndrome</h3> <p>One fear that shows up a lot is <a href="https://www.smashingmagazine.com/2022/07/overcoming-imposter-syndrome-developing-guiding-principles/">imposter syndrome</a>, that feeling you do not belong or that others are “better” or “smarter” at something than you. A recent piece from <a href="https://nordcloud.com/blog/mental-health-tech-imposter-syndrome/">Nordcloud</a> shared that more than half (58%) of IT professionals have felt this at some point in their career.</p> <p>Comparison is a silent thief of confidence. Seeing others move faster can make you feel late. But everyone has different opportunities and different timing. What matters is the direction you are moving in, not how fast you go.</p> <p>Here’s a thought worth remembering:</p> <blockquote>People who have successfully changed their careers did not wait until they felt brave. Most of them still had doubts, but they just moved anyway, one small step at a time.</blockquote> <h3>Starting Again</h3> <p>Another worry is the idea of starting over. You may feel that you’ve spent too many years in one space to move into another. But you are not returning to the beginning. You are moving with experience. Your habits, discipline, and problem-solving stay with you. They just show up in a different way.</p> <p>It’s hard — and self-defeating — to imagine the work it takes to start all over again, especially when you have invested many years into what you do. But remember, it’s not always too late. Even <a href="https://www.joanwestenberg.com/remember-kurt-vonnegut-was-47/">Kurt Vonnegut was 47</a> when he wrote his seminal book, <em>Slaughterhouse Five</em>. You can still enjoy a very long and fruitful career, even in middle age.</p> <h3>Finances</h3> <p>Money and stability also weigh a lot. The fear of losing income or looking uncertain can hold you back. And everyone’s money situation can be wildly different. You may have family to support, big loans to pay back, a lack of reserves, or any number of completely valid reasons for not wanting to give up a steady paycheck when you’re already receiving one.</p> <p>A simple way to reduce that pressure is to start with small steps. Take a small side gig, try part-time work, or help on a short project in the area you’re curious about. These small tests give you clarity without shaking your foundation.</p> Conversations With Industry Experts <p>Below are short interviews with a handful of tech professionals serving in different roles. I wanted to talk with real people who have recently switched careers or are in the process of doing so because it helps illustrate the wide range of situations, challenges, and opportunities you might expect to encounter in a career change.</p> <h3>Thomas Dodoo: Graphic Designer, 5 Years Of Experience</h3> <p><img src="https://files.smashing.media/articles/pivoting-career-without-starting-from-scratch/thomas-dodoo.jpeg" /><strong>Background:</strong> Thomas has an IT background. He first got interested in tech through game development in school, but later discovered that design was what he enjoyed more. Over time, he <a href="https://www.behance.net/thomasdodoo">moved fully into graphic design and branding</a>.</p> <p>Question: When you were starting, what confused you the most about choosing your path?</p> <p>Thomas: I wasn’t sure if I should stay with game development or follow design. I liked both, but design came more naturally, so I just kept learning little by little.</p> <p>Question: Was there a moment that made you take your design work more seriously?</p> <p>Thomas: Yes, the first time someone trusted me with their full brand. It made me realise this could be more than a hobby.</p> <p>Question: What skills did you carry over from development into your design work? </p> <p>Thomas: My background in development helped me think more logically about design. I break things down, think in steps, and focus on how things work, not just how they look. </p> <h3>Adwoa Mensah: Product Manager, 4 Years Of Experience</h3> <p><img src="https://files.smashing.media/articles/pivoting-career-without-starting-from-scratch/adwoa-mensah.png" /><strong>Background:</strong> Adwoa moved from software testing to product management.<br /><br />Question: When did you realize it was time to change careers?</p> <p>Adwoa: I realised it when I started caring more about <em>why</em> things were being built, not just checking if they worked. I enjoyed asking questions, giving input, and thinking about the bigger picture, and testing alone started to feel limiting.</p> <p>Question: What new skills did you need to learn to move into your new field? </p> <p>Adwoa: I had to learn how to communicate better, especially with designers, developers, and stakeholders. I also worked on planning, prioritising work, and understanding users more deeply. I learned most of this by watching product managers I worked with, asking questions, reading, and slowly taking on more responsibility on real projects.</p> <h3>Konstantinos Tournas: AI Engineer</h3> <p><img src="https://files.smashing.media/articles/pivoting-career-without-starting-from-scratch/konstantinos-tournas.jpeg" /><strong>Background:</strong> Konstantinos started programming with zero experience. He had no technical background at first, but he developed a strong interest in artificial intelligence and <a href="https://huggingface.co/tournas">worked his way into the field</a>.</p> <p>Question: What moments in your journey made you question yourself, and how did you move past them?</p> <p>Konstantinos: There were many moments in my career journey when I doubted myself, mainly because I started completely from zero, with no programming background and no connections in the field. What helped me push through was the motivation I had to learn and my genuine love for artificial intelligence. Every time I questioned myself, I reminded myself where I started and how far I had come in such a short amount of time.</p> <p>Question: When you feel pressure or doubt in your work, what helps you stay grounded?</p> <p>Konstantinos: When I feel pressure or self-doubt, I usually take a walk in nature. It helps me clear my mind and think creatively about how I can improve my work. In programming, the work rarely stops when your shift ends; problems in the code follow you throughout the day, and overcoming them requires creativity. Walking helps me reset and return with better ideas.</p> <p>Question: How do you deal with comparing yourself to others in your field?</p> <p>Konstantinos: Even though I’m competitive by nature, I constantly try to learn from others in my field. I don’t like showing off; I prefer listening. I know I can become great at what I do, but that doesn’t happen overnight. Comparison can be healthy, as long as it pushes you to grow rather than discourages you.</p> <p>Question: What would you say to someone who feels like they are not good enough to pursue the path they want?</p> <p>Konstantinos: I started programming without a university degree and with an entirely different background. Patience and persistence truly are the keys to success; it might sound cliché, but they were precisely what helped me. In less than six months, with long hours of focused work, consistency, and determination, I managed to get hired for my dream job simply because I believed in myself and wanted it badly enough.</p> <h3>Yinjian Huang: Product Designer (AI, SaaS), 5 Years Of Experience</h3> <p><img src="https://files.smashing.media/articles/pivoting-career-without-starting-from-scratch/yinjian-huang-pic.jpg" /><strong>Background:</strong> Yinjian <a href="https://yinh.webflow.io/">works in product design</a> across AI, SaaS, and B2B products. Her work focuses on building early-stage products, shaping user experience, and working closely with engineering and product teams on AI-driven features.</p> <p>Question: Looking back, what is one decision you made that you think others in your field could learn from?</p> <p>Yinjian: Keep learning across disciplines: design, PM, AI, and engineering. The broader your fluency, the better you can design and reason holistically. Cross‑functional knowledge compounds and unlocks better product judgment.</p> <p>Question: What do you wish you had known about handling stress, workload, or expectations earlier in your career?</p> <p>Yinjian: Communicate early if the workload is too heavy or a deadline is at risk. Flag constraints, renegotiate scope, and make trade‑offs explicit. Early clarity beats late surprises.</p> <p>Question: How do you evaluate whether a new opportunity or challenge is worth taking on?</p> <p>Yinjian: I evaluate opportunities on three axes: the learning delta (skills I’ll gain), the people I’ll work with, and alignment with my interests.</p> <p>Question: What advice would you give to someone who wants to grow in your field but feels stuck or unsure of where to start?</p> <p>Yinjian: Growth can feel overwhelming at first because there’s so much to learn. Build a simple roadmap: start by making your craft solid, then expand adjacent skills. Find the best resources, practice relentlessly, and seek feedback on tight cycles. Momentum comes from small, consistent wins.</p> The Bottom Line <p>This whole piece is just a reminder that <strong>it’s fine to question where you are and want something different</strong>. Everyone hits that moment when things stop feeling exciting, and you start wondering what’s next. It doesn’t mean you’ve failed. It usually means you’re growing.</p> <p>I wrote this because I’ve been in that space too, still figuring out what direction makes the most sense for me. So if you’re feeling stuck or unsure, I hope this gave you something useful. You don’t need to have everything sorted out right now. Just keep learning, stay curious, and take one small step at a time.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2026/01/pivoting-career-without-starting-from-scratch/</span> hello@smashingmagazine.com (Joas Pambou) <![CDATA[Countdown To New Adventures (January 2026 Wallpapers Edition)]]> https://smashingmagazine.com/2025/12/desktop-wallpaper-calendars-january-2026/ https://smashingmagazine.com/2025/12/desktop-wallpaper-calendars-january-2026/ Wed, 31 Dec 2025 09:00:00 GMT Whether 2026 has already begun as you’re reading this or you’re still waiting for the big countdown to start, how about some new wallpapers to get your desktop ready for the new year? We’ve got you covered. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/desktop-wallpaper-calendars-january-2026/</span> <p>A new year is the perfect opportunity to break free from routines, reset habits, and refine how you do things. And while you may have made plenty of New Year’s resolutions, sometimes it’s the <strong>small changes that work wonders</strong> — a tidy desktop and a new wallpaper, for example, that give you a little motivation boost when you need it.</p> <p>In this post, you’ll find desktop wallpapers to accompany you through your <strong>first adventures of 2026</strong>, to make you smile, and to bring some happy pops of color to a cold and dark winter day. As every month since we started our monthly <a href="https://www.smashingmagazine.com/category/wallpapers">wallpapers series</a> more than 14 years ago, all of them were created with love by <strong>artists and designers from across the globe</strong> and can be downloaded for free.</p> <p>A huge <strong>thank-you</strong> to everyone who shared their designs with us this month — you are truly <em>smashing</em>! Have a happy and healthy new year, everyone!</p> <ul> <li>You can <strong>click on every image to see a larger preview</strong>.</li> <li>We respect and carefully consider the ideas and motivation behind each and every artist’s work. This is why we give all artists the <strong>full freedom to explore their creativity</strong> and express emotions and experience through their works. This is also why the themes of the wallpapers weren’t anyhow influenced by us but rather designed from scratch by the artists themselves.</li> <li><strong><a href="https://www.smashingmagazine.com/desktop-wallpaper-calendars-join-in/">Submit your wallpaper design!</a></strong> 🎨<br />We are always <strong>looking for creative talent</strong> and would love to feature <em>your</em> desktop wallpaper in one of our upcoming posts. <a href="https://www.smashingmagazine.com/desktop-wallpaper-calendars-join-in/">Join in ↬</a></li> </ul> Moonwalker <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/jan-26-moonwalker-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2026/jan-26-moonwalker-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/jan-26-moonwalker-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/cal/jan-26-moonwalker-cal-3840x2160.png">3840x2160</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/moonwalker/nocal/jan-26-moonwalker-nocal-3840x2160.png">3840x2160</a></li> </ul> Home Office <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/jan-26-home-office-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2026/jan-26-home-office-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/jan-26-home-office-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/cal/jan-26-home-office-cal-3840x2160.png">3840x2160</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/home-office/nocal/jan-26-home-office-nocal-3840x2160.png">3840x2160</a></li> </ul> Winter Magic At Home <p>“Snow drifted quietly as a child and their loyal dog paused beside the glowing Christmas tree, each ornament holding a small piece of winter wonder. In that still moment, the cold faded away, replaced by warmth, curiosity, and the simple joy of being together.” — Designed by <a href="https://www.popwebdesign.net/">PopArt Studio</a> from Serbia.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/jan-26-winter-magic-at-home-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2026/jan-26-winter-magic-at-home-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/jan-26-winter-magic-at-home-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-320x480.png">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/cal/jan-26-winter-magic-at-home-cal-2560x1440.png">2560x1440</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-320x480.png">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/winter-magic-at-home/nocal/jan-26-winter-magic-at-home-nocal-2560x1440.png">2560x1440</a></li> </ul> Enjoy The Little Things <p>“Inspired by the little things in life! Stop for a moment and look around — find the little things that can bring true joy to you. This illustration is hand-drawn on a piece of paper, then scanned and adjusted with Photoshop (for the calendar UI). No AI tools have been used! Enjoy!” — Designed by <a href="https://webdesigner.bg">Martin Nikolchev</a> from Bulgaria.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/jan-26-enjoy-the-little-things-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2026/jan-26-enjoy-the-little-things-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/jan-26-enjoy-the-little-things-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-320x480.png">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/cal/jan-26-enjoy-the-little-things-cal-2560x1440.png">2560x1440</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-320x480.png">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/enjoy-the-little-things/nocal/jan-26-enjoy-the-little-things-nocal-2560x1440.png">2560x1440</a></li> </ul> A Message Of Peace And Hope <p>“In the city where I live, the weather in January could be unpredictable. Sometimes it is freezing cold, and sometimes there is rain and no snow at all. I like it when there is an open sky and the sun is shining. The sky is cold and has a wonderful blue color, especially in the evenings. You look at it and think about what heart desires the most.” — Designed by Wolfie from Russia.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/hope/jan-26-hope-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2026/jan-26-hope-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/hope/jan-26-hope-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/hope/cal/jan-26-hope-cal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/hope/cal/jan-26-hope-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/hope/cal/jan-26-hope-cal-1600x900.png">1600x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/hope/cal/jan-26-hope-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/hope/cal/jan-26-hope-cal-2560x1440.png">2560x1440</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/hope/nocal/jan-26-hope-nocal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/hope/nocal/jan-26-hope-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/hope/nocal/jan-26-hope-nocal-1600x900.png">1600x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/hope/nocal/jan-26-hope-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/hope/nocal/jan-26-hope-nocal-2560x1440.png">2560x1440</a></li> </ul> Snowflakes <p>Designed by <a href="https://uxdesign.berlin/">Eike Otto</a> from Berlin, Germany.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/jan-26-snowflakes-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2026/jan-26-snowflakes-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/jan-26-snowflakes-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-320x480.jpg">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-640x480.jpg">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-800x480.jpg">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-800x600.jpg">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-1024x768.jpg">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-1024x1024.jpg">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-1152x864.jpg">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-1280x720.jpg">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-1280x800.jpg">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-1280x960.jpg">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-1280x1024.jpg">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-1366x768.jpg">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-1440x900.jpg">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-1440x1050.jpg">1440x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-1600x1200.jpg">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-1680x1050.jpg">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-1680x1200.jpg">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-1920x1080.jpg">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-1920x1200.jpg">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/cal/jan-26-snowflakes-cal-1920x1440.jpg">1920x1440</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-320x480.jpg">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-640x480.jpg">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-800x480.jpg">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-800x600.jpg">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-1024x768.jpg">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-1152x864.jpg">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-1280x720.jpg">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-1280x800.jpg">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-1280x960.jpg">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-1366x768.jpg">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-1440x900.jpg">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-1440x1050.jpg">1440x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/snowflakes/nocal/jan-26-snowflakes-nocal-1920x1440.jpg">1920x1440</a></li> </ul> Blue Monday <p>“Blue Monday may be a PR stunt, but your mental health isn’t. Do your best to protect it all year round.” — Designed by <a href="https://www.gingeritsolutions.com/">Ginger It Solutions</a> from Serbia.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/jan-26-blue-monday-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2026/jan-26-blue-monday-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/jan-26-blue-monday-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-320x480.png">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/cal/jan-26-blue-monday-cal-2560x1440.png">2560x1440</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-320x480.png">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-26/blue-monday/nocal/jan-26-blue-monday-nocal-2560x1440.png">2560x1440</a></li> </ul> Open The Doors Of The New Year <p>“January is the first month of the year and usually the coldest winter month in the Northern hemisphere. The name of the month of January comes from ‘ianua’, the Latin word for door, so this month denotes the door to the new year and a new beginning. Let’s open the doors of the new year together and hope it will be the best so far!” — Designed by <a href="https://www.popwebdesign.net/index_eng.html">PopArt Studio</a> from Serbia.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/67eedea6-aadd-4f56-8202-eaa25e8dc617/jan-18-open-the-doors-of-the-new-year-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9401740e-29f2-4dc7-828b-a7558c7e82a7/jan-18-open-the-doors-of-the-new-year-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9401740e-29f2-4dc7-828b-a7558c7e82a7/jan-18-open-the-doors-of-the-new-year-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-640x480.jpg">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-18/open-the-doors-of-the-new-year/nocal/jan-18-open-the-doors-of-the-new-year-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Winter Leaves <p>Designed by Nathalie Ouederni from France.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b6387e8e-0e34-450e-9755-5b4df61bfa7f/jan-15-winter-leaves-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/742d1dcf-9594-4e83-9c0f-dad564dd3e97/jan-15-winter-leaves-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/742d1dcf-9594-4e83-9c0f-dad564dd3e97/jan-15-winter-leaves-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-15/winter-leaves/nocal/jan-15-winter-leaves-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/winter-leaves/nocal/jan-15-winter-leaves-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/winter-leaves/nocal/jan-15-winter-leaves-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/winter-leaves/nocal/jan-15-winter-leaves-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/winter-leaves/nocal/jan-15-winter-leaves-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/winter-leaves/nocal/jan-15-winter-leaves-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/winter-leaves/nocal/jan-15-winter-leaves-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/winter-leaves/nocal/jan-15-winter-leaves-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Bird Bird Bird Bird <p>“Just four birds, ready for winter.” — Designed by <a href="https://vlad.studio/">Vlad Gerasimov</a> from Georgia.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2024/jan-23-bird-bird-bird-bird-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2024/jan-23-bird-bird-bird-bird-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2024/jan-23-bird-bird-bird-bird-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-800x480.jpg">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-800x600.jpg">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-1024x600.jpg">1024x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-1024x768.jpg">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-1152x864.jpg">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-1280x720.jpg">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-1280x800.jpg">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-1280x960.jpg">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-1366x768.jpg">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-1440x900.jpg">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-1440x960.jpg">1440x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-1600x900.jpg">1600x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-2560x1440.jpg">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-2560x1600.jpg">2560x1600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-2880x1800.jpg">2880x1800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-3072x1920.jpg">3072x1920</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-3840x2160.jpg">3840x2160</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/bird-bird-bird-bird/nocal/jan-23-bird-bird-bird-bird-nocal-5120x2880.jpg">5120x2880</a></li> </ul> Start Somewhere <p>“If we wait until we’re ready, we’ll be waiting for the rest of our lives. Start today — somewhere, anywhere.” — Designed by Shawna Armstrong from the United States.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1566d210-86b2-4b7c-9f6a-d9d23622e7fc/jan-15-start-somewhere-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7b558857-a5ad-464e-a87e-e8e315b5c250/jan-15-start-somewhere-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7b558857-a5ad-464e-a87e-e8e315b5c250/jan-15-start-somewhere-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-15/start-somewhere/nocal/jan-15-start-somewhere-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/start-somewhere/nocal/jan-15-start-somewhere-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/start-somewhere/nocal/jan-15-start-somewhere-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/start-somewhere/nocal/jan-15-start-somewhere-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/start-somewhere/nocal/jan-15-start-somewhere-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/start-somewhere/nocal/jan-15-start-somewhere-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/start-somewhere/nocal/jan-15-start-somewhere-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/start-somewhere/nocal/jan-15-start-somewhere-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/start-somewhere/nocal/jan-15-start-somewhere-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/start-somewhere/nocal/jan-15-start-somewhere-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/start-somewhere/nocal/jan-15-start-somewhere-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/start-somewhere/nocal/jan-15-start-somewhere-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Squirrel Appreciation Day <p>“Join us in honoring our furry little forest friends this Squirrel Appreciation Day! Whether they’re gathering nuts, building cozy homes, or brightening up winter days with their playful antics, squirrels remind us to treasure nature’s small wonders. Let’s show them some love today!” — Designed by <a href="https://www.popwebdesign.net/">PopArt Studio</a> from Serbia.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2026/jan-25-celebrate-squirrel-appreciation-day-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2026/jan-25-celebrate-squirrel-appreciation-day-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2026/jan-25-celebrate-squirrel-appreciation-day-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-25/celebrate-squirrel-appreciation-day/nocal/jan-25-celebrate-squirrel-appreciation-day-nocal-2560x1440.png">2560x1440</a></li></ul> Cold… Penguins! <p>“The new year is here! We waited for it like penguins. We look at the snow and enjoy it! — Designed by <a href="https://www.silocreativo.com/en">Veronica Valenzuela</a> from Spain.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9d7634dd-0436-423c-8e77-46ace53bc658/jan-19-cold-penguins-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/14ea6ccb-56ee-446b-a7b2-35c1db114e61/jan-19-cold-penguins-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/14ea6ccb-56ee-446b-a7b2-35c1db114e61/jan-19-cold-penguins-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-19/cold-penguins/nocal/jan-19-cold-penguins-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-19/cold-penguins/nocal/jan-19-cold-penguins-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-19/cold-penguins/nocal/jan-19-cold-penguins-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-19/cold-penguins/nocal/jan-19-cold-penguins-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-19/cold-penguins/nocal/jan-19-cold-penguins-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-19/cold-penguins/nocal/jan-19-cold-penguins-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-19/cold-penguins/nocal/jan-19-cold-penguins-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-19/cold-penguins/nocal/jan-19-cold-penguins-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-19/cold-penguins/nocal/jan-19-cold-penguins-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-19/cold-penguins/nocal/jan-19-cold-penguins-nocal-2560x1440.png">2560x1440</a></li> </ul> Cheerful Chimes City <p>Designed by <a href="https://www.designstudiouiux.com/">Design Studio</a> from India.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2025/jan-24-cheerful-chimes-city-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2025/jan-24-cheerful-chimes-city-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2025/jan-24-cheerful-chimes-city-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/cheerful-chimes-city/nocal/jan-24-cheerful-chimes-city-nocal-1440x900.jpg">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/cheerful-chimes-city/nocal/jan-24-cheerful-chimes-city-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/cheerful-chimes-city/nocal/jan-24-cheerful-chimes-city-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/cheerful-chimes-city/nocal/jan-24-cheerful-chimes-city-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/cheerful-chimes-city/nocal/jan-24-cheerful-chimes-city-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/cheerful-chimes-city/nocal/jan-24-cheerful-chimes-city-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/cheerful-chimes-city/nocal/jan-24-cheerful-chimes-city-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/cheerful-chimes-city/nocal/jan-24-cheerful-chimes-city-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Boom! <p>Designed by <a href="https://www.doud.be">Elise Vanoorbeek</a> from Belgium.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f2e38180-788a-49de-a0e1-ea967496da96/jan-15-boom-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5ff3fbbc-6e4a-4ce3-9d95-b02aecc722c9/jan-15-boom-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5ff3fbbc-6e4a-4ce3-9d95-b02aecc722c9/jan-15-boom-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-15/boom/nocal/jan-15-boom-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/boom/nocal/jan-15-boom-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/boom/nocal/jan-15-boom-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/boom/nocal/jan-15-boom-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/boom/nocal/jan-15-boom-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/boom/nocal/jan-15-boom-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/boom/nocal/jan-15-boom-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/boom/nocal/jan-15-boom-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/boom/nocal/jan-15-boom-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/boom/nocal/jan-15-boom-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/boom/nocal/jan-15-boom-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/boom/nocal/jan-15-boom-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/boom/nocal/jan-15-boom-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/boom/nocal/jan-15-boom-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/boom/nocal/jan-15-boom-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/boom/nocal/jan-15-boom-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Peaceful Mountains <p>“When all the festivities are over, all we want is some peace and rest. That’s why I made this simple flat art wallpaper with peaceful colors.” — Designed by Jens Gilis from Belgium.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4b1e8397-afe8-4e7b-a391-3b79a809d1d0/jan-16-peaceful-mountains-nocal-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2b108ba6-55e4-47b1-8c7d-6e230361204d/jan-16-peaceful-mountains-nocal-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2b108ba6-55e4-47b1-8c7d-6e230361204d/jan-16-peaceful-mountains-nocal-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-16/peaceful-mountains/nocal/jan-16-peaceful-mountains-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/peaceful-mountains/nocal/jan-16-peaceful-mountains-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/peaceful-mountains/nocal/jan-16-peaceful-mountains-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/peaceful-mountains/nocal/jan-16-peaceful-mountains-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/peaceful-mountains/nocal/jan-16-peaceful-mountains-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/peaceful-mountains/nocal/jan-16-peaceful-mountains-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/peaceful-mountains/nocal/jan-16-peaceful-mountains-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/peaceful-mountains/nocal/jan-16-peaceful-mountains-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/peaceful-mountains/nocal/jan-16-peaceful-mountains-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/peaceful-mountains/nocal/jan-16-peaceful-mountains-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/peaceful-mountains/nocal/jan-16-peaceful-mountains-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/peaceful-mountains/nocal/jan-16-peaceful-mountains-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/peaceful-mountains/nocal/jan-16-peaceful-mountains-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/peaceful-mountains/nocal/jan-16-peaceful-mountains-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/peaceful-mountains/nocal/jan-16-peaceful-mountains-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/peaceful-mountains/nocal/jan-16-peaceful-mountains-nocal-2560x1440.png">2560x1440</a></li> </ul> Yogabear <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2024/jan-23-yogabear-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2024/jan-23-yogabear-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2024/jan-23-yogabear-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-23/yogabear/nocal/jan-23-yogabear-nocal-3840x2160.png">3840x2160</a></li> </ul> Be Awesome Today <p>“A little daily motivation to keep your cool during the month of January.” — Designed by Amalia Van Bloom from the United States.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/96b2d588-b8a3-417c-81c6-2ebdf84a8664/jan-14-be-awesome-today-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5ee17a4f-58d6-444d-a3ed-fb9c81319718/jan-14-be-awesome-today-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5ee17a4f-58d6-444d-a3ed-fb9c81319718/jan-14-be-awesome-today-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-14/be-awesome-today/nocal/jan-14-be-awesome-today-nocal-640x960.jpg">640x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/be-awesome-today/nocal/jan-14-be-awesome-today-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/be-awesome-today/nocal/jan-14-be-awesome-today-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/be-awesome-today/nocal/jan-14-be-awesome-today-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/be-awesome-today/nocal/jan-14-be-awesome-today-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/be-awesome-today/nocal/jan-14-be-awesome-today-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/be-awesome-today/nocal/jan-14-be-awesome-today-nocal-2560x1440.jpg">2560x1440</a></li> </ul> A Fresh Start <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2025/jan-24-a-fresh-start-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2025/jan-24-a-fresh-start-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2025/jan-24-a-fresh-start-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-24/a-fresh-start/nocal/jan-24-a-fresh-start-nocal-3840x2160.png">3840x2160</a></li> </ul> Winter Getaway <p>“What could be better than a change of scene for a week? Even if you are too busy, just think about it.” — Designed by <a href="https://dribbble.com/izhik">Igor Izhik</a> from Canada.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5738d255-78d6-4dd5-b513-4b574540c194/jan-16-winter-getaway-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1f0c24ce-e777-4aa5-b473-4b4af7f2ac36/jan-16-winter-getaway-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1f0c24ce-e777-4aa5-b473-4b4af7f2ac36/jan-16-winter-getaway-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-16/winter-getaway/nocal/jan-16-winter-getaway-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/winter-getaway/nocal/jan-16-winter-getaway-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/winter-getaway/nocal/jan-16-winter-getaway-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/winter-getaway/nocal/jan-16-winter-getaway-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/winter-getaway/nocal/jan-16-winter-getaway-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/winter-getaway/nocal/jan-16-winter-getaway-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/winter-getaway/nocal/jan-16-winter-getaway-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/winter-getaway/nocal/jan-16-winter-getaway-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/winter-getaway/nocal/jan-16-winter-getaway-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/winter-getaway/nocal/jan-16-winter-getaway-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/winter-getaway/nocal/jan-16-winter-getaway-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/winter-getaway/nocal/jan-16-winter-getaway-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/winter-getaway/nocal/jan-16-winter-getaway-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/winter-getaway/nocal/jan-16-winter-getaway-nocal-2560x1440.jpg">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/winter-getaway/nocal/jan-16-winter-getaway-nocal-2560x1600.jpg">2560x1600</a></li> </ul> Happy New Year ’86 <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2026/jan-25-happy-new-year-86-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2026/jan-25-happy-new-year-86-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2026/jan-25-happy-new-year-86-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/jan-25/happy-new-year-86/nocal/jan-25-happy-new-year-86-nocal-3840x2160.png">3840x2160</a></li> </ul> Angel In Snow <p>Designed by <a href="https://www.behance.net/DesignStudioBrainer">Brainer</a> from Ukraine.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/77fb0123-e3c6-4390-8d96-50bf0d1ee993/jan-17-angel-in-snow-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6dc27f8f-f2bc-4347-a8cf-0d5950ff8435/jan-17-angel-in-snow-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6dc27f8f-f2bc-4347-a8cf-0d5950ff8435/jan-17-angel-in-snow-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-17/angel-in-snow/nocal/jan-17-angel-in-snow-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/angel-in-snow/nocal/jan-17-angel-in-snow-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/angel-in-snow/nocal/jan-17-angel-in-snow-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/angel-in-snow/nocal/jan-17-angel-in-snow-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/angel-in-snow/nocal/jan-17-angel-in-snow-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/angel-in-snow/nocal/jan-17-angel-in-snow-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/angel-in-snow/nocal/jan-17-angel-in-snow-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/angel-in-snow/nocal/jan-17-angel-in-snow-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/angel-in-snow/nocal/jan-17-angel-in-snow-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/angel-in-snow/nocal/jan-17-angel-in-snow-nocal-1680x1260.jpg">1680x1260</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/angel-in-snow/nocal/jan-17-angel-in-snow-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/angel-in-snow/nocal/jan-17-angel-in-snow-nocal-1920x1440.jpg">1920x1440</a></li> </ul> January Fish <p>“My fish tank at home inspired me to make a wallpaper with a fish.” — Designed by Arno De Decker from Belgium.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8008962a-2b4e-45e2-9a46-5df8aeb27a29/jan-15-january-fish-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0ea1b206-d97d-4545-a698-02055089c51b/jan-15-january-fish-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0ea1b206-d97d-4545-a698-02055089c51b/jan-15-january-fish-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-15/january-fish/nocal/jan-15-january-fish-nocal-2560x1440.png">2560x1440</a></li> </ul> Dare To Be You <p>“The new year brings new opportunities for each of us to become our true selves. I think that no matter what you are — like this little monster — you should dare to be the true you without caring what others may think. Happy New Year!” — Designed by <a href="https://www.mariakellerac.com">Maria Keller</a> from Mexico.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1923cade-f8de-4beb-b567-407bf165f4b7/jan-16-dare-to-be-you-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/db4831f3-a7c5-4d49-b410-5ec9d7d8bdbb/jan-16-dare-to-be-you-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/db4831f3-a7c5-4d49-b410-5ec9d7d8bdbb/jan-16-dare-to-be-you-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-640x1136.png">640x1136</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-750x1334.png">750x1334</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-1242x2208.png">1242x2208</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-2560x1440.png">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/dare-to-be-you/nocal/jan-16-dare-to-be-you-nocal-2880x1800.png">2880x1800</a></li> </ul> Oaken January <p>“In our country, Christmas is celebrated in January when oak branches and leaves are burnt to symbolize the beginning of the new year and new life. It’s the time when we gather with our families and celebrate the arrival of the new year in a warm and cuddly atmosphere.” — Designed by <a href="https://www.popwebdesign.net/index_eng.html">PopArt Studio</a> from Serbia.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/11e0bc06-a288-404b-935f-d5803b065e81/jan-16-oaken-january-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/19bb68e6-267d-4ecc-b045-1453831901bc/jan-16-oaken-january-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/19bb68e6-267d-4ecc-b045-1453831901bc/jan-16-oaken-january-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-640x480.jpg">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/oaken-january/nocal/jan-16-oaken-january-nocal-2560x1440.jpg">2560x1440</a></li> </ul> The Little Paradox <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/aa59d813-bc65-4174-ac71-20fd6cf0d310/jan-22-the-little-paradox-nocal-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/eae99c1b-bf78-401e-8073-bd46970bd553/jan-22-the-little-paradox-nocal-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/eae99c1b-bf78-401e-8073-bd46970bd553/jan-22-the-little-paradox-nocal-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-2560x1440.png">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/the-little-paradox/nocal/jan-22-the-little-paradox-nocal-3840x2160.png">3840x2160</a></li> </ul> New Year’s Resolution <p>Designed by <a href="https://www.doud.be">Elise Vanoorbeek</a> from Belgium.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2024/jan-14-new-years-resolution-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2024/jan-14-new-years-resolution-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-january-2024/jan-14-new-years-resolution-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-14/new-years-resolution/nocal/jan-14-new-years-resolution-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/new-years-resolution/nocal/jan-14-new-years-resolution-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/new-years-resolution/nocal/jan-14-new-years-resolution-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/new-years-resolution/nocal/jan-14-new-years-resolution-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/new-years-resolution/nocal/jan-14-new-years-resolution-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/new-years-resolution/nocal/jan-14-new-years-resolution-nocal-1440x1050.jpg">1440x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/new-years-resolution/nocal/jan-14-new-years-resolution-nocal-1400x900.jpg">1400x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/new-years-resolution/nocal/jan-14-new-years-resolution-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/new-years-resolution/nocal/jan-14-new-years-resolution-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/new-years-resolution/nocal/jan-14-new-years-resolution-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/new-years-resolution/nocal/jan-14-new-years-resolution-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/new-years-resolution/nocal/jan-14-new-years-resolution-nocal-2560x1440.jpg">2560x1440</a></li></ul> Don Quijote, Here We Go! <p>“This year we are going to travel through books, and you couldn’t start with a better one than <em>Don Quijote de la Mancha</em>!” — Designed by <a href="https://www.silocreativo.com/en">Veronica Valenzuela Jimenez</a> from Spain.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3dafe6e2-fb6d-48b6-b421-a4e1908374dd/jan-22-don-quijote-here-we-go-nocal-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/338b2187-1a6c-4861-8c35-9030ad7fdbe8/jan-22-don-quijote-here-we-go-nocal-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/338b2187-1a6c-4861-8c35-9030ad7fdbe8/jan-22-don-quijote-here-we-go-nocal-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-22/don-quijote-here-we-go/nocal/jan-22-don-quijote-here-we-go-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/don-quijote-here-we-go/nocal/jan-22-don-quijote-here-we-go-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/don-quijote-here-we-go/nocal/jan-22-don-quijote-here-we-go-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/don-quijote-here-we-go/nocal/jan-22-don-quijote-here-we-go-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/don-quijote-here-we-go/nocal/jan-22-don-quijote-here-we-go-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/don-quijote-here-we-go/nocal/jan-22-don-quijote-here-we-go-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/don-quijote-here-we-go/nocal/jan-22-don-quijote-here-we-go-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/don-quijote-here-we-go/nocal/jan-22-don-quijote-here-we-go-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/don-quijote-here-we-go/nocal/jan-22-don-quijote-here-we-go-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-22/don-quijote-here-we-go/nocal/jan-22-don-quijote-here-we-go-nocal-2560x1440.png">2560x1440</a></li> </ul> Rubber Ducky Day <p>“Winter can be such a gloomy time of the year. The sun sets earlier, the wind feels colder, and our heating bills skyrocket. I hope to brighten up your month with my wallpaper for Rubber Ducky Day!” — Designed by Ilya Plyusnin from Belgium.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/717cc825-7e2b-4626-858f-fb5f97050689/jan-20-rubber-ducky-day-nocal-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7a4c803c-5c7e-41eb-9695-1dc8061a00ec/jan-20-rubber-ducky-day-nocal-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7a4c803c-5c7e-41eb-9695-1dc8061a00ec/jan-20-rubber-ducky-day-nocal-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-20/rubber-ducky-day/nocal/jan-20-rubber-ducky-day-nocal-2560x1440.png">2560x1440</a></li> </ul> A New Beginning <p>“I wanted to do a lettering-based wallpaper because I love lettering. I chose January because for a lot of people the new year is perceived as a new beginning and I wish to make them feel as positive about it as possible! The idea is to make them feel like the new year is (just) the start of something really great.” — Designed by <a href="https://carolinaseq.weebly.com">Carolina Sequeira</a> from Portugal.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d13c1d01-1940-4921-9002-c0d7ebe16ddb/jan-19-a-new-beginning-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/752814fe-4755-4f8f-80ea-92df0920d427/jan-19-a-new-beginning-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/752814fe-4755-4f8f-80ea-92df0920d427/jan-19-a-new-beginning-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-19/a-new-beginning/nocal/jan-19-a-new-beginning-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-19/a-new-beginning/nocal/jan-19-a-new-beginning-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-19/a-new-beginning/nocal/jan-19-a-new-beginning-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-19/a-new-beginning/nocal/jan-19-a-new-beginning-nocal-2560x1440.png">2560x1440</a></li> </ul> Japanese New Year <p>Designed by Evacomics from Singapore.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/31c689b8-6830-4203-89c8-26aeab5d09a2/jan-14-japanese-new-year-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/21284006-7e47-408c-a240-09658d40ea54/jan-14-japanese-new-year-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/21284006-7e47-408c-a240-09658d40ea54/jan-14-japanese-new-year-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-14/japanese-new-year/nocal/jan-14-japanese-new-year-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/japanese-new-year/nocal/jan-14-japanese-new-year-nocal-768x1024.jpg">768x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/japanese-new-year/nocal/jan-14-japanese-new-year-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/japanese-new-year/nocal/jan-14-japanese-new-year-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/japanese-new-year/nocal/jan-14-japanese-new-year-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/japanese-new-year/nocal/jan-14-japanese-new-year-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/japanese-new-year/nocal/jan-14-japanese-new-year-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/japanese-new-year/nocal/jan-14-japanese-new-year-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Happy Hot Tea Month <p>“You wake me up to a beautiful day; lift my spirit when I’m feeling blue. When I’m home you relieve me of the long day’s stress. You help me have a good time with my loved ones; give me company when I’m all alone. You’re none other than my favourite cup of hot tea.” — Designed by <a href="https://acodez.in/">Acodez IT Solutions</a> from India.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5c237f3c-4bf8-4bf9-ba83-d6a8be140ad4/jan-17-happy-hot-tea-month-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5ccd35ef-a212-48b8-8806-f3ece005ab0a/jan-17-happy-hot-tea-month-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5ccd35ef-a212-48b8-8806-f3ece005ab0a/jan-17-happy-hot-tea-month-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/happy-hot-tea-month/nocal/jan-17-happy-hot-tea-month-nocal-2560x1440.png">2560x1440</a></li> </ul> Don’t Forget Your Vitamins <p>“Discover the seasonal fruits and vegetables. In January: apple and banana enjoying the snow!” — Designed by Vitaminas Design from Spain.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3988d7cd-8cb8-41cd-87df-99400f646d20/jan-14-vitamins-seasonal-fruits-and-vegetables-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/be59751a-e10d-4b24-a2ff-65b4f2ad5a0e/jan-14-vitamins-seasonal-fruits-and-vegetables-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/be59751a-e10d-4b24-a2ff-65b4f2ad5a0e/jan-14-vitamins-seasonal-fruits-and-vegetables-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-14/vitamins-seasonal-fruits-and-vegetables/nocal/jan-14-vitamins-seasonal-fruits-and-vegetables-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/vitamins-seasonal-fruits-and-vegetables/nocal/jan-14-vitamins-seasonal-fruits-and-vegetables-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/vitamins-seasonal-fruits-and-vegetables/nocal/jan-14-vitamins-seasonal-fruits-and-vegetables-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/vitamins-seasonal-fruits-and-vegetables/nocal/jan-14-vitamins-seasonal-fruits-and-vegetables-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/vitamins-seasonal-fruits-and-vegetables/nocal/jan-14-vitamins-seasonal-fruits-and-vegetables-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-14/vitamins-seasonal-fruits-and-vegetables/nocal/jan-14-vitamins-seasonal-fruits-and-vegetables-nocal-2560x1440.png">2560x1440</a></li> </ul> Wolf Month <p>“Wolf-month (in Dutch ‘wolfsmaand’) is another name for January.” — Designed by Chiara Faes from Belgium.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a2e8423f-297f-4e8c-bf75-4b88421cfd44/jan-16-wolf-month-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ed76af7e-eabb-4e78-9dcc-43a6733894c3/jan-16-wolf-month-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ed76af7e-eabb-4e78-9dcc-43a6733894c3/jan-16-wolf-month-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-16/wolf-month/nocal/jan-16-wolf-month-nocal-640x480.jpg">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/wolf-month/nocal/jan-16-wolf-month-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/wolf-month/nocal/jan-16-wolf-month-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/wolf-month/nocal/jan-16-wolf-month-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/wolf-month/nocal/jan-16-wolf-month-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/wolf-month/nocal/jan-16-wolf-month-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/wolf-month/nocal/jan-16-wolf-month-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/wolf-month/nocal/jan-16-wolf-month-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/wolf-month/nocal/jan-16-wolf-month-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/wolf-month/nocal/jan-16-wolf-month-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/wolf-month/nocal/jan-16-wolf-month-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/wolf-month/nocal/jan-16-wolf-month-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/wolf-month/nocal/jan-16-wolf-month-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/wolf-month/nocal/jan-16-wolf-month-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/wolf-month/nocal/jan-16-wolf-month-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/wolf-month/nocal/jan-16-wolf-month-nocal-2560x1440.jpg">2560x1440</a></li> </ul> A New Start <p>“The new year brings hope, festivity, lots and lots of resolutions, and many more goals that need to be achieved.” — Designed by <a href="https://www.damnperfect.com">Damn Perfect</a> from India.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ce83bcbc-a48c-4fc0-8b68-e8a2fa909e64/jan-17-a-new-start-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a0131a75-0786-4acc-8a89-b21a1ff7227a/jan-17-a-new-start-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a0131a75-0786-4acc-8a89-b21a1ff7227a/jan-17-a-new-start-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-640x480.jpg">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-17/a-new-start/nocal/jan-17-a-new-start-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Get Featured Next Month <p>Feeling inspired? We’ll publish the <strong>February wallpapers</strong> on January 31, so if you’d like to be a part of the collection, please don’t hesitate to <a href="https://www.smashingmagazine.com/desktop-wallpaper-calendars-join-in/">submit your design</a>. We are already looking forward to it!</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/desktop-wallpaper-calendars-january-2026/</span> hello@smashingmagazine.com (Cosima Mielke) <![CDATA[How To Design For (And With) Deaf People]]> https://smashingmagazine.com/2025/12/how-design-for-with-deaf-people/ https://smashingmagazine.com/2025/12/how-design-for-with-deaf-people/ Tue, 30 Dec 2025 10:00:00 GMT Practical UX guidelines to keep in mind for 466 million people who experience hearing loss. More design patterns in <a href="https://smart-interface-design-patterns.com/">Smart Interface Design Patterns</a>, a **friendly video course on UX** and design patterns by Vitaly. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/how-design-for-with-deaf-people/</span> <p>When we think about people who are deaf, we often assume stereotypes, such as “disabled” older adults with <strong>hearing aids</strong>. However, this perception is far from the truth and often leads to poor decisions and broken products.</p> <p>Let’s look at when and how deafness emerges, and how to design better experiences <strong>for people with hearing loss</strong>.</p> <p><img src="https://files.smashing.media/articles/how-design-for-with-deaf-people/1-sign-language.jpg" /></p> Deafness Is A Spectrum <p>Deafness spans a <strong>broad continuum</strong>, from minor to profound hearing loss. Around 90–95% of deaf people <a href="https://scholarworks.wmich.edu/jssw/vol51/iss1/11/">come from hearing families</a>, and deafness often isn’t merely a condition that people are born with. It frequently occurs due to <strong>exposure to loud noises</strong>, and it also emerges with age, disease, and accidents.</p> <p><img src="https://files.smashing.media/articles/how-design-for-with-deaf-people/2-chart-sound-frequencies-decibel-levels.jpg" /></p> <p>The loudness of sound is measured in units called <strong>decibels (dB)</strong>. Everybody is on the <a href="https://www.didyousaydeaf.com/hearing-loss-and-how-hearing-loss-works">spectrum of deafness</a>, from normal hearing (up to 15 dB) to profound hearing loss (91+ dB):</p> <ul> <li><strong>Slight Hearing Loss</strong>, 16–25 dB<br />At 16 dB hearing loss, a person can miss up to 10% of speech when a speaker is at a distance greater than 3 feet. </li> <li><strong>Mild hearing loss</strong>, 26–40 dB<br />Soft sounds are hard to hear, including whispering, which is around 40 dB in volume. It’s more difficult to hear soft speech sounds spoken at a normal volume. At 40dB hearing loss, a person may miss 50% of meeting discussions. </li> <li><strong>Moderate hearing loss</strong>, 41–55 dB<br />A person may hear almost no speech when another person is talking at normal volume. At a 50dB hearing loss, a person may not pick up to 80% of speech. </li> <li><strong>Moderately Severe Hearing Loss</strong>, 56–70 dB<br />A person may have problems hearing the sounds of a dishwasher (60dB). At 70 dB, they might miss almost all speech. </li> <li><strong>Severe Hearing Loss</strong>, 71–90 dB<br />A person will hear no speech when a person is talking at a normal level. They may hear only some very loud noises: vacuum (70 dB), blender (78 dB), hair dryer (90 dB).</li> <li><strong>Profound Hearing Loss</strong>, 91+ dB<br />Hear no speech and at most very loud sounds such as a music player at full volume (100 dB), which would be damaging for people with normal hearing, or a car horn (110 dB). </li> </ul> <p>It’s worth mentioning that loss of hearing can also be situational and temporary, as people with “normal” hearing (0 to 25 dB hearing loss) will always encounter situations where they can’t hear, e.g., due to <strong>noisy environments</strong>.</p> Useful Things To Know About Deafness <p>Assumptions are always dangerous, and in the case of deafness, there are quite a few that aren’t accurate. For example, most deaf people actually do not know a sign language — it’s only around <a href="https://www.accessibility.com/blog/do-all-deaf-people-use-sign-language">1% in the US</a>.</p> <p>Also, despite our expectations, there is actually <strong>no universal sign language</strong> that everybody uses. For example, British signers often cannot understand American signers. There are globally around <a href="https://education.nationalgeographic.org/resource/sign-language/">300 different sign languages</a> actively used.</p> <blockquote>“We never question making content available in different written or spoken languages, and the same should apply to signed languages.”<br /><br />— <a href="https://www.linkedin.com/feed/update/urn:li:activity:7178702360649547778?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7178702360649547778%2C7178776416979718144%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287178776416979718144%2Curn%3Ali%3Aactivity%3A7178702360649547778%29">Johanna Steiner</a></blockquote> <p><img src="https://files.smashing.media/articles/how-design-for-with-deaf-people/3-heardio.jpg" /></p> <p>Sign languages are <a href="https://www.youtube.com/watch?v=M0cR_HTeWUo&t=188">not just gestures or pantomime</a>. They are <strong>4D spatial languages</strong> with their own grammar and syntax, separate from spoken languages, and they don’t have a written form. They rely heavily on facial expression to convey meaning and emphasis. And they are also not universal — every country has its own sign language and dialects.</p> <ul> <li>You can only understand <strong>30% of words</strong> via lip-reading.</li> <li>Most deaf people do not know any <strong>sign language</strong>.</li> <li>Many sign languages have local dialects that can be hard to interpret.</li> <li>Not all deaf people are fluent signers and often rely on <strong>visual clues</strong>.</li> <li>For many deaf people, a spoken language is their <strong>second language</strong>.</li> <li><a href="https://www.youtube.com/watch?v=M0cR_HTeWUo"><strong>Sign language is 4-dimensional</strong></a>, incorporating 3D space, time and also facial expressions.</li> </ul> How To Communicate Respectfully <p>Keep in mind that many deaf people use the spoken language of their country as <strong>their second language</strong>. So to communicate with a deaf person, it’s best to ask in writing. Don’t ask how much a person can understand, or if they can lip-read you.</p> <p>However, as Rachel Edwards <a href="https://www.linkedin.com/posts/rachel-edwards-scotland_excellent-overview-on-designing-for-ddeaf-activity-7409172866983804928-489h?utm_source=share&utm_medium=member_desktop&rcm=ACoAAACDcgQBa_vsk5breYKwZAgyIhsHtJaFbL8">noted</a>, don’t assume someone is comfortable with written language because they are deaf. Sometimes their literacy may be low, and so providing information as text and assuming that covers your deaf users might not be the answer.</p> <p>Also, don’t assume that every deaf person can lip-read. You can see only about 30% of words on someone’s mouth. That’s why many deaf people need <strong>additional visual cues</strong>, like text or cued speech.</p> <p><img src="https://files.smashing.media/articles/how-design-for-with-deaf-people/4-accessibility-symbols.png" /></p> <p>It’s also crucial to use <strong>respectful language</strong>. Deaf people do not always see themselves as <em>disabled</em>, but rather as a cultural linguistic minority with a unique identity. Others, as Meryl Evan has <a href="https://www.linkedin.com/feed/update/urn:li:activity:7178702360649547778?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7178702360649547778%2C7178721132345270272%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287178721132345270272%2Curn%3Ali%3Aactivity%3A7178702360649547778%29">noted</a>, don’t identify as <em>deaf</em> or <em>hard of hearing</em>, but rather as “hearing impaired”. So, it’s mostly up to an individual how they want to identify.</p> <ul> <li><strong>Deaf</strong> (Capital ‘D’)<br />Culturally Deaf people who have been deaf since birth or before learning to speak. Sign language is often the first language, and written language is the second.</li> <li><strong>deaf</strong> (Lowercase ‘d’)<br />People who developed hearing loss later in life. Used by people who feel closer to the hearing/hard-of-hearing world and prefer to communicate written and/or oral.</li> <li><strong>Hard of Hearing</strong><br />People with mild to moderate hearing loss who typically communicate orally and use hearing aids.</li> </ul> <p>In general, <strong>avoid hearing impairment</strong> if you can, and use <em>Deaf</em> (for those deaf for most of their lives), <em>deaf</em> (for those who became deaf later), or <em>hard of hearing</em> (HoH) for partial hearing loss. But either way, ask politely first and then respect the person’s preferences.</p> Practical UX Guidelines <p>When designing UIs and content, consider these key accessibility guidelines for deaf and hard-of-hearing users:</p> <p><img src="https://files.smashing.media/articles/how-design-for-with-deaf-people/5-designing-deaf-users.jpg" /></p> <ol> <li><strong>Don’t make the phone required</strong> or the only method of contact.</li> <li><strong>Provide text alternatives</strong> for all audible alerts or notices.</li> <li><strong>Add haptic feedback</strong> on mobile (e.g., vibration patterns).</li> <li><strong>Ensure good lighting</strong> to help people see facial expressions.</li> <li><strong>Circular seating</strong> usually works better, so everyone can see each other’s faces.</li> <li><strong>Always include descriptions of non-spoken sounds</strong> (e.g., rain, laughter) in your content.</li> <li><strong>Add a transcript and closed captions</strong> for audio and video.</li> <li><strong>Clearly identify each speaker</strong> in all audio and video content.</li> <li><strong>Design multiple ways to communicate</strong> in every instance (online + in-person).</li> <li><strong>Invite video participants to keep the camera on</strong> to facilitate lip-reading and the viewing of facial expressions, which convey tone.</li> <li><strong>Always test products with the actual community</strong>, instead of making assumptions for them.</li> </ol> Wrapping Up <p>I keep repeating myself like a broken record, but better accessibility <strong>always benefits everyone</strong>. When we improve experiences for some groups of people, it often improves experiences for entirely different groups as well.</p> <p>As Marie Van Driessche rightfully noted, to design a great experience for accessibility, we must design <strong>with</strong> people, rather than <em>for</em> them. And that means always include people with <strong>lived experience of exclusion</strong> into the design process — as they are the true experts.</p> <p>Accessibility never happens by accident — it’s a deliberate decision and a commitment.</p> <p>No digital product is neutral. There must be a deliberate effort to make products and services more accessible. Not only does it benefit everyone, but it also shows what a company stands for and values.</p> <p>And once you do have a commitment, it will be so much easier to <strong>retain accessibility</strong> rather than adding it last minute as a crutch — when it’s already too late to do it right and way too expensive to do it well.</p> Meet “Smart Interface Design Patterns” <p>You can find more details on <strong>design patterns and UX</strong> in <a href="https://smart-interface-design-patterns.com/"><strong>Smart Interface Design Patterns</strong></a>, our <strong>15h-video course</strong> 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. <a href="https://www.youtube.com/watch?v=jhZ3el3n-u0">Jump to a free preview</a>. Use code <a href="https://smart-interface-design-patterns.com"><strong>BIRDIE</strong></a> to <strong>save 15%</strong> off.</p> <a href="https://smart-interface-design-patterns.com/"><img src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7cc4e1de-6921-474e-a3fb-db4789fc13dd/b4024b60-e627-177d-8bff-28441f810462.jpeg" /></a>Meet <a href="https://smart-interface-design-patterns.com/">Smart Interface Design Patterns</a>, our video course on interface design & UX. <div><div><ul><li><a href="#"> Video + UX Training</a></li><li><a href="#">Video only</a></li></ul><div><h3>Video + UX Training</h3>$ 495.00 $ 699.00 <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3081832?price_id=3951439"> Get Video + UX Training<div></div></a><p>25 video lessons (15h) + <a href="https://smashingconf.com/online-workshops/workshops/vitaly-friedman-impact-design/">Live UX Training</a>.<br />100 days money-back-guarantee.</p></div><div><h3>Video only</h3><div>$ 300.00$ 395.00</div> <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3081832?price_id=3950630"> Get the video course<div></div></a><p>40 video lessons (15h). Updated yearly.<br />Also available as a <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3082557?price_id=3951421">UX Bundle with 2 video courses.</a></p></div></div></div> Useful Resources <ul> <li><a href="https://www.youtube.com/watch?v=M0cR_HTeWUo">Designing For Deaf People Helps Everyone</a>, by Marie Van Driessche</li> <li>“<a href="https://medium.com/@paulrobwest/ux-ui-design-considerations-for-the-deaf-deaf-and-hard-of-hearing-dbfe28850fbe">Design considerations for the Deaf, deaf, and hard of hearing</a>”, by Paul Roberts </li> <li><a href="https://www.youtube.com/watch?v=AEXKOASrTVM">Beyond Video Captions and Sign Language</a>, by Svetlana Kouznetsova</li> <li>“<a href="https://www.smashingmagazine.com/2023/01/closed-captions-subtitles-ux/">Best Practices For CC and Subtitles UX</a>”, by Vitaly Friedman</li> <li><a href="https://www.accessi.org/blog/web-accessibility-for-deaf-users/">Web Accessibility for Deaf Users</a></li> <li><a href="https://www.inclusivedesigntoolkit.com/UChearing/hearing.html">Inclusive Design Toolkit: Hearing</a></li> <li>“<a href="https://funkybrownchick.substack.com/p/i-hear-you-really-i-do-">What It's Like To Be Born Hard of Hearing</a>”, by Twanna A. Hines, M.S.</li> <li>“<a href="https://uxplanet.org/podcasts-for-the-deaf-d4d9b5f3ce99">Accessibility: Podcasts for the deaf</a>”, by Mubarak Alabidun</li> </ul> <h3>Useful Books</h3> <ul> <li><a href="https://audio-accessibility.com/book/"><em>Sound Is Not Enough</em></a>, by Svetlana Kouznetsova</li> <li><em>Mismatch: How Inclusion Shapes Design</em>, by Kat Holmes</li> <li><em>Building for Everyone: Extend Your Product's Reach Through Inclusive Design</em> (+ <a href="https://design.google/library/building-for-everyone">free excerpt</a>), by Annie Jean-Baptiste</li> </ul> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/how-design-for-with-deaf-people/</span> hello@smashingmagazine.com (Vitaly Friedman) <![CDATA[Giving Users A Voice Through Virtual Personas]]> https://smashingmagazine.com/2025/12/giving-users-voice-virtual-personas/ https://smashingmagazine.com/2025/12/giving-users-voice-virtual-personas/ Tue, 23 Dec 2025 10:00:00 GMT Turn scattered user research into AI-powered personas that give anyone consolidated multi-perspective feedback from a single question. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/giving-users-voice-virtual-personas/</span> <p>In my <a href="https://www.smashingmagazine.com/2025/09/functional-personas-ai-lean-practical-workflow/">previous article</a>, I explored how AI can help us create functional personas more efficiently. We looked at building personas that focus on what users are trying to accomplish rather than demographic profiles that look good on posters but rarely change design decisions.</p> <p>But creating personas is only half the battle. The bigger challenge is getting those insights into the hands of people who need them, at the moment they need them.</p> <p>Every day, people across your organization make decisions that affect user experience. Product teams decide which features to prioritize. Marketing teams craft campaigns. Finance teams design invoicing processes. Customer support teams write response templates. All of these decisions shape how users experience your product or service.</p> <p>And most of them happen without any input from actual users.</p> The Problem With How We Share User Research <p>You do the research. You create the personas. You write the reports. You give the presentations. You even make fancy infographics. And then what happens?</p> <p>The research sits in a shared drive somewhere, slowly gathering digital dust. The personas get referenced in kickoff meetings and then forgotten. The reports get skimmed once and never opened again.</p> <p>When a product manager is deciding whether to add a new feature, they probably do not dig through last year’s research repository. When the finance team is redesigning the invoice email, they almost certainly do not consult the user personas. They make their best guess and move on.</p> <p>This is not a criticism of those teams. They are busy. They have deadlines. And honestly, even if they wanted to consult the research, they probably would not know where to find it or how to interpret it for their specific question.</p> <p>The knowledge stays locked inside the heads of the UX team, who cannot possibly be present for every decision being made across the organization.</p> What If Users Could Actually Speak? <blockquote>What if, instead of creating static documents that people need to find and interpret, we could give stakeholders a way to consult all of your user personas at once?</blockquote> <p>Imagine a marketing manager working on a new campaign. Instead of trying to remember what the personas said about messaging preferences, they could simply ask: <em>“I’m thinking about leading with a discount offer in this email. What would our users think?”</em></p> <p>And the AI, drawing on all your research data and personas, could respond with a consolidated view: how each persona would likely react, where they agree, where they differ, and a set of recommendations based on their collective perspectives. One question, synthesized insight across your entire user base.</p> <p><img src="https://files.smashing.media/articles/giving-users-voice-virtual-personas/1-user-research-personas.png" /></p> <p>This is not science fiction. With AI, we can build exactly this kind of system. We can take all of that scattered research (the surveys, the interviews, the support tickets, the analytics, the personas themselves) and turn it into an <strong>interactive resource</strong> that anyone can query for multi-perspective feedback.</p> Building the User Research Repository <p>The foundation of this approach is a centralized repository of everything you know about your users. Think of it as a single source of truth that AI can access and draw from.</p> <p>If you have been doing user research for any length of time, you probably have more data than you realize. It is just scattered across different tools and formats:</p> <ul> <li>Survey results sitting in your survey platform,</li> <li>Interview transcripts in Google Docs,</li> <li>Customer support tickets in your helpdesk system,</li> <li>Analytics data in various dashboards,</li> <li>Social media mentions and reviews,</li> <li>Old personas from previous projects,</li> <li>Usability test recordings and notes.</li> </ul> <p>The first step is gathering all of this into one place. It does not need to be perfectly organized. AI is remarkably good at making sense of messy inputs.</p> <p>If you are starting from scratch and do not have much existing research, you can use AI deep research tools to establish a baseline.</p> <p><img src="https://files.smashing.media/articles/giving-users-voice-virtual-personas/2-user-research-perplexity.png" /></p> <p>These tools can scan the web for discussions about your product category, competitor reviews, and common questions people ask. This gives you something to work with while you build out your primary research.</p> Creating Interactive Personas <p>Once you have your repository, the next step is creating personas that the AI can consult on behalf of stakeholders. This builds directly on <a href="https://www.smashingmagazine.com/2025/09/functional-personas-ai-lean-practical-workflow/">the functional persona approach I outlined in my previous article</a>, with one key difference: these personas become <strong>lenses</strong> through which the AI analyzes questions, not just reference documents.</p> <p>The process works like this:</p> <ol> <li>Feed your research repository to an AI tool.</li> <li>Ask it to identify distinct user segments based on goals, tasks, and friction points.</li> <li>Have it generate detailed personas for each segment.</li> <li>Configure the AI to consult all personas when stakeholders ask questions, providing consolidated feedback.</li> </ol> <p>Here is where this approach diverges significantly from traditional personas. Because the AI is the primary consumer of these persona documents, they do not need to be scannable or fit on a single page. Traditional personas are constrained by human readability: you have to distill everything down to bullet points and key quotes that someone can absorb at a glance. But AI has no such limitation.</p> <p>This means your personas can be considerably <strong>more detailed</strong>. You can include lengthy behavioral observations, contradictory data points, and nuanced context that would never survive the editing process for a traditional persona poster. The AI can hold all of this complexity and draw on it when answering questions.</p> <p>You can also create <strong>different lenses or perspectives within each persona</strong>, tailored to specific business functions. Your “Weekend Warrior” persona might have a marketing lens (messaging preferences, channel habits, campaign responses), a product lens (feature priorities, usability patterns, upgrade triggers), and a support lens (common questions, frustration points, resolution preferences). When a marketing manager asks a question, the AI draws on the marketing-relevant information. When a product manager asks, it pulls from the product lens. Same persona, different depth depending on who is asking.</p> <p><img src="https://files.smashing.media/articles/giving-users-voice-virtual-personas/3-persona-lenses.png" /></p> <p>The personas should still include all the functional elements we discussed before: goals and tasks, questions and objections, pain points, touchpoints, and service gaps. But now these elements become the basis for how the AI evaluates questions from each persona’s perspective, synthesizing their views into actionable recommendations.</p> Implementation Options <p>You can set this up with varying levels of sophistication depending on your resources and needs.</p> <h3>The Simple Approach</h3> <p>Most AI platforms now offer project or workspace features that let you upload reference documents. In ChatGPT, these are called Projects. Claude has a similar feature. Copilot and Gemini call them Spaces or Gems.</p> <p>To get started, create a dedicated project and upload your key research documents and personas. Then write clear instructions telling the AI to consult all personas when responding to questions. Something like:</p> <blockquote>You are helping stakeholders understand our users. When asked questions, consult all of the user personas in this project and provide: (1) a brief summary of how each persona would likely respond, (2) an overview highlighting where they agree and where they differ, and (3) recommendations based on their collective perspectives. Draw on all the research documents to inform your analysis. If the research does not fully cover a topic, search social platforms like Reddit, Twitter, and relevant forums to see how people matching these personas discuss similar issues. If you are still unsure about something, say so honestly and suggest what additional research might help.</blockquote> <p>This approach has some limitations. There are caps on how many files you can upload, so you might need to prioritize your most important research or consolidate your personas into a single comprehensive document.</p> <h3>The More Sophisticated Approach</h3> <p>For larger organizations or more ongoing use, a tool like <a href="https://www.notion.com/">Notion</a> offers advantages because it can hold your entire <strong>research repository</strong> and has AI capabilities built in. You can create databases for different types of research, link them together, and then use the AI to query across everything.</p> <p><img src="https://files.smashing.media/articles/giving-users-voice-virtual-personas/4-notion-user-research.png" /></p> <p>The benefit here is that the AI has access to much <strong>more context</strong>. When a stakeholder asks a question, it can draw on surveys, support tickets, interview transcripts, and analytics data all at once. This makes for richer, more nuanced responses.</p> What This Does Not Replace <p>I should be clear about the limitations.</p> <p>Virtual personas are not a substitute for talking to real users. They are a way to make existing research more accessible and actionable.</p> <p>There are several scenarios where you still need primary research:</p> <ul> <li>When launching something genuinely new that your existing research does not cover;</li> <li>When you need to validate specific designs or prototypes;</li> <li>When your repository data is getting stale;</li> <li>When stakeholders need to hear directly from real humans to build empathy.</li> </ul> <p>In fact, you can configure the AI to recognize these situations. When someone asks a question that goes beyond what the research can answer, the AI can respond with something like: <em>“I do not have enough information to answer that confidently. This might be a good question for a quick user interview or survey.”</em></p> <p>And when you do conduct new research, that data feeds back into the repository. The personas evolve over time as your understanding deepens. This is much better than the traditional approach, where personas get created once and then slowly drift out of date.</p> The Organizational Shift <p>If this approach catches on in your organization, something interesting happens.</p> <p>The UX team’s role shifts from being the gatekeepers of user knowledge to being the curators and maintainers of the repository.</p> <p>Instead of spending time creating reports that may or may not get read, you spend time ensuring the repository stays current and that the AI is configured to give helpful responses. </p> <p>Research communication changes from push (presentations, reports, emails) to pull (stakeholders asking questions when they need answers). <strong>User-centered thinking</strong> becomes distributed across the organization rather than concentrated in one team.</p> <p>This does not make UX researchers less valuable. If anything, it makes them more valuable because their work now has a wider reach and greater impact. But it does change the nature of the work.</p> Getting Started <p>If you want to try this approach, start small. If you need a primer on functional personas before diving in, I have written a <a href="https://boagworld.com/usability/personas/">detailed guide to creating them</a>. Pick one project or team and set up a simple implementation using ChatGPT Projects or a similar tool. Gather whatever research you have (even if it feels incomplete), create one or two personas, and see how stakeholders respond.</p> <p>Pay attention to what questions they ask. These will tell you where your research has gaps and what additional data would be most valuable.</p> <p>As you refine the approach, you can expand to more teams and more sophisticated tooling. But the core principle stays the same: <strong>take all that scattered user knowledge and give it a voice that anyone in your organization can hear.</strong></p> <p>In my previous article, I argued that we should move from demographic personas to functional personas that focus on what users are trying to do. Now I am suggesting we take the next step: from static personas to interactive ones that can actually participate in the conversations where decisions get made.</p> <p>Because every day, across your organization, people are making decisions that affect your users. And your users deserve a seat at the table, even if it is a virtual one.</p> <h3>Further Reading On SmashingMag</h3> <ul> <li>“<a href="https://www.smashingmagazine.com/2014/08/a-closer-look-at-personas-part-1/">A Closer Look At Personas: What They Are And How They Work | 1</a>”, Shlomo Goltz</li> <li>“<a href="https://www.smashingmagazine.com/2018/04/design-process-data-based-personas/">How To Improve Your Design Process With Data-Based Personas</a>”, Tim Noetzel</li> <li>“<a href="https://www.smashingmagazine.com/2025/10/how-make-ux-research-hard-to-ignore/">How To Make Your UX Research Hard To Ignore</a>”, Vitaly Friedman</li> <li>“<a href="https://www.smashingmagazine.com/2023/01/build-strong-customer-relationships-user-research/">How To Build Strong Customer Relationships For User Research</a>”, Renaissance Rachel</li> </ul> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/giving-users-voice-virtual-personas/</span> hello@smashingmagazine.com (Paul Boag) <![CDATA[How To Measure The Impact Of Features]]> https://smashingmagazine.com/2025/12/how-measure-impact-features-tars/ https://smashingmagazine.com/2025/12/how-measure-impact-features-tars/ Fri, 19 Dec 2025 10:00:00 GMT Meet TARS — a simple, repeatable, and meaningful UX metric designed specifically to track the performance of product features. Upcoming part of the <a href="https://measure-ux.com/">Measure UX & Design Impact</a> (use the code 🎟 <code>IMPACT</code> to save 20% off today). <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/how-measure-impact-features-tars/</span> <p>So we design and ship a <strong>shiny new feature</strong>. How do we know if it’s working? How do we measure and track its impact? There is <a href="https://measuringu.com/an-overview-of-70-ux-metrics/">no shortage in UX metrics</a>, but what if we wanted to establish a <strong>simple, repeatable</strong>, meaningful UX metric — specifically for our features? Well, let’s see how to do just that.</p> <p><img src="https://files.smashing.media/articles/how-measure-impact-features-tars/1-impact-features-tars.jpg" /></p> <p>I first heard about the <strong>TARS framework</strong> from Adrian H. Raudschl’s wonderful article on “<a href="https://uxdesign.cc/tars-a-product-metric-game-changer-c523f260306a?sk=v2%2F2a9d7d1e-bae9-4875-9063-4b6a10ae110c">How To Measure Impact of Features</a>”. Here, Adrian highlighted how his team tracks and decides which features to focus on — and then maps them against each other in a <strong>2×2 quadrants matrix</strong>.</p> <p>It turned out to be a very useful framework to <strong>visualize</strong> the impact of UX work through the lens of business metrics.</p> <p>Let’s see how it works.</p> 1. Target Audience (%) <p>We start by quantifying the <strong>target audience</strong> by exploring what percentage of a product’s users have the specific problem that a feature aims to solve. We can study existing or similar features that try to solve similar problems, and how many users engage with them.</p> <p>Target audience <strong>isn’t the same</strong> as feature usage though. As Adrian noted, if we know that an existing Export Button feature is used by 5% of all users, it doesn’t mean that the target audience is 5%. <strong>More users</strong> might have the problem that the export feature is trying to solve, but they can’t find it.</p> <blockquote>Question we ask: “What percentage of all our product’s users have that specific problem that a new feature aims to solve?”</blockquote> 2. A = Adoption (%) <p>Next, we measure how well we are <strong>“acquiring”</strong> our target audience. For that, we track how many users actually engage <em>successfully</em> with that feature over a specific period of time.</p> <p>We <strong>don’t focus on CTRs or session duration</strong> there, but rather if users <em>meaningfully</em> engage with it. For example, if anything signals that they found it valuable, such as sharing the export URL, the number of exported files, or the usage of filters and settings.</p> <p><img src="https://files.smashing.media/articles/how-measure-impact-features-tars/2-impact-features-tars.jpg" /></p> <p>High <strong>feature adoption</strong> (>60%) suggests that the problem was impactful. Low adoption (<20%) might imply that the problem has simple workarounds that people have relied upon. Changing habits takes time, too, and so low adoption in the beginning is expected.</p> <p>Sometimes, low feature adoption has nothing to do with the feature itself, but rather <strong>where it sits in the UI</strong>. Users might never discover it if it’s hidden or if it has a confusing label. It must be obvious enough for people to stumble upon it.</p> <p>Low adoption doesn’t always equal failure. If a problem only affects 10% of users, hitting 50–75% adoption within that specific niche means the feature is a <strong>success</strong>.</p> <blockquote>Question we ask: “What percentage of active target users actually use the feature to solve that problem?”</blockquote> 3. Retention (%) <p>Next, we study whether a feature is actually used repeatedly. We measure the frequency of use, or specifically, how many users who engaged with the feature actually keep using it over time. Typically, it’s a strong signal for <strong>meaningful impact</strong>.</p> <p>If a feature has >50% retention rate (avg.), we can be quite confident that it has a <strong>high strategic importance</strong>. A 25–35% retention rate signals medium strategic significance, and retention of 10–20% is then low strategic importance.</p> <blockquote>Question we ask: “Of all the users who meaningfully adopted a feature, how many came back to use it again?”</blockquote> 4. Satisfaction Score (CES) <p>Finally, we measure the <strong>level of satisfaction</strong> that users have with that feature that we’ve shipped. We don’t ask everyone — we ask only “retained” users. It helps us spot hidden troubles that might not be reflected in the retention score.</p> <p><img src="https://files.smashing.media/articles/how-measure-impact-features-tars/3-impact-features-tars.jpg" /></p> <p>Once users actually used a feature multiple times, we ask them <strong>how easy it was to solve</strong> a problem after they used that feature — between “much more difficult” and “much easier than expected”. We know how we want to score.</p> Using TARS For Feature Strategy <p>Once we start measuring with TARS, we can calculate an <strong>S÷T score</strong> — the percentage of Satisfied Users ÷ Target Users. It gives us a sense of how well a feature is performing for our intended target audience. Once we do that for every feature, we can map all features across 4 quadrants in a <strong>2×2 matrix</strong>.</p> <p><img src="https://files.smashing.media/articles/how-measure-impact-features-tars/4-impact-features-tars.jpg" /></p> <p><strong>Overperforming features</strong> are worth paying attention to: they have low retention but high satisfaction. It might simply be features that users don’t have to use frequently, but when they do, it’s extremely effective.</p> <p><strong>Liability features</strong> have high retention but low satisfaction, so perhaps we need to work on them to improve them. And then we can also identify <strong>core features</strong> and project features — and have a conversation with designers, PMs, and engineers on what we should work on next.</p> Conversion Rate Is Not a UX Metric <p>TARS doesn’t cover conversion rate, and for a good reason. As <a href="https://www.linkedin.com/posts/fabian-lenz-digital-experience-leadership_conversion-rate-is-not-a-ux-metric-yes-activity-7394261839506739200-78G9">Fabian Lenz noted</a>, conversion is often considered to be the <strong>ultimate indicator of success</strong> — yet in practice it’s always very difficult to present a clear connection between smaller design initiatives and big conversion goals.</p> <p><img src="https://files.smashing.media/articles/how-measure-impact-features-tars/5-impact-features-tars.png" /></p> <p>The truth is that almost everybody on the team is working towards better conversion. An uptick might be connected to <strong>many different initiatives</strong> — from sales and marketing to web performance boost to seasonal effects to UX initiatives.</p> <p>UX can, of course, improve conversion, but it’s not really a UX metric. Often, people simply <strong>can’t choose the product</strong> they are using. And often a desired business outcome comes out of necessity and struggle, rather than trust and appreciation.</p> <h3>High Conversion Despite Bad UX</h3> <p>As Fabian <a href="https://www.linkedin.com/posts/fabian-lenz-digital-experience-leadership_conversion-rate-is-not-a-ux-metric-yes-activity-7394261839506739200-78G9/">writes</a>, <strong>high conversion rate</strong> can happen despite poor UX, because:</p> <ul> <li><strong>Strong brand power</strong> pulls people in,</li> <li>Aggressive but effective <strong>urgency tactics</strong>,</li> <li>Prices are extremely attractive,</li> <li>Marketing performs brilliantly,</li> <li>Historical customer loyalty,</li> <li>Users simply have no alternative.</li> </ul> <p><img src="https://files.smashing.media/articles/how-measure-impact-features-tars/6-impact-features-tars.jpg" /></p> <h3>Low Conversion Despite Great UX</h3> <p>At the same time, a low conversion rate can occur despite great UX, because:</p> <ul> <li><strong>Offers aren’t relevant</strong> to the audience,</li> <li><strong>Users don’t trust the brand</strong>,</li> <li>Poor business model or high risk of failure,</li> <li>Marketing doesn’t reach the right audience,</li> <li>External factors (price, timing, competition).</li> </ul> <p>An improved conversion is the <strong>positive outcome of UX initiatives</strong>. But good UX work typically improves task completion, reduces time on task, minimizes errors, and avoids decision paralysis. And there are plenty of <a href="https://www.linkedin.com/posts/vitalyfriedman_how-to-measure-ux-httpslnkdine5uedtzy-activity-7332664809382952960-HERA">actionable design metrics we could use</a> to track UX and drive sustainable success.</p> Wrapping Up <p><strong>Product metrics</strong> alone don’t always provide an accurate view of how well a product performs. Sales might perform well, but users might be extremely inefficient and frustrated. Yet the churn is low because users can’t choose the tool they are using.</p> <p><img src="https://files.smashing.media/articles/how-measure-impact-features-tars/7-impact-features-tars.jpg" /></p> <p>We need UX metrics to understand and improve user experience. What I love most about TARS is that it’s a neat way to connect customers’ usage and <strong>customers’ experience with relevant product metrics</strong>. Personally, I would extend TARS with <a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-activity-7140641630507687936-YTI7">UX-focused metrics and KPIs</a> as well — depending on the needs of the project.</p> <p>Huge thanks to <a href="https://www.linkedin.com/in/adrian-raudaschl/">Adrian H. Raudaschl</a> for putting it together. And if you are interested in metrics, I highly recommend you follow him for practical and useful guides all around just that!</p> Meet “How To Measure UX And Design Impact” <p>You can find more details on <strong>UX Strategy</strong> in 🪴 <a href="https://measure-ux.com/"><strong>Measure UX & Design Impact</strong></a> (8h), a practical guide for designers and UX leads to measure and show your UX impact on business. Use the code 🎟 <code>IMPACT</code> to save 20% off today. <a href="https://measure-ux.com/">Jump to the details</a>.</p> <a href="https://measure-ux.com/"> <img src="https://files.smashing.media/articles/ux-metrics-video-course-release/measure-ux-and-design-impact-course.png" /> </a> <div><div><ul><li><a href="#"> Video + UX Training</a></li><li><a href="#">Video only</a></li></ul><div><h3>Video + UX Training</h3>$ 495.00 $ 799.00 <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3081832?price_id=3951439"> Get Video + UX Training<div></div></a><p>25 video lessons (8h) + <a href="https://smashingconf.com/online-workshops/workshops/vitaly-friedman-impact-design/">Live UX Training</a>.<br />100 days money-back-guarantee.</p></div><div><h3>Video only</h3><div>$ 250.00$ 395.00</div> <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3081832?price_id=3950630"> Get the video course<div></div></a><p>25 video lessons (8h). Updated yearly.<br />Also available as a <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3570306?price_id=4503439">UX Bundle with 3 video courses.</a></p></div></div></div> Useful Resources <ul> <li>“<a href="https://measure-ux.com">How To Measure UX and Design Impact</a>”, by yours truly</li> <li>“<a href="https://thecdo.school/books">Business Thinking For Designers</a>”, by Ryan Rumsey</li> <li>“<a href="https://www.linkedin.com/feed/update/urn:li:activity:7338462034763661312/">ROI of Design Project</a></li> <li>“<a href="https://articles.centercentre.com/how-the-right-ux-metrics-show-game-changing-value/">How the Right UX Metrics Show Game-Changing Value</a>”, by Jared Spool</li> <li>“<a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-research-activity-7164173642887606274-rEqq">Research Sample Size Calculators</a>”</li> </ul> <h3>Further Reading</h3> <ul> <li>“<a href="https://www.smashingmagazine.com/2025/11/designing-for-stress-emergency/">Designing For Stress And Emergency</a>”, Vitaly Friedman</li> <li>“<a href="https://www.smashingmagazine.com/2025/10/ai-ux-achieve-more-with-less/">AI In UX: Achieve More With Less</a>”, Paul Boag</li> <li>“<a href="https://www.smashingmagazine.com/2025/11/accessibility-problem-authentication-methods-captcha/">The Accessibility Problem With Authentication Methods Like CAPTCHA</a>”, Eleanor Hecks</li> <li>“<a href="https://www.smashingmagazine.com/2025/09/from-prompt-to-partner-designing-custom-ai-assistant/">From Prompt To Partner: Designing Your Custom AI Assistant</a>”, Lyndon Cerejo</li> </ul> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/how-measure-impact-features-tars/</span> hello@smashingmagazine.com (Vitaly Friedman) <![CDATA[Smashing Animations Part 7: Recreating Toon Text With CSS And SVG]]> https://smashingmagazine.com/2025/12/smashing-animations-part-7-recreating-toon-text-css-svg/ https://smashingmagazine.com/2025/12/smashing-animations-part-7-recreating-toon-text-css-svg/ Wed, 17 Dec 2025 10:00:00 GMT In this article, pioneering author and web designer [Andy Clarke](https://stuffandnonsense.co.uk) shows his techniques for creating [Toon Text titles](https://stuffandnonsense.co.uk/toon-text/index.html) using modern CSS and SVG. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/smashing-animations-part-7-recreating-toon-text-css-svg/</span> <p>After finishing a project that required me to learn everything I could about CSS and SVG animations, I started writing this series about Smashing Animations and “<a href="https://www.smashingmagazine.com/2025/05/smashing-animations-part-1-classic-cartoons-inspire-css/">How Classic Cartoons Inspire Modern CSS</a>.” To round off this year, I want to show you how to use modern CSS to create that element that makes Toon Titles so impactful: their typography.</p> Title Artwork Design <p>In the silent era of the 1920s and early ’30s, the typography of a film’s title card created a mood, set the scene, and reminded an audience of the type of film they’d paid to see.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-7-recreating-toon-text-css-svg/1-typographic-title-cards.png" /></p> <p>Cartoon title cards were also branding, mood, and scene-setting, all rolled into one. In the early years, when major studio budgets were bigger, these title cards were often illustrative and painterly. </p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-7-recreating-toon-text-css-svg/2-tom-jerry-title-cards.png" /></p> <p>But when television boomed during the 1950s, budgets dropped, and cards designed by artists like Lawrence “Art” Goble adopted a new visual language, becoming more graphic, stylised, and less intricate.</p> <p><strong>Note:</strong> <em>Lawrence “Art” Goble is one of the often overlooked heroes of mid-century American animation. He primarily worked for Hanna-Barbera during its most influential years of the 1950s and 1960s.</em></p> <p>Goble wasn’t a character animator. His role was to create atmosphere, so he designed environments for <em>The Flintstones</em>, <em>Huckleberry Hound</em>, <em>Quick Draw McGraw</em>, and <em>Yogi Bear</em>, as well as the opening title cards that set the tone. His title cards, featuring paintings with a logo overlaid, helped define the iconic look of Hanna-Barbera.</p> <p>Goble’s artwork for characters such as Quick Draw McGraw and Yogi Bear was effective on smaller TV screens. Rather than reproducing a still from the cartoon, he focused on presenting a single, strong idea — often in silhouette — that captured its essence. In “The Buzzin’ Bear,” Yogi buzzes by in a helicopter. He bounces away, pic-a-nic basket in hand, in “Bear on a Picnic,” and for his “Prize Fight Fright,” Yogi boxes the title text.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-7-recreating-toon-text-css-svg/3-title-cards-yogi-bear.png" /></p> <p>With little or no motion to rely on, Goble’s single frames had to create a mood, set the scene, and describe a story. They did this using flat colours, graphic shapes, and typography that was frequently integrated into the artwork.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-7-recreating-toon-text-css-svg/4-title-cards-quick-draw-mcgraw.png" /></p> <p>As designers who work on the web, toon titles can teach us plenty about how to convey a brand’s personality, make a first impression, and set expectations for someone’s experience using a product or website. We can learn from the artists’ techniques to create effective banners, landing-page headers, and even good ol’ fashioned splash screens.</p> Toon Title Typography <p>Cartoon title cards show how merging type with imagery delivers the punch a header or hero needs. With a handful of <code>text-shadow</code>, <code>text-stroke</code>, and <code>transform</code> tricks, modern CSS lets you tap into that same energy.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-7-recreating-toon-text-css-svg/5-title-cards-augie-doggie.png" /></p> The Toon Text Title Generator <p>Partway through writing this article, I realised it would be useful to have a tool for generating text styled like the cartoon titles I love so much. <a href="https://stuffandnonsense.co.uk/toon-text/tool.html">So I made one.</a></p> <p>My Toon Text Title Generator lets you experiment with colours, strokes, and multiple text shadows. You can adjust paint order, apply letter spacing, preview your text in a selection of sample fonts, and then copy the generated CSS straight to your clipboard to use in a project.</p> Toon Title CSS <p>You can simply copy-paste the CSS that the Toon Text Title Generator provides you. But let’s look closer at what it does.</p> <h3>Text shadow</h3> <p>Look at the type in this title from Augie Doggie’s episode “Yuk-Yuk Duck,” with its pale yellow letters and dark, hard, offset shadow that lifts it off the background and creates the illusion of depth.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-7-recreating-toon-text-css-svg/6-toon-text-collection.png" /></p> <p>You probably already know that <code>text-shadow</code> accepts four values: (1) horizontal and (2) vertical offsets, (3) blur, and (4) a colour which can be solid or semi-transparent. Those offset values can be positive or negative, so I can replicate “Yuk-Yuk Duck” using a hard shadow pulled down and to the right:</p> <pre><code>color: #f7f76d; text-shadow: 5px 5px 0 #1e1904; </code></pre> <p><img src="https://files.smashing.media/articles/smashing-animations-part-7-recreating-toon-text-css-svg/7-toon-text-collection.png" /></p> <p>On the other hand, this “Pint Giant” title has a different feel with its negative semi-soft shadow:</p> <pre><code>color: #c2a872; text-shadow: -7px 5px 0 #b100e, 0 -5px 10px #546c6f; </code></pre> <p><img src="https://files.smashing.media/articles/smashing-animations-part-7-recreating-toon-text-css-svg/8-toon-text-collection.png" /></p> <p>To add extra depth and create more interesting effects, I can layer multiple shadows. For “Let’s Duck Out,” I combine four shadows: the first a solid shadow with a negative horizontal offset to lift the text off the background, followed by progressively softer shadows to create a blur around it:</p> <pre><code>color: #6F4D80; text-shadow: -5px 5px 0 #260e1e, /* Shadow 1 */ 0 0 15px #e9ce96, /* Shadow 2 */ 0 0 30px #e9ce96, /* Shadow 3 */ 0 0 30px #e9ce96; /* Shadow 4 */ </code></pre> <p>These shadows show that using <code>text-shadow</code> isn’t just about creating lighting effects, as they can also be decorative and add personality.</p> <h3>Text Stroke</h3> <p>Many cartoon title cards feature letters with a bold outline that makes them stand out from the background. I can recreate this effect using <code>text-stroke</code>. For a long time, this property was only available via a <code>-webkit-</code> prefix, but that also means it’s now supported across modern browsers.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-7-recreating-toon-text-css-svg/9-toon-text-collection.png" /></p> <p><code>text-stroke</code> is a shorthand for two properties. The first, <code>text-stroke-width</code>, draws a contour around individual letters, while the second, <code>text-stroke-color</code>, controls its colour. For “Whatever Goes Pup,” I added a <code>4px</code> blue stroke to the yellow text:</p> <pre><code>color: #eff0cd; -webkit-text-stroke: 4px #7890b5; text-stroke: 4px #7890b5; </code></pre> <p><img src="https://files.smashing.media/articles/smashing-animations-part-7-recreating-toon-text-css-svg/10-toon-text-collection.png" /></p> <p>Strokes can be especially useful when they’re combined with shadows, so for “Growing, Growing, Gone,” I added a thin <code>3px</code> stroke to a barely blurred <code>1px</code> shadow to create this three-dimensional text effect:</p> <pre><code>color: #fbb999; text-shadow: 3px 5px 1px #5160b1; -webkit-text-stroke: 3px #984336; text-stroke: 3px #984336; </code></pre> <h3>Paint Order</h3> <p>Using <code>text-stroke</code> doesn’t always produce the expected result, especially with thinner letters and thicker strokes, because by default the browser draws a stroke over the fill. Sadly, CSS still does not permit me to adjust stroke placement as I often do in Sketch. However, the <code>paint-order</code> property has values that allow me to place the stroke behind, rather than in front of, the fill.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-7-recreating-toon-text-css-svg/11-paint-order.png" /></p> <p><code>paint-order: stroke</code> paints the stroke first, then the fill, whereas <code>paint-order: fill</code> does the opposite:</p> <pre><code>color: #fbb999; paint-order: fill; text-shadow: 3px 5px 1px #5160b1; text-stroke-color:#984336; text-stroke-width: 3px; </code></pre> <p>An effective stroke keeps letters readable, adds weight, and — when combined with shadows and paint order — gives flat text real presence.</p> Backgrounds Inside Text <p>Many cartoon title cards go beyond flat colour by adding texture, gradients, or illustrated detail to the lettering. Sometimes that’s a texture, other times it might be a gradient with a subtle tonal shift. On the web, I can recreate this effect by using a background image or gradient behind the text, and then clipping it to the shape of the letters. This relies on two properties working together: <code>background-clip: text</code> and <code>text-fill-color: transparent</code>.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-7-recreating-toon-text-css-svg/12-toon-text-collection.png" /></p> <p>First, I apply a background behind the text. This can be a bitmap or vector image or a CSS gradient. For this example from the Quick Draw McGraw episode “Baba Bait,” the title text includes a subtle top–bottom gradient from dark to light:</p> <pre><code>background: linear-gradient(0deg, #667b6a, #1d271a); </code></pre> <p>Next, I clip that background to the glyphs and make the text transparent so the background shows through:</p> <pre><code>-webkit-background-clip: text; -webkit-text-fill-color: transparent; </code></pre> <p>With just those two lines, the background is no longer painted behind the text; instead, it’s painted within it. This technique works especially well when combined with strokes and shadows. A clipped gradient provides the lettering with colour and texture, a stroke keeps its edges sharp, and a shadow elevates it from the background. Together, they recreate the layered look of hand-painted title cards using nothing more than a little CSS. As always, test clipped text carefully, as browser quirks can sometimes affect shadows and rendering.</p> <h3>Splitting Text Into Individual Characters</h3> <p>Sometimes I don’t want to style a whole word or heading. I want to style individual letters — to nudge a character into place, give one glyph extra weight, or animate a few letters independently.</p> <p>In plain HTML and CSS, there’s only one reliable way to do that: wrap each character in its own <code>span</code> element. I could do that manually, but that would be fragile, hard to maintain, and would quickly fall apart when copy changes. Instead, when I need per-letter control, I use a text-splitting library like <a href="https://www.spltjs.com">splt.js</a> (although other solutions are available). This takes a text node and automatically wraps words or characters, giving me extra hooks to animate and style without messing up my markup.</p> <p>It’s an approach that keeps my HTML readable and semantic, while giving me the fine-grained control I need to recreate the uneven, characterful typography you see in classic cartoon title cards. However, this approach comes with accessibility caveats, as most screen readers read text nodes in order. So this:</p> <pre><code><h2>Hum Sweet Hum</h2> </code></pre> <p>…reads as you’d expect:</p> <blockquote>Hum Sweet Hum</blockquote> <p>But this:</p> <pre><code><h2> <span>H</span> <span>u</span> <span>m</span> <!-- etc. --> </h2> </code></pre> <p>…can be interpreted differently depending on the browser and screen reader. Some will concatenate the letters and read the words correctly. Others may pause between letters, which in a worst-case scenario might sound like:</p> <blockquote>“H…” “U…” “M…”</blockquote> <p>Sadly, some splitting solutions don’t deliver an always accessible result, so I’ve written my own text splitter, <a href="https://stuffandnonsense.co.uk/toon-text/splinter.html#section-install">splinter.js</a>, which is currently in beta.</p> <h3>Transforming Individual Letters</h3> <p>To activate my Toon Text Splitter, I add a <code>data-</code> attribute to the element I want to split:</p> <pre><code><h2 data-split="toon">Hum Sweet Hum</h2> </code></pre> <p>First, my script separates each word into individual letters and wraps them in a <code>span</code> element with class and ARIA attributes applied:</p> <pre><code><span class="toon-char" aria-hidden="true">H</span> <span class="toon-char" aria-hidden="true">u</span> <span class="toon-char" aria-hidden="true">m</span> </code></pre> <p>The script then takes the initial content of the split element and adds it as an aria attribute to help maintain accessibility:</p> <div> <pre><code><h2 data-split="toon" aria-label="Hum Sweet Hum"> <span class="toon-char" aria-hidden="true">H</span> <span class="toon-char" aria-hidden="true">u</span> <span class="toon-char" aria-hidden="true">m</span> </h2> </code></pre> </div> <p>With those class attributes applied, I can then style individual characters as I choose. </p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-7-recreating-toon-text-css-svg/13-toon-text-collection.png" /></p> <p>For example, for “Hum Sweet Hum,” I want to replicate how its letters shift away from the baseline. After using my Toon Text Splitter, I applied four different <code>translate</code> values using several <code>:nth-child</code> selectors to create a semi-random look:</p> <pre><code>/* 4th, 8th, 12th... */ .toon-char:nth-child(4n) { translate: 0 -8px; } /* 1st, 5th, 9th... */ .toon-char:nth-child(4n+1) { translate: 0 -4px; } /* 2nd, 6th, 10th... */ .toon-char:nth-child(4n+2) { translate: 0 4px; } /* 3rd, 7th, 11th... */ .toon-char:nth-child(4n+3) { translate: 0 8px; } </code></pre> <p>But <code>translate</code> is only one property I can use to <code>transform</code> my toon text. </p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-7-recreating-toon-text-css-svg/14-toon-text-collection.png" /></p> <p>I could also rotate those individual characters for an even more chaotic look:</p> <pre><code>/* 4th, 8th, 12th... */ .toon-line .toon-char:nth-child(4n) { rotate: -4deg; } /* 1st, 5th, 9th... */ .toon-char:nth-child(4n+1) { rotate: -8deg; } /* 2nd, 6th, 10th... */ .toon-char:nth-child(4n+2) { rotate: 4deg; } /* 3rd, 7th, 11th... */ .toon-char:nth-child(4n+3) { rotate: 8deg; } </code></pre> <p>But <code>translate</code> is only one property I can use to <code>transform</code> my toon text. I could also <code>rotate</code> those individual characters for an even more chaotic look:</p> <pre><code>/* 4th, 8th, 12th... */ .toon-line .toon-char:nth-child(4n) { rotate: -4deg; } /* 1st, 5th, 9th... */ .toon-char:nth-child(4n+1) { rotate: -8deg; } /* 2nd, 6th, 10th... */ .toon-char:nth-child(4n+2) { rotate: 4deg; } /* 3rd, 7th, 11th... */ .toon-char:nth-child(4n+3) { rotate: 8deg; } </code></pre> <p>And, of course, I could add animations to jiggle those characters and bring my toon text style titles to life. First, I created a keyframe animation that rotates the characters:</p> <div> <pre><code>@keyframes jiggle { 0%, 100% { transform: rotate(var(--base-rotate, 0deg)); } 25% { transform: rotate(calc(var(--base-rotate, 0deg) + 3deg)); } 50% { transform: rotate(calc(var(--base-rotate, 0deg) - 2deg)); } 75% { transform: rotate(calc(var(--base-rotate, 0deg) + 1deg)); } } </code></pre> </div> <p>Before applying it to the <code>span</code> elements created by my Toon Text Splitter:</p> <pre><code>.toon-char { animation: jiggle 3s infinite ease-in-out; transform-origin: center bottom; } </code></pre> <p>And finally, setting the rotation amount and a delay before each character begins to jiggle:</p> <pre><code>.toon-char:nth-child(4n) { --base-rotate: -2deg; } .toon-char:nth-child(4n+1) { --base-rotate: -4deg; } .toon-char:nth-child(4n+2) { --base-rotate: 2deg; } .toon-char:nth-child(4n+3) { --base-rotate: 4deg; } .toon-char:nth-child(4n) { animation-delay: 0.1s; } .toon-char:nth-child(4n+1) { animation-delay: 0.3s; } .toon-char:nth-child(4n+2) { animation-delay: 0.5s; } .toon-char:nth-child(4n+3) { animation-delay: 0.7s; } </code></pre> <p><img src="https://files.smashing.media/articles/smashing-animations-part-7-recreating-toon-text-css-svg/15-toon-text-collection.png" /></p> One Frame To Make An Impression <p>Cartoon title artists had one frame to make an impression, and their typography was as important as the artwork they painted. The same is true on the web.</p> <p>A well-designed header or hero area needs clarity, character, and confidence — not simply a faded full-width background image.</p> <p>With a few carefully chosen CSS properties — shadows, strokes, clipped backgrounds, and some restrained animation — we can recreate that same impact. I love toon text not because I’m nostalgic, but because its design is intentional. Make deliberate choices, and let a little toon text typography add punch to your designs.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/smashing-animations-part-7-recreating-toon-text-css-svg/</span> hello@smashingmagazine.com (Andy Clarke) <![CDATA[Accessible UX Research, eBook Now Available For Download]]> https://smashingmagazine.com/2025/12/accessible-ux-research-ebook-release/ https://smashingmagazine.com/2025/12/accessible-ux-research-ebook-release/ Tue, 09 Dec 2025 16:00:00 GMT We’ve got exciting news! eBook versions of “Accessible UX Research,” a new Smashing Book by Michele A. Williams, are now available for download! Which means soon the book will go to the printer. Order the eBook for instant download now or <a href="/printed-books/accessible-ux-research/" data-product-sku="accessible-ux-research" data-component="AddToCart" data-product-path="/printed-books/accessible-ux-research" data-silent="true">reserve your print copy at the presale price.</a> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/accessible-ux-research-ebook-release/</span> <p>This article is a sponsored by <a href="undefined">Accessible UX Research</a></p> <p>Smashing Library expands again! We’re so happy to announce our newest book, <strong><em>Accessible UX Research</em></strong>, is now <strong>available for download</strong> in eBook formats. Michele A. Williams takes us for a deep dive into the real world of UX testing, and provides a road map for including users with different abilities and needs in every phase of testing.</p> <p>But the truth is, you don’t need to be conducting UX testing or even be a UX professional to get a lot out of this book. Michele gives in-depth descriptions of the <strong>assistive technology we should all be familiar with</strong>, in addition to disability etiquette, common pitfalls when creating accessible prototypes, and so much more. You’ll refer to this book again and again in your daily work.</p> <a href="https://files.smashing.media/articles/accessible-ux-research-pre-release/accessible-ux-research-coming-soon-light-opt.png"> <img src="https://files.smashing.media/articles/accessible-ux-research-pre-release/accessible-ux-research-coming-soon-light-varnish-opt.png" /> </a> <p>This is also your last chance to get your printed copy at our discounted presale price. We expect printed copies to start <strong>shipping in early 2026</strong>. We know you’ll love this book, but don’t just take our word for it — we asked a few industry experts to check out <em>Accessible UX Research</em> too:</p> <blockquote><img src="https://files.smashing.media/articles/accessible-ux-research-pre-release/eric-bailey-opt.png" />“<em>Accessible UX Research</em> stands as a vital and necessary resource. In addressing disability at the User Experience Research layer, it helps to set an equal and equitable tone for products and features that resonates through the rest of the creation process. The book provides a <strong>solid framework</strong> for all aspects of conducting research efforts, including not only process considerations, but also importantly the mindset required to approach the work.<br /><br />This is <strong>the book I wish I had</strong> when I was first getting started with my accessibility journey. It is a gift, and I feel so fortunate that Michele has chosen to share it with us all.”<br /><br />Eric Bailey, Accessibility Advocate</blockquote> <blockquote><img src="https://files.smashing.media/articles/accessible-ux-research-pre-release/devon-pershing-opt.png" />“User research in accessibility is non-negotiable for actually meeting users’ needs, and this book is a <strong>critical piece in the puzzle</strong> of actually doing and integrating that research into accessibility work day to day.”<br /><br />Devon Pershing, Author of <em>The Accessibility Operations Guidebook</em></blockquote> <blockquote><img src="https://files.smashing.media/articles/accessible-ux-research-pre-release/manuel-matuzovic-opt.png" />“Our decisions as developers and designers are often based on recommendations, assumptions, and biases. Usually, this doesn’t work, because checking off lists or working solely from our own perspective can never truly represent the <strong>depth of human experience</strong>. Michele’s book provides you with the strategies you need to conduct UX research with diverse groups of people, challenge your assumptions, and create truly great products.”<br /><br />Manuel Matuzović, Author of the <em>Web Accessibility Cookbook</em></blockquote> <blockquote><img src="https://files.smashing.media/articles/accessible-ux-research-pre-release/anna-e-cook-opt.png" />“This book is a vital resource on inclusive research. Michele Williams expertly breaks down key concepts, guiding readers through disability models, language, and etiquette. A <strong>strong focus on real-world application</strong> equips readers to conduct impactful, inclusive research sessions. By emphasizing diverse perspectives and proactive inclusion, the book makes a compelling case for accessibility as a core principle rather than an afterthought. It is a must-read for researchers, product-makers, and advocates!”<br /><br />Anna E. Cook, Accessibility and Inclusive Design Specialist</blockquote> About The Book <p>The book isn’t a checklist for you to complete as a part of your accessibility work. It’s a <strong>practical guide to inclusive UX research</strong>, from start to finish. If you’ve ever felt unsure how to include disabled participants, or worried about “getting it wrong,” this book is for you. You’ll get clear, practical strategies to make your research more inclusive, effective, and reliable.</p> <p>Inside, you’ll learn how to:</p> <ul> <li><strong>Plan research</strong> that includes disabled participants from the start,</li> <li><strong>Recruit participants</strong> with disabilities,</li> <li><strong>Facilitate sessions</strong> that work for a range of access needs,</li> <li><strong>Ask better questions</strong> and avoid unintentionally biased research methods,</li> <li><strong>Build trust and confidence</strong> in your team around accessibility and inclusion.</li> </ul> <p>The book also challenges common assumptions about disability and urges readers to <strong>rethink what inclusion really means</strong> in UX research and beyond. Let’s move beyond compliance and start doing research that reflects the full diversity of your users. Whether you’re in industry or academia, this book gives you the tools — and the mindset — to make it happen.</p> <p>High-quality hardcover, 320 pages. Written by Dr. Michele A. Williams. Cover art by Espen Brunborg. <strong>Print edition shipping early 2026.</strong> eBook now available for download. <a href="https://smashed.by/accessibleresearchsample">Download a free sample</a> (PDF, 2.3MB) and <a href="/printed-books/accessible-ux-research/">reserve your print copy at the presale price.</a></p> <a href="https://files.smashing.media/articles/accessible-ux-research-ebook-release/accessible-ux-research-inside-the-book-1-opt.png"> <img src="https://files.smashing.media/articles/accessible-ux-research-ebook-release/accessible-ux-research-inside-the-book-1-opt.png" /> </a>“Accessible UX Research” shares successful strategies that’ll help you recruit the participants you need for the study you’re designing. (<a href="https://files.smashing.media/articles/accessible-ux-research-ebook-release/accessible-ux-research-inside-the-book-1-opt.png">Large preview</a>) Contents <ol> <li><strong>Disability mindset</strong>: For inclusive research to succeed, we must first confront our mindset about disability, typically influenced by ableism.</li> <li><strong>Diversity of disability</strong>: Accessibility is not solely about blind screen reader users; disability categories help us unpack and process the diversity of disabled users.</li> <li><strong>Disability in the stages of UX research</strong>: Disabled participants can and should be part of every research phase — formative, prototype, and summative.</li> <li><strong>Recruiting disabled participants</strong>: Recruiting disabled participants is not always easy, but that simply means we need to learn strategies on where to look.</li> <li><strong>Designing your research</strong>: While our goal is to influence accessible products, our research execution must also be accessible.</li> <li><strong>Facilitating an accessible study</strong>: Preparation and communication with your participants can ensure your study logistics run smoothly.</li> <li><strong>Analyzing and reporting with accuracy and impact</strong>: How you communicate your findings is just as important as gathering them in the first place — so prepare to be a storyteller, educator, and advocate.</li> <li><strong>Disability in the UX research field</strong>: Inclusion isn’t just for research <em>participants</em>, it’s important for our <em>colleagues</em> as well, as explained by blind UX Researcher Dr. Cynthia Bennett.</li> </ol> <a href="https://files.smashing.media/articles/accessible-ux-research-ebook-release/accessible-ux-research-inside-the-book-2-opt.png"> <img src="https://files.smashing.media/articles/accessible-ux-research-ebook-release/accessible-ux-research-inside-the-book-2-opt.png" /> </a>The book will challenge your disability mindset and what it means to be truly inclusive in your work. (<a href="https://files.smashing.media/articles/accessible-ux-research-ebook-release/accessible-ux-research-inside-the-book-2-opt.png">Large preview</a>) Who This Book Is For <p>Whether a UX professional who conducts research in industry or academia, or more broadly part of an engineering, product, or design function, you’ll want to read this book if…</p> <ol> <li>You have been tasked to <strong>improve accessibility of your product</strong>, but need to know where to start to facilitate this successfully.</li> <li>You want to establish a <strong>culture for accessibility</strong> in your company, but not sure how to make it work.</li> <li>You want to <strong>move from WCAG/EAA compliance</strong> to established accessibility practices and inclusion in research practices and beyond.</li> <li>You want to <strong>improve your overall accessibility knowledge</strong> and be viewed as an Accessibility Specialist for your organization.</li> </ol> <a href="https://files.smashing.media/articles/accessible-ux-research-pre-release/accessible-ux-research-kind-support-light-opt.png"> <img src="https://files.smashing.media/articles/accessible-ux-research-pre-release/accessible-ux-research-kind-support-light-varnish-opt.png" /> </a> About the Author <p><a href="https://mawconsultingllc.com/"><img src="https://files.smashing.media/articles/accessible-ux-research-pre-release/michele-williams-opt.png" /></a>Dr. Michele A. Williams is owner of <a href="https://mawconsultingllc.com/">M.A.W. Consulting, LLC - Making Accessibility Work</a>. Her 20+ years of experience include influencing top tech companies as a Senior User Experience (UX) Researcher and Accessibility Specialist and obtaining a PhD in Human-Centered Computing focused on accessibility. An international speaker, <a href="https://scholar.google.com/citations?user=1IfsBJEAAAAJ&hl=en">published academic author</a>, and <a href="https://patents.justia.com/patent/10854103">patented inventor</a>, she is passionate about educating and advising on technology that does not exclude disabled users.</p> Technical Details <ul> <li>ISBN: 978-3-910835-03-0 (print)</li> <li><strong>Quality hardcover</strong>, stitched binding, ribbon page marker.</li> <li>Free worldwide airmail <strong>shipping from Germany early 2026</strong>. We are currently <strong>unable to ship printed books to the United States</strong> due to customs clearance issues. If you have any questions, please <a href="mailto:help@smashingmagazine.com">contact us any time</a>.</li> <li>eBook now available for download as <strong>PDF, ePUB, and Amazon Kindle</strong>.</li> <li><strong><a href="/ebooks/accessible-ux-research-ebook/">Order the eBook for instant download now.</a></strong></li> <li><strong><a href="/printed-books/accessible-ux-research/">Reserve your print copy at the presale price.</a></strong></li> </ul> Community Matters ❤️ <p>Producing a book takes quite a bit of time, and we couldn’t pull it off without the support of our wonderful <strong>community</strong>. A huge shout-out to Smashing Members for the kind, ongoing support. The eBook is and always will be <a href="https://www.smashingmagazine.com/membership">free for <em>Smashing Members</em></a>. Plus, Members get a friendly discount when purchasing their printed copy. Just sayin’! ;-)</p> More Smashing Books & Goodies <p>Promoting best practices and providing you with practical tips to master your daily coding and design challenges has always been (and will be) at the <strong>core of everything we do</strong> at Smashing.</p> <p>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 <a href="/printed-books/">printed books that stand the test of time</a>. Trine, Heather, and Steven are three of these people. Have you checked out their books already?</p> <div> <div><a href="/printed-books/ethical-design-handbook/"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1f1cc2de-e6ed-4262-a1cb-cc0b2d4e3243/ethical-design-cover-shop-opt.png" /></a></div><h4><a href="/printed-books/ethical-design-handbook/">The Ethical Design Handbook</a></h4><p>A practical guide on ethical design for digital products.</p><p><a href="/printed-books/ethical-design-handbook/">Add to cart $44</a></p> <div><a href="/printed-books/understanding-privacy/"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d2da7a90-acdb-43c7-82b2-5225c33ca4d7/understanding-privacy-cover-new-opt.png" /></a></div><h4><a href="/printed-books/understanding-privacy/">Understanding Privacy</a></h4><p>Everything you need to know to put your users first and make a better web.</p><p><a href="/printed-books/understanding-privacy/">Add to cart $44</a></p> <div><a href="/printed-books/touch-design-for-mobile-interfaces/"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b14658fc-bb2d-41a6-8d1a-70eaaf1b8ec8/touch-design-book-shop-opt.png" /></a></div><h4><a href="/printed-books/touch-design-for-mobile-interfaces/">Touch Design for Mobile Interfaces</a></h4><p>Learn how touchscreen devices really work — and how people really use them.</p><p><a href="/printed-books/touch-design-for-mobile-interfaces/">Add to cart $44</a></p> </div> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/accessible-ux-research-ebook-release/</span> hello@smashingmagazine.com (Ari Stiles) <![CDATA[State, Logic, And Native Power: CSS Wrapped 2025]]> https://smashingmagazine.com/2025/12/state-logic-native-power-css-wrapped-2025/ https://smashingmagazine.com/2025/12/state-logic-native-power-css-wrapped-2025/ Tue, 09 Dec 2025 10:00:00 GMT CSS Wrapped 2025 is out! We’re entering a world where CSS can increasingly handle logic, state, and complex interactions once reserved for JavaScript. Here is an unpacking of the standout highlights and how they connect to the bigger evolution of modern CSS. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/state-logic-native-power-css-wrapped-2025/</span> <p>If I were to divide CSS evolutions into categories, we have moved far beyond the days when we simply asked for <code>border-radius</code> to feel like we were living in the future. We are currently living in a moment where the platform is handing us tools that don’t just tweak the visual layer, but fundamentally redefine how we architect interfaces. I thought the number of features announced in 2024 couldn’t be topped. I’ve never been so happily wrong.</p> <p>The Chrome team’s “<a href="https://chrome.dev/css-wrapped-2025/"><strong>CSS Wrapped 2025</strong></a>” is not just a list of features; it is a manifesto for a dynamic, native web. As someone who has spent a couple of years documenting these evolutions — from <a href="https://www.smashingmagazine.com/2024/08/css5-era-evolution/">defining “CSS5” eras</a> to the intricacies of <a href="https://www.smashingmagazine.com/2024/05/modern-css-layouts-no-framework/">modern layout utilities</a> — I find myself looking at this year’s wrap-up with a huge sense of excitement. We are seeing a shift towards “Optimized Ergonomics” and “Next-gen interactions” that allow us to stop fighting the code and start sculpting interfaces in their natural state.</p> <p>In this article, you can find <strong>a comprehensive look at the standout features from Chrome’s report</strong>, viewed through the lens of my recent experiments and hopes for the future of the platform.</p> The Component Revolution: Finally, A Native Customizable Select <p>For years, we have relied on heavy JavaScript libraries to style dropdowns, a “decades-old problem” that the platform has finally solved. As I detailed in <a href="https://utilitybend.com/blog/the-customizable-select-part-one-history-trickery-and-styling-the-select-with-css">my deep dive into the history of the customizable select</a> (and related articles), this has been a long road involving <a href="https://open-ui.org/">Open UI</a>, bikeshedding names like <code><selectmenu></code> and <code><selectlist></code>, and finally landing on a solution that re-uses the existing <code><select></code> element.</p> <p>The introduction of <code>appearance: base-select</code> is a strong foundation. It allows us to fully customize the <code><select></code> element — including the button and the dropdown list (via <code>::picker(select)</code>) — using standard CSS. Crucially, this is built with progressive enhancement in mind. By wrapping our styles in a feature query, we ensure a seamless experience across all browsers.</p> <p>We can opt in to this new behavior without breaking older browsers:</p> <pre><code>select { /* Opt-in for the new customizable select */ @supports (appearance: base-select) { &, &::picker(select) { appearance: base-select; } } } </code></pre> <p>The fantastic addition to allow rich content inside options, such as images or flags, is a lot of fun. We can create all sorts of selects nowadays: </p> <ul> <li><strong>Demo:</strong> I created a <a href="https://codepen.io/utilitybend/pen/ByawgNN">Poké-adventure demo</a> showing how the new <code><selectedcontent></code> element can clone rich content (like a Pokéball icon) from an option directly into the button.</li> </ul> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/JoXwwoZ">A customizable select with images inside of the options and the selectedcontent [forked]</a> by <a href="https://codepen.io/utilitybend">utilitybend</a>.</p> <ul> <li><strong>Demo:</strong> A comprehensive look at <a href="https://codepen.io/utilitybend/pen/GgRrLWb">styling the select with only pseudo-elements</a>.</li> </ul> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/pvyqqJR">A customizable select with only pseudo-elements [forked]</a> by <a href="https://codepen.io/utilitybend">utilitybend</a>.</p> <ul> <li><strong>Demo:</strong> Or you can kick it up a notch with this <a href="https://codepen.io/utilitybend/pen/ByoBMBm">Menu selection demo using optgroups</a>.</li> </ul> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/myPaaJZ">An actual Select Menu with optgroups [forked]</a> by <a href="https://codepen.io/utilitybend">utilitybend</a>.</p> <p>This feature alone signals a massive shift in how we will build forms, reducing dependencies and technical debt.</p> Scroll Markers And The Death Of The JavaScript Carousel <p>Creating carousels has historically been a friction point between developers and clients. Clients love them, developers dread the JavaScript required to make them accessible and performant. The arrival of <code>::scroll-marker</code> and <code>::scroll-button()</code> pseudo-elements changes this dynamic entirely.</p> <p>These features allow us to create navigation dots and scroll buttons purely with CSS, linked natively to the scroll container. As I wrote on my blog, this was <a href="https://utilitybend.com/blog/love-at-first-slide-creating-a-carousel-purely-out-of-css">Love at first slide</a>. The ability to create a fully functional, accessible slider without a single line of JavaScript is not just convenient; it is a triumph for performance. There are some accessibility concerns around this feature, and even though these are valid, there might be a way for us developers to make it work. The good thing is, all these UI changes are making it a lot easier than custom DOM manipulation and dragging around aria tags, but I digress…</p> <p>We can now group markers automatically using <code>scroll-marker-group</code> and style the buttons using anchor positioning to place them exactly where we want.</p> <div> <pre><code>.carousel { overflow-x: auto; scroll-marker-group: after; /* Creates the container for dots */ /* Create the buttons */ &::scroll-button(inline-end), &::scroll-button(inline-start) { content: " "; position: absolute; /* Use anchor positioning to center them */ position-anchor: --carousel; top: anchor(center); } /* Create the markers on the children */ div { &::scroll-marker { content: " "; width: 24px; border-radius: 50%; cursor: pointer; } /* Highlight the active marker */ &::scroll-marker:target-current { background: white; } } } </code></pre> </div> <ul> <li><strong>Demo:</strong> My experiment creating a <a href="https://codepen.io/utilitybend/pen/vEBQxNb">carousel purely out of HTML and CSS</a>, using anchor positioning to place the buttons.</li> </ul> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/ogxJJjQ">Carousel Pure HTML and CSS [forked]</a> by <a href="https://codepen.io/utilitybend">utilitybend</a>.</p> <ul> <li><strong>Demo:</strong> A <a href="https://codepen.io/utilitybend/pen/bNbXZWb">Webshop slick slider remake</a> using <code>attr()</code> to pull background images dynamically into the markers.</li> </ul> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/gbrZZPY">Webshop slick slider remake in CSS [forked]</a> by <a href="https://codepen.io/utilitybend">utilitybend</a>.</p> State Queries: Sticky Thing Stuck? Snappy Thing Snapped? <p>For a long time, we have lacked the ability to know if a <a href="https://utilitybend.com/blog/is-the-sticky-thing-stuck-is-the-snappy-item-snapped-a-look-at-state-queries-in-css">“sticky thing is stuck” or if a “snappy item is snapped”</a> without relying on IntersectionObserver hacks. Chrome 133 introduced scroll-state queries, allowing us to query these states declaratively.</p> <p>By setting <code>container-type: scroll-state</code>, we can now style children based on whether they are stuck, snapped, or overflowing. This is a massive “quality of life” improvement that I have been eagerly waiting for since CSS Day 2023. It has even evolved a lot since we can also see the direction of the scroll, lovely!</p> <p>For a simple example: we can finally apply a shadow to a header <em>only</em> when it is actually sticking to the top of the viewport:</p> <pre><code>.header-container { container-type: scroll-state; position: sticky; top: 0; header { transition: box-shadow 0.5s ease-out; /* The query checks the state of the container */ @container scroll-state(stuck: top) { box-shadow: rgba(0, 0, 0, 0.6) 0px 12px 28px 0px; } } } </code></pre> <ul> <li><strong>Demo:</strong> A <a href="https://codepen.io/utilitybend/pen/XWLQPOe">sticky header</a> that only applies a shadow when it is actually stuck.</li> </ul> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/raeooxY">Sticky headers with scroll-state query, checking if the sticky element is stuck [forked]</a> by <a href="https://codepen.io/utilitybend">utilitybend</a>.</p> <ul> <li><strong>Demo:</strong> A <a href="https://codepen.io/utilitybend/pen/MWMZoqp">Pokémon-themed list</a> that uses scroll-state queries combined with anchor positioning to move a frame over the currently snapped character.</li> </ul> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/vEGvvLM">Scroll-state query to check which item is snapped with CSS, Pokemon version [forked]</a> by <a href="https://codepen.io/utilitybend">utilitybend</a>.</p> Optimized Ergonomics: Logic In CSS <p>The “Optimized Ergonomics” section of CSS Wrapped highlights features that make our workflows more intuitive. Three features stand out as transformative for how we write logic:</p> <ol> <li><strong><code>if()</code> Statements</strong><br />We are finally getting conditionals in CSS. The <code>if()</code> function acts like a ternary operator for stylesheets, allowing us to apply values based on media, support, or style queries inline. This reduces the need for verbose <code>@media</code> blocks for single property changes.</li> <li><strong><code>@function</code> functions</strong><br />We can finally move some logic to a different place, resulting in some cleaner files, a real quality of life feature.</li> <li><strong><code>sibling-index()</code> and <code>sibling-count()</code></strong><br />These tree-counting functions solve the issue of staggering animations or styling items based on list size. As I explored in <a href="https://utilitybend.com/blog/styling-siblings-with-css-has-never-been-easier-experimenting-with-sibling-count-and-sibling-index">Styling siblings with CSS has never been easier</a>, this eliminates the need to hard-code custom properties (like <code>--index: 1</code>) in our HTML.</li> </ol> <h3>Example: Calculating Layouts</h3> <p>We can now write concise mathematical formulas. For example, staggering an animation for cards entering the screen becomes trivial:</p> <pre><code>.card-container > * { animation: reveal 0.6s ease-out forwards; /* No more manual --index variables! */ animation-delay: calc(sibling-index() * 0.1s); } </code></pre> <p>I even experimented with using these functions along with trigonometry to place items in a perfect circle without any JavaScript.</p> <ul> <li><strong>Demo:</strong> <a href="https://codepen.io/utilitybend/pen/wBKQPLr">Staggering card animations dynamically</a>.</li> </ul> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/RNaEERz">Stagger cards using sibling-index() [forked]</a> by <a href="https://codepen.io/utilitybend">utilitybend</a>.</p> <ul> <li><strong>Demo:</strong> Placing items in a <a href="https://codepen.io/utilitybend/pen/VYvVXLN">perfect circle</a> using <code>sibling-index</code>, <code>sibling-count</code>, and the new CSS <code>@function</code> feature.</li> </ul> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/XJdoojZ">The circle using sibling-index, sibling-count and functions [forked]</a> by <a href="https://codepen.io/utilitybend">utilitybend</a>.</p> My CSS To-Do List: Features I Can’t Wait To Try <p>While I have been busy sculpting selects and transitions, the “CSS Wrapped 2025” report is packed with other goodies that I haven’t had the chance to fire up in CodePen yet. These are high on my list for my next experiments:</p> <h3>Anchored Container Queries</h3> <p>I used CSS Anchor Positioning for the buttons in my carousel demo, but “CSS Wrapped” highlights an evolution of this: <strong>Anchored Container Queries</strong>. This solves a problem we’ve all had with tooltips: if the browser flips the tooltip from top to bottom because of space constraints, the “arrow” often stays pointing the wrong way. With anchored container queries (<code>@container anchored(fallback: flip-block)</code>), we can style the element based on which fallback position the browser actually chose.</p> <h3>Nested View Transition Groups</h3> <p>View Transitions have been a revolution, but they came with a specific trade-off: they flattened the element tree, which often broke 3D transforms or overflow: clip. I always had a feeling that it was missing something, and this might just be the answer. By using <code>view-transition-group: nearest</code>, we can finally nest transition groups within each other.</p> <p>This allows us to maintain clipping effects or 3D rotations during a transition — something that was previously impossible because the elements were hoisted up to the top level.</p> <pre><code>.card img { view-transition-name: photo; view-transition-group: nearest; /* Keep it nested! */ } </code></pre> <h3>Typography and Shapes</h3> <p>Finally, the ergonomist in me is itching to try <strong>Text Box Trim</strong>, which promises to remove that annoying extra whitespace above and below text content (the leading) to finally achieve perfect vertical alignment. And for the creative side, <code>corner-shape</code> and the <code>shape()</code> function are opening up non-rectangular layouts, allowing for “squaricles” and complex paths that respond to CSS variables. That being said, I can’t wait to have a design full of squircles!</p> A Hopeful Future <p>We are witnessing a world where <strong>CSS is becoming capable of handling logic, state, and complex interactions that previously belonged to JavaScript</strong>. Features like <code>moveBefore</code> (preserving DOM state for iframes/videos) and <code>attr()</code> (using types beyond strings for colors and grids) further cement this reality.</p> <p>While some of these features are currently experimental or specific to Chrome, the momentum is undeniable. We must hope for continued support across all browsers through initiatives like Interop to ensure these capabilities become the baseline. That being said, having browser engines is just as important as having all these awesome features in “Chrome first”. These new features need to be discussed, tinkered with, and tested before ever landing in browsers.</p> <p>It is a fantastic moment to get into CSS. We are no longer just styling documents; we are crafting dynamic, ergonomic, and robust applications with a native toolkit that is more powerful than ever.</p> <p>Let’s get going with this new era and spread the word.</p> <p>This is <a href="https://chrome.dev/css-wrapped-2025/">CSS Wrapped</a>!</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/state-logic-native-power-css-wrapped-2025/</span> hello@smashingmagazine.com (Brecht De Ruyte) <![CDATA[How UX Professionals Can Lead AI Strategy]]> https://smashingmagazine.com/2025/12/how-ux-professionals-can-lead-ai-strategy/ https://smashingmagazine.com/2025/12/how-ux-professionals-can-lead-ai-strategy/ Mon, 08 Dec 2025 08:00:00 GMT Lead your organization’s AI strategy before someone else defines it for you. A practical framework for UX professionals to shape AI implementation. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/how-ux-professionals-can-lead-ai-strategy/</span> <p>Your senior management is excited about AI. They’ve read the articles, attended the webinars, and seen the demos. They’re convinced that AI will transform your organization, boost productivity, and give you a competitive edge.</p> <p>Meanwhile, you’re sitting in your UX role wondering what this means for your team, your workflow, and your users. You might even be worried about your job security.</p> <p>The problem is that the conversation about how AI gets implemented is happening right now, and if you’re not part of it, <strong>someone else will decide how it affects your work</strong>. That someone probably doesn’t understand user experience, research practices, or the subtle ways poor implementation can damage the very outcomes management hopes to achieve.</p> <p>You have a choice. You can wait for directives to come down from above, or you can take control of the conversation and lead the AI strategy for your practice.</p> Why UX Professionals Must Own the AI Conversation <p>Management sees AI as efficiency gains, cost savings, competitive advantage, and innovation all wrapped up in one buzzword-friendly package. They’re not wrong to be excited. The technology is genuinely impressive and can deliver real value.</p> <p><strong>But without UX input, AI implementations often fail users in predictable ways:</strong></p> <ul> <li>They automate tasks without understanding the judgment calls those tasks require.</li> <li>They optimize for speed while destroying the quality that made your work valuable.</li> </ul> <p>Your expertise positions you perfectly to guide implementation. You understand users, workflows, quality standards, and the gap between what looks impressive in a demo and what actually works in practice.</p> <h3>Use AI Momentum to Advance Your Priorities</h3> <p>Management’s enthusiasm for AI creates an opportunity to advance priorities you’ve been fighting for unsuccessfully. When management is willing to invest in AI, you can connect those long-standing needs to the AI initiative. Position user research as essential for training AI systems on real user needs. Frame usability testing as the validation method that ensures AI-generated solutions actually work. </p> <p>How AI gets implemented will shape your team’s roles, your users’ experiences, and your organization’s capability to deliver quality digital products.</p> Your Role Isn’t Disappearing (It’s Evolving) <p>Yes, AI will automate some of the tasks you currently do. But someone needs to decide which tasks get automated, how they get automated, what guardrails to put in place, and how automated processes fit around real humans doing complex work.</p> <p>That someone should be <em>you</em>.</p> <p>Think about what you already do. When you conduct user research, AI might help you transcribe interviews or identify themes. But you’re the one who knows which participant hesitated before answering, which feedback contradicts what you observed in their behavior, and which insights matter most for your specific product and users.</p> <p>When you design interfaces, AI might generate layout variations or suggest components from your design system. But you’re the one who understands the constraints of your technical platform, the political realities of getting designs approved, and the edge cases that will break a clever solution.</p> <p><strong>Your future value comes from the work you’re already doing:</strong></p> <ul> <li><strong>Seeing the full picture.</strong><br />You understand how this feature connects to that workflow, how this user segment differs from that one, and why the technically correct solution won’t work in your organization’s reality.</li> <li><strong>Making judgment calls.</strong><br />You decide when to follow the design system and when to break it, when user feedback reflects a real problem versus a feature request from one vocal user, and when to push back on stakeholders versus find a compromise.</li> <li><strong>Connecting the dots.</strong><br />You translate between technical constraints and user needs, between business goals and design principles, between what stakeholders ask for and what will actually solve their problem.</li> </ul> <p>AI will keep getting better at individual tasks. But you’re the person who decides which solution actually works for your specific context. The people who will struggle are those doing simple, repeatable work without understanding why. Your value is in understanding context, making judgment calls, and connecting solutions to real problems.</p> Step 1: Understand Management’s AI Motivations <p>Before you can lead the conversation, you need to understand what’s driving it. Management is responding to real pressures: cost reduction, competitive pressure, productivity gains, and board expectations.</p> <p><strong>Speak their language.</strong><br />When you talk to management about AI, frame everything in terms of ROI, risk mitigation, and competitive advantage. <em>“This approach will protect our quality standards”</em> is less compelling than <em>“This approach reduces the risk of damaging our conversion rate while we test AI capabilities.”</em></p> <p><strong>Separate hype from reality.</strong><br />Take time to research what AI capabilities actually exist versus what’s hype. Read case studies, try tools yourself, and talk to peers about what’s actually working.</p> <p><strong>Identify real pain points.</strong><br />AI might legitimately address in your organization. Maybe your team spends hours formatting research findings, or accessibility testing creates bottlenecks. These are the problems worth solving.</p> Step 2: Audit Your Current State and Opportunities <p>Map your team’s work. Where does time actually go? Look at the past quarter and categorize how your team spent their hours.</p> <p><strong>Identify high-volume, repeatable tasks versus high-judgment work.</strong><br />Repeatable tasks are candidates for automation. High-judgment work is where you add irreplaceable value.</p> <p><strong>Also, identify what you’ve wanted to do but couldn’t get approved.</strong><br />This is your opportunity list. Maybe you’ve wanted quarterly usability tests, but only get budget annually. Write these down separately. You’ll connect them to your AI strategy in the next step.</p> <p>Spot opportunities where AI could genuinely help:</p> <ul> <li><strong>Research synthesis:</strong><br />AI can help organize and categorize findings.</li> <li><strong>Analyzing user behavior data:</strong><br />AI can process analytics and session recordings to surface patterns you might miss.</li> <li><strong>Rapid prototyping:</strong><br />AI can quickly generate testable prototypes, speeding up your test cycles.</li> </ul> Step 3: Define AI Principles for Your UX Practice <p>Before you start forming your strategy, establish principles that will guide every decision.</p> <p><strong>Set non-negotiables.</strong><br />User privacy, accessibility, and human oversight of significant decisions. Write these down and get agreement from leadership before you pilot anything.</p> <p><strong>Define criteria for AI use.</strong><br />AI is good at pattern recognition, summarization, and generating variations. AI is poor at understanding context, making ethical judgments, and knowing when rules should be broken.</p> <p><strong>Define success metrics beyond efficiency.</strong><br />Yes, you want to save time. But you also need to measure quality, user satisfaction, and team capability. Build a balanced scorecard that captures what actually matters.</p> <p><strong>Create guardrails.</strong><br />Maybe every AI-generated interface needs human review before it ships. These guardrails prevent the obvious disasters and give you space to learn safely.</p> Step 4: Build Your AI-in-UX Strategy <p>Now you’re ready to build the actual strategy you’ll pitch to leadership. <strong>Start small</strong> with pilot projects that have a clear scope and evaluation criteria.</p> <p><strong>Connect to business outcomes management cares about.</strong><br />Don’t pitch <em>“using AI for research synthesis.”</em> Pitch <em>“reducing time from research to insights by 40%, enabling faster product decisions.”</em></p> <p><strong>Piggyback your existing priorities on AI momentum.</strong><br />Remember that opportunity list from Step 2? Now you connect those long-standing needs to your AI strategy. If you’ve wanted more frequent usability testing, explain that AI implementations need continuous validation to catch problems before they scale. AI implementations genuinely benefit from good research practices. You’re simply using management’s enthusiasm for AI as the vehicle to finally get resources for practices that should have been funded all along.</p> <p><strong>Define roles clearly.</strong><br />Where do humans lead? Where does AI assist? Where won’t you automate? Management needs to understand that some work requires human judgment and should never be fully automated.</p> <p><strong>Plan for capability building.</strong><br />Your team will need training and new skills. Budget time and resources for this.</p> <p><strong>Address risks honestly.</strong><br />AI could generate biased recommendations, miss important context, or produce work that looks good but doesn’t actually function. For each risk, explain how you’ll detect it and what you’ll do to mitigate it.</p> Step 5: Pitch the Strategy to Leadership <p>Frame your strategy as de-risking management’s AI ambitions, not blocking them. You’re showing them how to implement AI successfully while avoiding the obvious pitfalls.</p> <p><strong>Lead with outcomes and ROI they care about.</strong><br />Put the business case up front.</p> <p><strong>Bundle your wish list into the AI strategy.</strong><br />When you present your strategy, include those capabilities you’ve wanted but couldn’t get approved before. Don’t present them as separate requests. Integrate them as essential components. <em>“To validate AI-generated designs, we’ll need to increase our testing frequency from annual to quarterly”</em> sounds much more reasonable than <em>“Can we please do more testing?”</em> You’re explaining what’s required for their AI investment to succeed.</p> <p><strong>Show quick wins alongside a longer-term vision.</strong><br />Identify one or two pilots that can show value within 30-60 days. Then show them how those pilots build toward bigger changes over the next year.</p> <p><strong>Ask for what you need.</strong><br />Be specific. You need a budget for tools, time for pilots, access to data, and support for team training.</p> Step 6: Implement and Demonstrate Value <p>Run your pilots with clear before-and-after metrics. Measure everything: time saved, quality maintained, user satisfaction, team confidence.</p> <p><strong>Document wins and learning.</strong><br />Failures are useful too. If a pilot doesn’t work out, document why and what you learned.</p> <p><strong>Share progress in management’s language.</strong> Monthly updates should focus on business outcomes, not technical details. <em>“We’ve reduced research synthesis time by 35% while maintaining quality scores”</em> is the right level of detail.</p> <p><strong>Build internal advocates by solving real problems.</strong><br />When your AI pilots make someone’s job easier, you create advocates who will support broader adoption.</p> <p><strong>Iterate based on what works in your specific context.</strong> Not every AI application will fit your organization. Pay attention to what’s actually working and double down on that.</p> Taking Initiative Beats Waiting <p>AI adoption is happening. The question isn’t whether your organization will use AI, but whether you’ll shape how it gets implemented.</p> <p>Your UX expertise is exactly what’s needed to implement AI successfully. You understand users, quality, and the gap between impressive demos and useful reality.</p> <p><strong>Take one practical first step this week.</strong><br />Schedule 30 minutes to map one AI opportunity in your practice. Pick one area where AI might help, think through how you’d pilot it safely, and sketch out what success would look like.</p> <p>Then start the conversation with your manager. You might be surprised how receptive they are to someone stepping up to lead this.</p> <p>You know how to understand user needs, test solutions, measure outcomes, and iterate based on evidence. Those skills don’t change just because AI is involved. You’re applying your existing expertise to a new tool.</p> <p>Your role isn’t disappearing. It’s evolving into something more strategic, more valuable, and more secure. But only if you take the initiative to shape that evolution yourself.</p> <h3>Further Reading On SmashingMag</h3> <ul> <li>“<a href="https://www.smashingmagazine.com/2025/08/designing-with-ai-practical-techniques-product-design/">Designing With AI, Not Around It: Practical Advanced Techniques For Product Design Use Cases</a>”, Ilia Kanazin & Marina Chernyshova</li> <li>“<a href="https://www.smashingmagazine.com/2025/08/beyond-hype-what-ai-can-do-product-design/">Beyond The Hype: What AI Can Really Do For Product Design</a>”, Nikita Samutin</li> <li>“<a href="https://www.smashingmagazine.com/2025/08/week-in-life-ai-augmented-designer/">A Week In The Life Of An AI-Augmented Designer</a>”, Lyndon Cerejo</li> <li>“<a href="https://www.smashingmagazine.com/2025/09/functional-personas-ai-lean-practical-workflow/">Functional Personas With AI: A Lean, Practical Workflow</a>”, Paul Boag</li> </ul> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/how-ux-professionals-can-lead-ai-strategy/</span> hello@smashingmagazine.com (Paul Boag) <![CDATA[Beyond The Black Box: Practical XAI For UX Practitioners]]> https://smashingmagazine.com/2025/12/beyond-black-box-practical-xai-ux-practitioners/ https://smashingmagazine.com/2025/12/beyond-black-box-practical-xai-ux-practitioners/ Fri, 05 Dec 2025 15:00:00 GMT Explainable AI isn’t just a challenge for data scientists. It’s also a design challenge and a core pillar of trustworthy, effective AI products. Victor Yocco offers practical guidance and design patterns for building explainability into real products. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/beyond-black-box-practical-xai-ux-practitioners/</span> <p>In my <a href="https://www.smashingmagazine.com/2025/09/psychology-trust-ai-guide-measuring-designing-user-confidence/">last piece</a>, we established a foundational truth: for users to adopt and rely on AI, they must <strong>trust</strong> it. We talked about trust being a multifaceted construct, built on perceptions of an AI’s <strong>Ability</strong>, <strong>Benevolence</strong>, <strong>Integrity</strong>, and <strong>Predictability</strong>. But what happens when an AI, in its silent, algorithmic wisdom, makes a decision that leaves a user confused, frustrated, or even hurt? A mortgage application is denied, a favorite song is suddenly absent from a playlist, and a qualified resume is rejected before a human ever sees it. In these moments, ability and predictability are shattered, and benevolence feels a world away.</p> <p>Our conversation now must evolve from the <em>why</em> of trust to the <em>how</em> of transparency. The field of <strong>Explainable AI (XAI)</strong>, which focuses on developing methods to make AI outputs understandable to humans, has emerged to address this, but it’s often framed as a purely technical challenge for data scientists. I argue it’s a critical design challenge for products relying on AI. It’s our job as UX professionals to bridge the gap between algorithmic decision-making and human understanding.</p> <p>This article provides practical, actionable guidance on how to research and design for explainability. We’ll move beyond the buzzwords and into the mockups, translating complex XAI concepts into concrete design patterns you can start using today.</p> De-mystifying XAI: Core Concepts For UX Practitioners <p>XAI is about answering the user’s question: “<strong>Why?</strong>” Why was I shown this ad? Why is this movie recommended to me? Why was my request denied? Think of it as the AI showing its work on a math problem. Without it, you just have an answer, and you’re forced to take it on faith. In showing the steps, you build comprehension and trust. You also allow for your work to be double-checked and verified by the very humans it impacts.</p> <h3>Feature Importance And Counterfactuals</h3> <p>There are a number of techniques we can use to clarify or explain what is happening with AI. While methods range from providing the entire logic of a decision tree to generating natural language summaries of an output, two of the most practical and impactful types of information UX practitioners can introduce into an experience are <strong>feature importance</strong> (Figure 1) and <strong>counterfactuals</strong>. These are often the most straightforward for users to understand and the most actionable for designers to implement.</p> <p><img src="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/1-example-feature-importance.png" /></p> <h4>Feature Importance</h4> <p>This explainability method answers, “<strong>What were the most important factors the AI considered?</strong>” It’s about identifying the top 2-3 variables that had the biggest impact on the outcome. It’s the headline, not the whole story.</p> <blockquote><strong>Example</strong>: Imagine an AI that predicts whether a customer will churn (cancel their service). Feature importance might reveal that “number of support calls in the last month” and “recent price increases” were the two most important factors in determining if a customer was likely to churn.</blockquote> <h4>Counterfactuals</h4> <p>This powerful method answers, “<strong>What would I need to change to get a different outcome?</strong>” This is crucial because it gives users a sense of agency. It transforms a frustrating “no” into an actionable “not yet.”</p> <blockquote><strong>Example</strong>: Imagine a loan application system that uses AI. A user is denied a loan. Instead of just seeing “Application Denied,” a counterfactual explanation would also share, “If your credit score were 50 points higher, or if your debt-to-income ratio were 10% lower, your loan would have been approved.” This gives Sarah clear, actionable steps she can take to potentially get a loan in the future.</blockquote> <h3>Using Model Data To Enhance The Explanation</h3> <p>Although technical specifics are often handled by data scientists, it's helpful for UX practitioners to know that tools like <a href="https://www.geeksforgeeks.org/artificial-intelligence/introduction-to-explainable-aixai-using-lime/">LIME</a> (Local Interpretable Model-agnostic Explanations) which explains individual predictions by approximating the model locally, and <a href="https://shap.readthedocs.io/en/latest/example_notebooks/overviews/An%20introduction%20to%20explainable%20AI%20with%20Shapley%20values.html">SHAP</a> (SHapley Additive exPlanations) which uses a game theory approach to explain the output of any machine learning model are commonly used to extract these “why” insights from complex models. These libraries essentially help break down an AI’s decision to show which inputs were most influential for a given outcome.</p> <p>When done properly, the data underlying an AI tool’s decision can be used to tell a powerful story. Let’s walk through feature importance and counterfactuals and show how the data science behind the decision can be utilized to enhance the user’s experience.</p> <p>Now let’s cover feature importance with the assistance of <strong>Local Explanations (e.g., LIME)</strong> data: This approach answers, “<strong>Why did the AI make <em>this specific</em> recommendation for me, right now?</strong>” Instead of a general explanation of how the model works, it provides a focused reason for a single, specific instance. It’s personal and contextual.</p> <blockquote><strong>Example</strong>: Imagine an AI-powered music recommendation system like Spotify. A local explanation would answer, “Why did the system recommend <strong>this specific</strong> song by Adele to <strong>you</strong> right now?” The explanation might be: “Because you recently listened to several other emotional ballads and songs by female vocalists.”</blockquote> <p>Finally, let’s cover the inclusion of <strong>Value-based Explanations (e.g. Shapley Additive Explanations (SHAP)</strong> data to an explanation of a decision: This is a more nuanced version of feature importance that answers, “<strong>How did each factor push the decision one way or the other?</strong>” It helps visualize <em>what</em> mattered, and whether its influence was positive or negative.</p> <blockquote><strong>Example</strong>: Imagine a bank uses an AI model to decide whether to approve a loan application.</blockquote> <p><strong>Feature Importance</strong>: The model output might show that the applicant’s credit score, income, and debt-to-income ratio were the most important factors in its decision. This answers <em>what</em> mattered.</p> <p><strong>Feature Importance with Value-Based Explanations (SHAP)</strong>: SHAP values would take feature importance further based on elements of the model.</p> <ul> <li>For an approved loan, SHAP might show that a high credit score significantly <em>pushed</em> the decision towards approval (positive influence), while a slightly higher-than-average debt-to-income ratio <em>pulled</em> it slightly away (negative influence), but not enough to deny the loan.</li> <li>For a denied loan, SHAP could reveal that a low income and a high number of recent credit inquiries <em>strongly pushed</em> the decision towards denial, even if the credit score was decent.</li> </ul> <p>This helps the loan officer explain to the applicant beyond <em>what</em> was considered, to <em>how each factor contributed</em> to the final “yes” or “no” decision.</p> <p>It’s crucial to recognize that the ability to provide good explanations often starts much earlier in the development cycle. Data scientists and engineers play a pivotal role by intentionally structuring models and data pipelines in ways that inherently support explainability, rather than trying to bolt it on as an afterthought.</p> <p>Research and design teams can foster this by initiating early conversations with data scientists and engineers about user needs for understanding, contributing to the development of explainability metrics, and collaboratively prototyping explanations to ensure they are both accurate and user-friendly.</p> XAI And Ethical AI: Unpacking Bias And Responsibility <p>Beyond building trust, XAI plays a critical role in addressing the profound <strong>ethical implications of AI*</strong>, particularly concerning algorithmic bias. Explainability techniques, such as analyzing SHAP values, can reveal if a model’s decisions are disproportionately influenced by sensitive attributes like race, gender, or socioeconomic status, even if these factors were not explicitly used as direct inputs.</p> <p>For instance, if a loan approval model consistently assigns negative SHAP values to applicants from a certain demographic, it signals a potential bias that needs investigation, empowering teams to surface and mitigate such unfair outcomes.</p> <p>The power of XAI also comes with the potential for “<strong>explainability washing</strong>.” Just as “greenwashing” misleads consumers about environmental practices, explainability washing can occur when explanations are designed to obscure, rather than illuminate, problematic algorithmic behavior or inherent biases. This could manifest as overly simplistic explanations that omit critical influencing factors, or explanations that strategically frame results to appear more neutral or fair than they truly are. It underscores the ethical responsibility of UX practitioners to design explanations that are genuinely transparent and verifiable.</p> <p>UX professionals, in collaboration with data scientists and ethicists, hold a crucial responsibility in communicating the <em>why</em> of a decision, and also the limitations and potential biases of the underlying AI model. This involves setting realistic user expectations about AI accuracy, identifying where the model might be less reliable, and providing clear channels for recourse or feedback when users perceive unfair or incorrect outcomes. Proactively addressing these ethical dimensions will allow us to build AI systems that are truly just and trustworthy.</p> From Methods To Mockups: Practical XAI Design Patterns <p>Knowing the concepts is one thing; designing them is another. Here’s how we can translate these XAI methods into intuitive design patterns.</p> <h3>Pattern 1: The "Because" Statement (for Feature Importance)</h3> <p>This is the simplest and often most effective pattern. It’s a direct, plain-language statement that surfaces the primary reason for an AI’s action.</p> <ul> <li><strong>Heuristic</strong>: Be direct and concise. Lead with the single most impactful reason. Avoid jargon at all costs.</li> </ul> <blockquote><strong>Example</strong>: Imagine a music streaming service. Instead of just presenting a “Discover Weekly” playlist, you add a small line of microcopy.<br /><br /><strong>Song Recommendation</strong>: “Velvet Morning”<br />Because you listen to “The Fuzz” and other psychedelic rock.</blockquote> <h3>Pattern 2: The "What-If" Interactive (for Counterfactuals)</h3> <p>Counterfactuals are inherently about empowerment. The best way to represent them is by giving users interactive tools to explore possibilities themselves. This is perfect for financial, health, or other goal-oriented applications.</p> <ul> <li><strong>Heuristic</strong>: Make explanations interactive and empowering. Let users see the cause and effect of their choices.</li> </ul> <blockquote><strong>Example</strong>: A loan application interface. After a denial, instead of a dead end, the user gets a tool to determine how various scenarios (what-ifs) might play out (See Figure 1).</blockquote> <p><img src="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/2-example-counterfactuals.png" /></p> <h3>Pattern 3: The Highlight Reel (For Local Explanations)</h3> <p>When an AI performs an action on a user’s content (like summarizing a document or identifying faces in photos), the explanation should be visually linked to the source.</p> <ul> <li><strong>Heuristic</strong>: Use visual cues like highlighting, outlines, or annotations to connect the explanation directly to the interface element it’s explaining.</li> </ul> <blockquote><strong>Example</strong>: An AI tool that summarizes long articles.<br /><br /><strong>AI-Generated Summary Point</strong>:<br />Initial research showed a market gap for sustainable products.<br /><br /><strong>Source in Document</strong>:<br />“...Our Q2 analysis of market trends conclusively demonstrated that <strong>no major competitor was effectively serving the eco-conscious consumer, revealing a significant market gap for sustainable products</strong>...”</blockquote> <h3>Pattern 4: The Push-and-Pull Visual (for Value-based Explanations)</h3> <p>For more complex decisions, users might need to understand the interplay of factors. Simple data visualizations can make this clear without being overwhelming.</p> <ul> <li><strong>Heuristic</strong>: Use simple, color-coded data visualizations (like bar charts) to show the factors that positively and negatively influenced a decision.</li> </ul> <blockquote><strong>Example</strong>: An AI screening a candidate’s profile for a job.<br /><br />Why this candidate is a 75% match:<br /><br /><strong>Factors pushing the score up</strong>:<br /><ul><li>5+ Years UX Research Experience</li><li>Proficient in Python</li></ul><br /><strong>Factors pushing the score down</strong>:<br /><ul><li>No experience with B2B SaaS</li></ul></blockquote> <p>Learning and using these design patterns in the UX of your AI product will help increase the explainability. You can also use additional techniques that I’m not covering in-depth here. This includes the following:</p> <ul> <li><strong>Natural language explanations</strong>: Translating an AI’s technical output into simple, conversational human language that non-experts can easily understand.</li> <li><strong>Contextual explanations</strong>: Providing a rationale for an AI’s output at the specific moment and location, it is most relevant to the user’s task.</li> <li><strong>Relevant visualizations</strong>: Using charts, graphs, or heatmaps to visually represent an AI’s decision-making process, making complex data intuitive and easier for users to grasp.</li> </ul> <p><strong>A Note For the Front End</strong>: <em>Translating these explainability outputs into seamless user experiences also presents its own set of technical considerations. Front-end developers often grapple with API design to efficiently retrieve explanation data, and performance implications (like the real-time generation of explanations for every user interaction) need careful planning to avoid latency.</em></p> Some Real-world Examples <p><strong>UPS Capital’s DeliveryDefense</strong></p> <p>UPS uses AI to assign a “delivery confidence score” to addresses to predict the likelihood of a package being stolen. Their <a href="https://about.ups.com/us/en/our-stories/innovation-driven/ups-s-deliverydefense-pits-ai-against-criminals.html">DeliveryDefense</a> software analyzes historical data on location, loss frequency, and other factors. If an address has a low score, the system can proactively reroute the package to a secure UPS Access Point, providing an explanation for the decision (e.g., “Package rerouted to a secure location due to a history of theft”). This system demonstrates how XAI can be used for risk mitigation and building customer trust through transparency.</p> <p><strong>Autonomous Vehicles</strong></p> <p>These vehicles of the future will need to effectively use <a href="https://online.hbs.edu/blog/post/ai-in-business">XAI to help their vehicles make safe, explainable decisions</a>. When a self-driving car brakes suddenly, the system can provide a real-time explanation for its action, for example, by identifying a pedestrian stepping into the road. This is not only crucial for passenger comfort and trust but is a regulatory requirement to prove the safety and accountability of the AI system.</p> <p><strong>IBM Watson Health (and its challenges)</strong></p> <p>While often cited as a general example of AI in healthcare, it’s also a valuable case study for the <em>importance</em> of XAI. The <a href="https://www.henricodolfing.com/2024/12/case-study-ibm-watson-for-oncology-failure.html">failure of its Watson for Oncology project</a> highlights what can go wrong when explanations are not clear, or when the underlying data is biased or not localized. The system’s recommendations were sometimes inconsistent with local clinical practices because they were based on U.S.-centric guidelines. This serves as a cautionary tale on the need for robust, context-aware explainability.</p> The UX Researcher’s Role: Pinpointing And Validating Explanations <p>Our design solutions are only effective if they address the right user questions at the right time. An explanation that answers a question the user doesn’t have is just noise. This is where UX research becomes the critical connective tissue in an XAI strategy, ensuring that we explain the what and how that actually matters to our users. The researcher’s role is twofold: first, to inform the strategy by identifying where explanations are needed, and second, to validate the designs that deliver those explanations.</p> <h3>Informing the XAI Strategy (What to Explain)</h3> <p>Before we can design a single explanation, we must understand the user’s mental model of the AI system. What do they believe it’s doing? Where are the gaps between their understanding and the system’s reality? This is the foundational work of a UX researcher.</p> <h4>Mental Model Interviews: Unpacking User Perceptions Of AI Systems</h4> <p>Through deep, semi-structured interviews, UX practitioners can gain invaluable insights into how users perceive and understand AI systems. These sessions are designed to encourage users to literally draw or describe their internal “mental model” of how they believe the AI works. This often involves asking open-ended questions that prompt users to explain the system’s logic, its inputs, and its outputs, as well as the relationships between these elements.</p> <p>These interviews are powerful because they frequently reveal profound misconceptions and assumptions that users hold about AI. For example, a user interacting with a recommendation engine might confidently assert that the system is based purely on their past viewing history. They might not realize that the algorithm also incorporates a multitude of other factors, such as the time of day they are browsing, the current trending items across the platform, or even the viewing habits of similar users.</p> <p>Uncovering this gap between a user’s mental model and the actual underlying AI logic is critically important. It tells us precisely what specific information we need to communicate to users to help them build a more accurate and robust mental model of the system. This, in turn, is a fundamental step in fostering trust. When users understand, even at a high level, how an AI arrives at its conclusions or recommendations, they are more likely to trust its outputs and rely on its functionality. </p> <h4>AI Journey Mapping: A Deep Dive Into User Trust And Explainability</h4> <p>By meticulously mapping the user’s journey with an AI-powered feature, we gain invaluable insights into the precise moments where confusion, frustration, or even profound distrust emerge. This uncovers critical junctures where the user’s mental model of how the AI operates clashes with its actual behavior.</p> <p>Consider a music streaming service: Does the user’s trust plummet when a playlist recommendation feels “random,” lacking any discernible connection to their past listening habits or stated preferences? This perceived randomness is a direct challenge to the user’s expectation of intelligent curation and a breach of the implicit promise that the AI understands their taste. Similarly, in a photo management application, do users experience significant frustration when an AI photo-tagging feature consistently misidentifies a cherished family member? This error is more than a technical glitch; it strikes at the heart of accuracy, personalization, and even emotional connection.</p> <p>These pain points are vivid signals indicating precisely where a well-placed, clear, and concise explanation is necessary. Such explanations serve as crucial repair mechanisms, mending a breach of trust that, if left unaddressed, can lead to user abandonment.</p> <p>The power of AI journey mapping lies in its ability to move us beyond simply explaining the final output of an AI system. While understanding <em>what</em> the AI produced is important, it’s often insufficient. Instead, this process compels us to focus on explaining the <em>process</em> at critical moments. This means addressing:</p> <ul> <li><strong>Why a particular output was generated</strong>: Was it due to specific input data? A particular model architecture?</li> <li><strong>What factors influenced the AI’s decision</strong>: Were certain features weighted more heavily?</li> <li><strong>How the AI arrived at its conclusion</strong>: Can we offer a simplified, analogous explanation of its internal workings?</li> <li><strong>What assumptions the AI made</strong>: Were there implicit understandings of the user’s intent or data that need to be surfaced?</li> <li><strong>What the limitations of the AI are</strong>: Clearly communicating what the AI <em>cannot</em> do, or where its accuracy might waver, builds realistic expectations.</li> </ul> <p>AI journey mapping transforms the abstract concept of XAI into a practical, actionable framework for UX practitioners. It enables us to move beyond theoretical discussions of explainability and instead pinpoint the exact moments where user trust is at stake, providing the necessary insights to build AI experiences that are powerful, transparent, understandable, and trustworthy.</p> <p>Ultimately, research is how we uncover the unknowns. Your team might be debating how to explain why a loan was denied, but research might reveal that users are far more concerned with understanding how their data was used in the first place. Without research, we are simply guessing what our users are wondering.</p> Collaborating On The Design (How to Explain Your AI) <p>Once research has identified what to explain, the collaborative loop with design begins. Designers can prototype the patterns we discussed earlier—the “Because” statement, the interactive sliders—and researchers can put those designs in front of users to see if they hold up.</p> <p><strong>Targeted Usability & Comprehension Testing</strong>: We can design research studies that specifically test the XAI components. We don’t just ask, “<em>Is this easy to use?</em>” We ask, “<em>After seeing this, can you tell me in your own words why the system recommended this product?</em>” or “<em>Show me what you would do to see if you could get a different result.</em>” The goal here is to measure comprehension and actionability, alongside usability.</p> <p><strong>Measuring Trust Itself</strong>: We can use simple surveys and rating scales before and after an explanation is shown. For instance, we can ask a user on a 5-point scale, “<em>How much do you trust this recommendation?</em>” before they see the “Because” statement, and then ask them again afterward. This provides quantitative data on whether our explanations are actually moving the needle on trust.</p> <p>This process creates a powerful, iterative loop. Research findings inform the initial design. That design is then tested, and the new findings are fed back to the design team for refinement. Maybe the “Because” statement was too jargony, or the “What-If” slider was more confusing than empowering. Through this collaborative validation, we ensure that the final explanations are technically accurate, genuinely understandable, useful, and trust-building for the people using the product.</p> The Goldilocks Zone Of Explanation <p>A critical word of caution: it is possible to <em>over-explain</em>. As in the fairy tale, where Goldilocks sought the porridge that was ‘just right’, the goal of a good explanation is to provide the right amount of detail—not too much and not too little. Bombarding a user with every variable in a model will lead to cognitive overload and can actually <em>decrease</em> trust. The goal is not to make the user a data scientist.</p> <p>One solution is <strong>progressive disclosure</strong>.</p> <ol> <li><strong>Start with the simple.</strong> Lead with a concise “Because” statement. For most users, this will be enough.</li> <li><strong>Offer a path to detail.</strong> Provide a clear, low-friction link like “Learn More” or “See how this was determined.”</li> <li><strong>Reveal the complexity.</strong> Behind that link, you can offer the interactive sliders, the visualizations, or a more detailed list of contributing factors.</li> </ol> <p>This layered approach respects user attention and expertise, providing just the right amount of information for their needs. Let’s imagine you’re using a smart home device that recommends optimal heating based on various factors.</p> <p><strong>Start with the simple</strong>: “<em>Your home is currently heated to 72 degrees, which is the optimal temperature for energy savings and comfort.</em>”</p> <p><strong>Offer a path to detail</strong>: Below that, a small link or button: “<em>Why is 72 degrees optimal?</em>"</p> <p><strong>Reveal the complexity</strong>: Clicking that link could open a new screen showing:</p> <ul> <li>Interactive sliders for outside temperature, humidity, and your preferred comfort level, demonstrating how these adjust the recommended temperature.</li> <li>A visualization of energy consumption at different temperatures.</li> <li>A list of contributing factors like “Time of day,” “Current outside temperature,” “Historical energy usage,” and “Occupancy sensors.”</li> </ul> <p><img src="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/3-example-progressive-disclosure.png" /></p> <p>It’s effective to combine multiple XAI methods and this Goldilocks Zone of Explanation pattern, which advocates for progressive disclosure, implicitly encourages this. You might start with a simple “Because” statement (Pattern 1) for immediate comprehension, and then offer a “Learn More” link that reveals a “What-If” Interactive (Pattern 2) or a “Push-and-Pull Visual” (Pattern 4) for deeper exploration.</p> <p>For instance, a loan application system could initially state the primary reason for denial (feature importance), then allow the user to interact with a “What-If” tool to see how changes to their income or debt would alter the outcome (counterfactuals), and finally, provide a detailed “Push-and-Pull” chart (value-based explanation) to illustrate the positive and negative contributions of all factors. This layered approach allows users to access the level of detail they need, when they need it, preventing cognitive overload while still providing comprehensive transparency.</p> <p>Determining which XAI tools and methods to use is primarily a function of thorough UX research. Mental model interviews and AI journey mapping are crucial for pinpointing user needs and pain points related to AI understanding and trust. Mental model interviews help uncover user misconceptions about how the AI works, indicating areas where fundamental explanations (like feature importance or local explanations) are needed. AI journey mapping, on the other hand, identifies critical moments of confusion or distrust in the user’s interaction with the AI, signaling where more granular or interactive explanations (like counterfactuals or value-based explanations) would be most beneficial to rebuild trust and provide agency. </p> <p><img src="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/4-ai-business-startup-assistant.png" /></p> <p>Ultimately, the <em>best</em> way to choose a technique is to let user research guide your decisions, ensuring that the explanations you design directly address actual user questions and concerns, rather than simply offering technical details for their own sake.</p> XAI for Deep Reasoning Agents <p>Some of the newest AI systems, known as <a href="https://learn.microsoft.com/en-us/microsoft-copilot-studio/faqs-reasoning">deep reasoning agents</a>, produce an explicit “chain of thought” for every complex task. They do not merely cite sources; they show the logical, step-by-step path they took to arrive at a conclusion. While this transparency provides valuable context, a play-by-play that spans several paragraphs can feel overwhelming to a user simply trying to complete a task.</p> <p>The principles of XAI, especially the Goldilocks Zone of Explanation, apply directly here. We can curate the journey, using progressive disclosure to show only the final conclusion and the most salient step in the thought process first. Users can then opt in to see the full, detailed, multi-step reasoning when they need to double-check the logic or find a specific fact. This approach respects user attention while preserving the agent’s full transparency.</p> Next Steps: Empowering Your XAI Journey <p>Explainability is a fundamental pillar for building <strong>trustworthy and effective AI products</strong>. For the advanced practitioner looking to drive this change within their organization, the journey extends beyond design patterns into advocacy and continuous learning.</p> <p>To deepen your understanding and practical application, consider exploring resources like the <a href="https://research.ibm.com/blog/ai-explainability-360">AI Explainability 360 (AIX360) toolkit</a> from IBM Research or Google’s <a href="https://pair-code.github.io/what-if-tool/">What-If Tool</a>, which offer interactive ways to explore model behavior and explanations. Engaging with communities like the <a href="https://responsibleaiforum.com">Responsible AI Forum</a> or specific research groups focused on human-centered AI can provide invaluable insights and collaboration opportunities.</p> <p>Finally, be an advocate for XAI within your own organization. Frame explainability as a strategic investment. Consider a brief pitch to your leadership or cross-functional teams:</p> <blockquote>“By investing in XAI, we’ll go beyond building trust; we’ll accelerate user adoption, reduce support costs by empowering users with understanding, and mitigate significant ethical and regulatory risks by exposing potential biases. This is good design and smart business.”</blockquote> <p>Your voice, grounded in practical understanding, is crucial in bringing AI out of the black box and into a collaborative partnership with users.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/beyond-black-box-practical-xai-ux-practitioners/</span> hello@smashingmagazine.com (Victor Yocco) <![CDATA[Masonry: Things You Won’t Need A Library For Anymore]]> https://smashingmagazine.com/2025/12/masonry-things-you-wont-need-library-anymore/ https://smashingmagazine.com/2025/12/masonry-things-you-wont-need-library-anymore/ Tue, 02 Dec 2025 10:00:00 GMT CSS Masonry is almost here! Patrick Brosset takes a deep dive into what this long-awaited feature means for web developers and how you could make use of it in your own work. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/masonry-things-you-wont-need-library-anymore/</span> <p>About 15 years ago, I was working at a company where we built apps for travel agents, airport workers, and airline companies. We also built our own in-house framework for UI components and single-page app capabilities.</p> <p>We had components for everything: fields, buttons, tabs, ranges, datatables, menus, datepickers, selects, and multiselects. We even had a div component. Our div component was great by the way, it allowed us to do rounded corners on all browsers, which, believe it or not, wasn't an easy thing to do at the time.</p> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/1-div-component-example.png" /></p> <p>Our work took place at a point in our history when JS, Ajax, and dynamic HTML were seen as a revolution that brought us into the future. Suddenly, we could update a page dynamically, get data from a server, and avoid having to navigate to other pages, which was seen as slow and flashed a big white rectangle on the screen between the two pages.</p> <p>There was a phrase, made popular by Jeff Atwood (the founder of StackOverflow), which read: </p> <blockquote>“Any application that can be written in JavaScript will eventually be written in JavaScript.”<br /><br />— <a href="https://blog.codinghorror.com/all-programming-is-web-programming/#:~:text=any%20application%20that%C2%A0can%C2%A0be%20written%20in%20JavaScript%2C%C2%A0will%C2%A0eventually%20be%20written%20in%20JavaScript">Jeff Atwood</a></blockquote> <p>To us at the time, this felt like a dare to actually go and create those apps. It felt like a blanket approval to do everything with JS.</p> <p>So we did everything with JS, and we didn’t really take the time to research other ways of doing things. We didn’t really feel the incentive to properly learn what HTML and CSS could do. We didn’t really perceive the web as an evolving app platform in its entirety. We mostly saw it as something we needed to work around, especially when it came to browser support. We could just throw more JS at it to get things done.</p> <p>Would taking the time to learn more about how the web worked and what was available on the platform have helped me? Sure, I could probably have shaved a bunch of code that wasn’t truly needed. But, at the time, maybe not that much.</p> <p>You see, browser differences were pretty significant back then. This was a time when Internet Explorer was still the dominant browser, with Firefox being the close second, but starting to lose market share due to Chrome rapidly gaining popularity. Although Chrome and Firefox were quite good at agreeing on web standards, the environments in which our apps were running meant that we had to support IE6 for a long time. Even when we were allowed to support IE8, we still had to deal with a lot of differences between browsers. Not only that, but the web of the time just didn't have that many capabilities built right into the platform.</p> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/2-browser-market-share.png" /></p> <p>Fast forward to today. Things have changed tremendously. Not only do we have more of these capabilities than ever before, but the rate at which they become available has increased as well.</p> <p>Let me ask the question again, then: Would taking the time to learn more about how the web works and what is available on the platform help you today? Absolutely yes. Learning to understand and use the web platform today puts you at a huge advantage over other developers.</p> <p>Whether you work on performance, accessibility, responsiveness, all of them together, or just shipping UI features, if you want to do it as a responsible engineer, knowing the tools that are available to you helps you reach your goals faster and better.</p> Some Things You Might Not Need A Library For Anymore <p>Knowing what browsers support today, the question, then, is: What can we ditch? Do we need a div component to do rounded corners in 2025? Of course, we don’t. The <code>border-radius</code> property has been supported by all currently used browsers for more than 15 years at this point. And <code>corner-shape</code> is also coming soon, for even fancier corners.</p> <p>Let’s take a look at relatively recent features that are now available in all major browsers, and which you can use to replace existing dependencies in your codebase.</p> <p>The point isn't to immediately ditch all your beloved libraries and rewrite your codebase. As for everything else, you’ll need to take browser support into account first and decide based on other factors specific to your project. The following features are implemented in the three main browser engines (Chromium, WebKit, and Gecko), but you might have different browser support requirements that prevent you from using them right away. Now is still a good time to learn about these features, though, and perhaps plan to use them at some point.</p> <h3>Popovers And Dialogs</h3> <p>The <a href="https://developer.mozilla.org/docs/Web/API/Popover_API">Popover API</a>, the <a href="https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/dialog"><code><dialog></code> HTML element</a>, and the <a href="https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::backdrop"><code>::backdrop</code> pseudo-element</a> can help you get rid of dependencies on popup, tooltip, and dialog libraries, such as <a href="https://floating-ui.com/">Floating UI</a>, <a href="https://atomiks.github.io/tippyjs/">Tippy.js</a>, <a href="https://tetherjs.dev/docs/welcome/">Tether</a>, or <a href="https://react-tooltip.com/">React Tooltip</a>.</p> <p>They handle accessibility and focus management for you, out of the box, are highly customizable by using CSS, and can easily be animated.</p> <h3>Accordions</h3> <p>The <a href="https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/details"><code><details></code> element</a>, its <a href="https://developer.mozilla.org/docs/Web/HTML/Reference/Elements/details#name"><code>name</code> attribute</a> for mutually exclusive elements, and the <a href="https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::details-content"><code>::details-content</code></a> pseudo-element remove the need for accordion components like the <a href="https://getbootstrap.com/docs/5.3/components/accordion/">Bootstrap Accordion</a> or the <a href="https://mui.com/material-ui/react-accordion/">React Accordion component</a>.</p> <p>Just using the platform here means it’s easier for folks who know HTML/CSS to understand your code without having to first learn to use a specific library. It also means you’re immune to breaking changes in the library or the discontinuation of that library. And, of course, it means less code to download and run. Mutually exclusive details elements don’t need JS to open, close, or animate.</p> <h3>CSS Syntax</h3> <p><a href="https://developer.mozilla.org/docs/Web/CSS/@layer">Cascade layers</a>, for a more organized CSS codebase, <a href="https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/Nesting_selector">CSS nesting</a>, for more compact CSS, new color functions, <a href="https://developer.mozilla.org/docs/Web/CSS/CSS_colors/Relative_colors">relative colors</a>, and <a href="https://developer.mozilla.org/docs/Web/CSS/color_value/color-mix"><code>color-mix</code></a>, new Maths functions like <a href="https://developer.mozilla.org/docs/Web/CSS/abs"><code>abs()</code></a>, <a href="https://developer.mozilla.org/docs/Web/CSS/sign"><code>sign()</code></a>, <a href="https://developer.mozilla.org/docs/Web/CSS/pow"><code>pow()</code></a> and others help reduce dependencies on <a href="https://css-tricks.com/is-it-time-to-un-sass/">CSS pre-processors</a>, utility libraries like Bootstrap and Tailwind, or even runtime CSS-in-JS libraries.</p> <p>The game changer <a href="https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:has"><code>:has()</code></a>, one of the most requested features for a long time, removes the need for more complicated JS-based solutions.</p> <h3>JS Utilities</h3> <p>Modern Array methods like <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/findLast"><code>findLast()</code></a>, or <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/at"><code>at()</code></a>, as well as Set methods like <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set/difference"><code>difference()</code></a>, <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set/intersection"><code>intersection()</code></a>, <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set/union"><code>union()</code></a> and others can reduce dependencies on libraries like <a href="https://lodash.com/">Lodash</a>.</p> <h3>Container Queries</h3> <p><a href="https://developer.mozilla.org/docs/Web/CSS/CSS_containment/Container_queries">Container queries</a> make UI components respond to things other than the viewport size, and therefore make them more reusable across different contexts.</p> <p>No need to use a JS-heavy UI library for this anymore, and no need to use a <a href="https://github.com/GoogleChromeLabs/container-query-polyfill">polyfill</a> either.</p> <h3>Layout</h3> <p><a href="https://developer.mozilla.org/docs/Web/CSS/CSS_grid_layout">Grid</a>, <a href="https://developer.mozilla.org/docs/Web/CSS/CSS_grid_layout/Subgrid">subgrid</a>, <a href="https://developer.mozilla.org/docs/Learn_web_development/Core/CSS_layout/Flexbox">flexbox</a>, or <a href="https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/columns">multi-column</a> have been around for a long time now, but looking at the <a href="https://2025.stateofcss.com/en-US">results of the State of CSS surveys</a>, it’s clear that developers tend to be very cautious with adopting new things, and wait for a very long time before they do.</p> <p>These features have been <a href="https://web-platform-dx.github.io/web-features/">Baseline</a> for a long time and you could use them to get rid of dependencies on things like the <a href="https://getbootstrap.com/docs/5.3/layout/grid/">Bootstrap’s grid system</a>, <a href="https://get.foundation/sites/docs/flexbox-utilities.html">Foundation Framework’s flexbox utilities</a>, <a href="https://bulma.io/documentation/grid/fixed-grid/">Bulma fixed grid</a>, <a href="https://materializecss.com/grid.html">Materialize grid</a>, or <a href="https://tailwindcss.com/docs/columns">Tailwind columns</a>.</p> <p>I’m not saying you should drop your framework. Your team adopted it for a reason, and removing it might be a big project. But looking at what the web platform can offer without a third-party wrapper on top comes with a lot of benefits.</p> Things You Might Not Need Anymore In The Near Future <p>Now, let’s take a quick look at some of the things you will not need a library for in the near future. That is to say, the things below are not quite ready for mass adoption, but being aware of them and planning for potential later use can be helpful.</p> <h3>Anchor Positioning</h3> <p><a href="https://developer.mozilla.org/docs/Web/CSS/CSS_anchor_positioning">CSS anchor positioning</a> handles the positioning of popovers and tooltips relative to other elements, and takes care of keeping them in view, even when moving, scrolling, or resizing the page.</p> <p>This is a great complement to the Popover API mentioned before, which will make it even easier to migrate away from more performance-intensive JS solutions.</p> <h3>Navigation API</h3> <p>The <a href="https://developer.mozilla.org/docs/Web/API/Navigation_API">Navigation API</a> can be used to handle navigation in single-page apps and might be a great complement, or even a replacement, to <a href="https://reactrouter.com/">React Router</a>, <a href="https://nextjs.org/docs/routing/introduction">Next.js routing</a>, or <a href="https://angular.io/guide/router">Angular routing tasks</a>.</p> <h3>View Transitions API</h3> <p>The <a href="https://developer.mozilla.org/docs/Web/API/View_Transition_API">View Transitions API</a> can animate between the different states of a page. On a single-page application, this makes smooth transitions between states very easy, and can help you get rid of animation libraries such as <a href="https://animejs.com/">Anime.js</a>, <a href="https://greensock.com/gsap/">GSAP</a>, or <a href="https://motion.dev/">Motion.dev</a>.</p> <p>Even better, the API can also be used with multiple-page applications.</p> <p>Remember earlier, when I said that the reason we built single-page apps at the company where I worked 15 years ago was to avoid the white flash of page reloads when navigating? Had that API been available at the time, we would have been able to achieve beautiful page transition effects without a single-page framework and without a huge initial download of the entire app.</p> <h3>Scroll-driven Animations</h3> <p><a href="https://developer.mozilla.org/docs/Web/CSS/CSS_scroll-driven_animations">Scroll-driven animations</a> run on the user’s scroll position, rather than over time, making them a great solution for storytelling and product tours.</p> <p>Some people <a href="https://gt-era.com/">have gone a bit over the top</a> with it, but when used well, this can be a very effective design tool, and can help get rid of libraries like: <a href="https://scrollrevealjs.org/">ScrollReveal</a>, <a href="https://gsap.com/scroll/">GSAP Scroll</a>, or <a href="https://wowjs.uk/">WOW.js</a>.</p> <h3>Customizable Selects</h3> <p>A <a href="https://developer.mozilla.org/docs/Learn_web_development/Extensions/Forms/Customizable_select">customizable select</a> is a normal <code><select></code> element that lets you fully customize its appearance and content, while ensuring accessibility and performance benefits.</p> <p>This has been a long time coming, and a highly requested feature, and it’s amazing to see it come to the web platform soon. With a built-in customizable select, you can finally ditch all this hard-to-maintain JS code for your custom select components.</p> <h3>CSS Masonry</h3> <p><a href="https://developer.chrome.com/blog/masonry-update">CSS Masonry</a> is another upcoming web platform feature that I want to spend more time on.</p> <p>With CSS Masonry, you can achieve layouts that are very hard, or even impossible, with flex, grid, or other built-in CSS layout primitives. Developers often resort to using third-party libraries to achieve Masonry layouts, such as the <a href="https://masonry.desandro.com/">Masonry JS library</a>.</p> <p>But, more on that later. Let’s wrap this point up before moving on to Masonry.</p> Why You Should Care <p>The job market is full of web developers with experience in JavaScript and the latest frameworks of the day. So, really, what’s the point in learning to use the web platform primitives more, if you can do the same things with the libraries, utilities, and frameworks you already know today?</p> <p>When an entire industry relies on these frameworks, and you can just pull in the right library, shouldn’t browser vendors just work with these libraries to make them load and run faster, rather than trying to convince developers to use the platform instead?</p> <p>First of all, we do work with library authors, and we do make frameworks better by learning about what they use and improving those areas.</p> <p>But secondly, “just using the platform” can bring pretty significant benefits.</p> <h3>Sending Less Code To Devices</h3> <p>The main benefit is that you end up sending far less code to your clients’ devices.</p> <p>According to the <a href="https://almanac.httparchive.org/en/2024/">2024 Web Almanac</a>, the average number of HTTP requests is around 70 per site, <a href="https://almanac.httparchive.org/en/2024/javascript#how-many-javascript-requests-per-page">most of which is due to JavaScript with 23 requests</a>. In 2024, JS overtook images as the dominant file type too. The median number of page requests for JS files is 23, up 8% since 2022.</p> <p>And page size continues to grow year over year. The median page weight is around 2MB now, which is 1.8MB more than it was 10 years ago.</p> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/3-median-page-weight.png" /></p> <p>Sure, your internet connection speed has probably increased, too, but that’s not the case for everyone. And not everyone has the same device capabilities either.</p> <p>Pulling in third-party code for things you can do with the platform, instead, most probably means you ship more code, and therefore reach fewer customers than you normally would. On the web, bad loading performance leads to large abandonment rates and hurts brand reputation.</p> <h3>Running Less Code On Devices</h3> <p>Furthermore, the code you do ship on your customers’ devices likely runs faster if it uses fewer JavaScript abstractions on top of the platform. It’s also probably more responsive and more accessible by default. All of this leads to more and happier customers.</p> <p>Check my colleague Alex Russell’s <a href="https://infrequently.org/2024/01/performance-inequality-gap-2024/">yearly performance inequality gap blog</a>, which shows that premium devices are largely absent from markets with billions of users due to wealth inequality. And this gap is only growing over time.</p> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/4-device-performance.png" /></p> Built-in Masonry Layout <p>One web platform feature that’s coming soon and which I’m very excited about is CSS Masonry.</p> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/5-css-masonry.png" /></p> <p>Let me start by explaining what Masonry is.</p> <h3>What Is Masonry</h3> <blockquote>Masonry is a type of layout that was made popular by Pinterest years ago. It creates independent tracks of content within which items pack themselves up as close to the start of the track as they can.</blockquote> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/6-pinterest-portfolio.png" /></p> <p>Many people see Masonry as a great option for portfolios and photo galleries, which it certainly can do. But Masonry is <strong>more flexible</strong> than what you see on Pinterest, and it’s <strong>not limited to just waterfall-like layouts</strong>.</p> <p>In a Masonry layout:</p> <ul> <li>Tracks can be columns or rows:</li> </ul> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/7-layout-columns-rows.png" /></p> <ul> <li>Tracks of content don’t all have to be the same size:</li> </ul> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/8-layout-different-sizes.png" /></p> <ul> <li>Items can span multiple tracks:</li> </ul> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/9-layout-multiple-tracks.png" /></p> <ul> <li>Items can be placed on specific tracks; they don’t have to always follow the automatic placement algorithm:</li> </ul> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/10-layout-items-specific-tracks.png" /></p> <h3>Demos</h3> <p>Here are a few simple demos I made by using the upcoming implementation of CSS Masonry in Chromium.</p> <p><a href="https://microsoftedge.github.io/Demos/css-masonry/new-york.html">A photo gallery demo</a>, showing how items (the title in this case) can span multiple tracks:</p> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/11-photo-gallery-different-sizes.png" /></p> <p>Another <a href="https://microsoftedge.github.io/Demos/css-masonry/nature.html">photo gallery showing tracks of different sizes</a>:</p> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/12-photo-gallery-different-tracks.png" /></p> <p>A <a href="https://microsoftedge.github.io/Demos/css-masonry/the-daily-oddity.html">news site layout</a> with some tracks wider than others, and some items spanning the entire width of the layout:</p> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/13-news-site-layout.png" /></p> <p>A <a href="https://microsoftedge.github.io/Demos/css-masonry/kanban.html">kanban board</a> showing that items can be placed onto specific tracks:</p> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/14-kanban-board.png" /></p> <p><strong>Note</strong>: <em>The previous demos were made with a version of Chromium that’s not yet available to most web users, because CSS Masonry is only just starting to be implemented in browsers.</em></p> <p>However, web developers have been happily using libraries to create Masonry layouts for years already.</p> <h3>Sites Using Masonry Today</h3> <p>Indeed, Masonry is pretty common on the web today. Here are a few examples I found besides Pinterest:</p> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/15-site-masonry.png" /></p> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/16-masonry-site.png" /></p> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/17-masonry-site.png" /></p> <p>And a few more, less obvious, examples:</p> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/18-masonry-layout.png" /></p> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/19-different-size-tracks.png" /></p> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/20-masonry-layout.png" /></p> <p>So, how were these layouts created?</p> Workarounds <p>One trick that I’ve seen used is using a Flexbox layout instead, changing its direction to column, and setting it to wrap.</p> <p>This way, you can place items of different heights in multiple, independent columns, giving the impression of a Masonry layout:</p> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/21-flexbox-layout.png" /></p> <p>There are, however, two limitations with this workaround:</p> <ol> <li>The order of items is different from what it would be with a real Masonry layout. With Flexbox, items fill the first column first and, when it’s full, then go to the next column. With Masonry, items would stack in whichever track (or column in this case) has more space available.</li> <li>But also, and perhaps more importantly, this workaround requires that you set a fixed height to the Flexbox container; otherwise, no wrapping would occur.</li> </ol> Third-party Masonry Libraries <p>For more advanced cases, developers have been using libraries.</p> <p>The most well-known and popular library for this is simply called <a href="https://masonry.desandro.com/">Masonry</a>, and it gets downloaded about 200,000 times per week <a href="https://www.npmjs.com/package/masonry-layout">according to NPM</a>.</p> <p>Squarespace also provides a <a href="https://www.beyondspace.studio/blog/squarespace-masonry-gallery-layout-guide#method-2-using-gallery-section">layout component that renders a Masonry layout</a>, for a no-code alternative, and many sites use it.</p> <p>Both of these options use JavaScript code to place items in the layout.</p> Built-in Masonry <p>I’m really excited that Masonry is now starting to appear in browsers as a built-in CSS feature. Over time, you will be able to use Masonry just like you do Grid or Flexbox, that is, without needing any workarounds or third-party code.</p> <p>My team at Microsoft has been implementing built-in Masonry support in the Chromium open source project, which Edge, Chrome, and many other browsers are based on. Mozilla was actually the first browser vendor to <a href="https://github.com/w3c/csswg-drafts/issues/4650">propose an experimental implementation of Masonry</a> back in 2020. And <a href="https://webkit.org/blog/15269/help-us-invent-masonry-layouts-for-css-grid-level-3/">Apple has also been very interested</a> in making this new web layout primitive happen.</p> <p>The work to standardize the feature is also moving ahead, with agreement within the CSS working group about the general direction and even a new display type <a href="https://github.com/w3c/csswg-drafts/issues/12022#issuecomment-3525043825"><code>display: grid-lanes</code></a>.</p> <p>If you want to learn more about Masonry and track progress, check out my <a href="https://patrickbrosset.com/lab/css-masonry-resources/">CSS Masonry resources</a> page.</p> <p>In time, when Masonry becomes a Baseline feature, just like Grid or Flexbox, we’ll be able to simply use it and benefit from:</p> <ul> <li>Better performance,</li> <li>Better responsiveness,</li> <li>Ease of use and simpler code.</li> </ul> <p>Let’s take a closer look at these.</p> <h3>Better Performance</h3> <p>Making your own Masonry-like layout system, or using a third-party library instead, means you’ll have to run JavaScript code to place items on the screen. This also means that this code will be <em>render blocking</em>. Indeed, either nothing will appear, or things won’t be in the right places or of the right sizes, until that JavaScript code has run.</p> <p>Masonry layout is often used for the main part of a web page, which means the code would be making your main content appear later than it could otherwise have, degrading your <a href="https://web.dev/articles/lcp#what-is-lcp">LCP, or Largest Contentful Paint metric</a>, which plays a big role in perceived performance and search engine optimization.</p> <p>I tested the Masonry JS library with a simple layout and by simulating a slow 4G connection in DevTools. The library is not very big (24KB, 7.8KB gzipped), but it took 600ms to load under my test conditions.</p> <p>Here is a performance recording showing that long 600ms load time for the Masonry library, and that no other rendering activity happened while that was happening:</p> <p><img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/22-performance-recording.png" /></p> <p>In addition, after the initial load time, the downloaded script then needed to be parsed, compiled, and then run. All of which, as mentioned before, was blocking the rendering of the page.</p> <p>With a built-in Masonry implementation in the browser, we won’t have a script to load and run. The browser engine will just do its thing during the initial page rendering step.</p> <h3>Better Responsiveness</h3> <p>Similar to when a page first loads, resizing the browser window leads to rendering the layout in that page again. At this point, though, if the page is using the Masonry JS library, there’s no need to load the script again, because it’s already here. However, the code that moves items in the right places needs to run.</p> <p>Now this particular library seems to be pretty fast at doing this when the page loads. However, it animates the items when they need to move to a different place on window resize, and this makes a big difference.</p> <p>Of course, users don’t spend time resizing their browser windows as much as we developers do. But this animated resizing experience can be pretty jarring and adds to the perceived time it takes for the page to adapt to its new size.</p> <h3>Ease Of Use And Simpler Code</h3> <p>How easy it is to use a web feature and how simple the code looks are important factors that can make a big difference for your team. They can’t ever be as important as the final user experience, of course, but developer experience impacts maintainability. Using a built-in web feature comes with important benefits on that front:</p> <ul> <li>Developers who already know HTML, CSS, and JS will most likely be able to use that feature easily because it’s been designed to integrate well and be consistent with the rest of the web platform.</li> <li>There’s no risk of breaking changes being introduced in how the feature is used.</li> <li>There’s almost zero risk of that feature becoming deprecated or unmaintained.</li> </ul> <p>In the case of built-in Masonry, because it’s a layout primitive, you use it from CSS, just like Grid or Flexbox, no JS involved. Also, other layout-related CSS properties, such as gap, work as you’d expect them to. There are no tricks or workarounds to know about, and the things you do learn are documented on MDN.</p> <p>For the Masonry JS lib, initialization is a bit complex: it requires a data attribute with a specific syntax, along with hidden HTML elements to set the column and gap sizes.</p> <p>Plus, if you want to span columns, you need to include the gap size yourself to avoid problems:</p> <div> <pre><code><script src="<a href="https://unpkg.com/masonry-layout@4.2.2/dist/masonry.pkgd.min.js"></script">https://unpkg.com/masonry-layout@4.2.2/dist/masonry.pkgd.min.js"></script</a>> <style> .track-sizer, .item { width: 20%; } .gutter-sizer { width: 1rem; } .item { height: 100px; margin-block-end: 1rem; } .item:nth-child(odd) { height: 200px; } .item--width2 { width: calc(40% + 1rem); } </style> <div class="container" data-masonry='{ "itemSelector": ".item", "columnWidth": ".track-sizer", "percentPosition": true, "gutter": ".gutter-sizer" }'> <div class="track-sizer"></div> <div class="gutter-sizer"></div> <div class="item"></div> <div class="item item--width2"></div> <div class="item"></div> ... </div> </code></pre> </div> <p>Let’s compare this to what a built-in Masonry implementation would look like:</p> <pre><code><style> .container { display: grid-lanes; grid-lanes: repeat(4, 20%); gap: 1rem; } .item { height: 100px; } .item:nth-child(odd) { height: 200px; } .item--width2 { grid-column: span 2; } </style> <div class="container"> <div class="item"></div> <div class="item item--width2"></div> <div class="item"></div> ... </div> </code></pre> <p>Simpler, more compact code that can just use things like <code>gap</code> and where spanning tracks is done with <code>span 2</code>, just like in grid, and doesn’t require you to calculate the right width that includes the gap size.</p> How To Know What’s Available And When It’s Available? <p>Overall, the question isn’t really if you should use built-in Masonry over a JS library, but rather <em>when</em>. The Masonry JS library is amazing and has been filling a gap in the web platform for many years, and for many happy developers and users. It has a few drawbacks if you compare it to a built-in Masonry implementation, of course, but those are not important if that implementation isn’t ready.</p> <p>It’s easy for me to list these cool new web platform features because I work at a browser vendor, and I therefore tend to know what’s coming. But developers often share, survey after survey, that keeping track of new things is hard. <strong>Staying informed is difficult</strong>, and companies don’t always prioritize learning anyway.</p> <p>To help with this, here are a few resources that provide updates in simple and compact ways so you can get the information you need quickly:</p> <ul> <li><a href="https://web-platform-dx.github.io/web-features-explorer/">The Web platform features explorer site</a>:<ul> <li>You might be interested in its <a href="https://web-platform-dx.github.io/web-features-explorer/release-notes/october-2025/">release notes</a> page.</li> <li>And, if you like RSS, check out <a href="https://web-platform-dx.github.io/web-features-explorer/release-notes.xml">the release notes feed</a>, as well as the Baseline <a href="https://web-platform-dx.github.io/web-features-explorer/newly-available.xml">Newly Available</a> and <a href="https://web-platform-dx.github.io/web-features-explorer/widely-available.xml">Widely Available</a> feeds.</li> </ul> </li> <li><a href="https://webstatus.dev/">The Web Platform Status dashboard</a>:<ul> <li>You might like its various <a href="https://webstatus.dev/?q=baseline_date%3A2025-01-01..2025-12-31">Baseline year</a> pages.</li> </ul> </li> <li><a href="https://chromestatus.com/roadmap">Chrome Platform Status’ roadmap page</a>.</li> </ul> <p>If you have a bit more time, you might also be interested in browser vendors’ release notes:</p> <ul> <li><a href="https://developer.chrome.com/release-notes">Chrome</a></li> <li><a href="https://learn.microsoft.com/en-us/microsoft-edge/web-platform/release-notes/">Edge</a></li> <li><a href="https://www.firefox.com/en-US/releases/">Firefox</a></li> <li><a href="https://developer.apple.com/documentation/safari-release-notes">Safari</a></li> </ul> <p>For even more resources, check out my <a href="https://patrickbrosset.com/lab/navigating-the-web-platform/">Navigating the Web Platform Cheatsheet</a>.</p> My Thing Is Still Not Implemented <p>That’s the other side of the problem. Even if you do find the time, energy, and ways to keep track, there’s still frustration with getting your voice heard and your favorite features implemented.</p> <p>Maybe you’ve been waiting for years for a specific bug to be resolved, or a specific feature to ship in a browser where it’s still missing.</p> <p>What I’ll say is <strong>browser vendors do listen</strong>. I’m part of several cross-organization teams where we discuss developer signals and feedback all the time. We look at many different sources of feedback, both internal at each browser vendor and external/public on forums, open source projects, blogs, and surveys. And, we’re always trying to create better ways for developers to share their specific needs and use cases.</p> <p>So, if you can, please demand more from browser vendors and pressure us to implement the features you need. I get that it takes time, and can also be intimidating (not to mention a high barrier to entry), but it also works.</p> <p>Here are a few ways you can get your (or your company’s) voice heard: Take the annual <a href="https://stateofjs.com/">State of JS</a>, <a href="https://stateofcss.com/">State of CSS</a>, and <a href="https://stateofhtml.com/">State of HTML</a> surveys. They play a big role in how browser vendors prioritize their work.</p> <p>If you need a specific standard-based API to be implemented consistently across browsers, consider submitting a proposal at the next <a href="https://github.com/web-platform-tests/interop/">Interop project</a> iteration. It requires more time, but consider how <a href="https://docs.google.com/document/d/1ICqlNtdRXlhIlRuXFr1BRgy68R6Q5AwPv2b4hsIWUMY/edit">Shopify</a> and <a href="https://www.rumvision.com/blog/interop-2026-key-apis-for-sitespeed-and-rum/">RUMvision</a> shared their wish lists for Interop 2026. Detailed information like this can be very useful for browser vendors to prioritize.</p> <p>For more useful links to influence browser vendors, check out my <a href="https://patrickbrosset.com/lab/navigating-the-web-platform/">Navigating the Web Platform Cheatsheet</a>.</p> Conclusion <p>To close, I hope this article has left you with a few things to think about:</p> <ul> <li>Excitement for Masonry and other upcoming web features.</li> <li>A few web features you might want to start using.</li> <li>A few pieces of custom or 3rd-party code you might be able to remove in favor of built-in features.</li> <li>A few ways to keep track of what’s coming and influence browser vendors.</li> </ul> <p>More importantly, I hope I’ve convinced you of the benefits of using the web platform to its full potential.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/12/masonry-things-you-wont-need-library-anymore/</span> hello@smashingmagazine.com (Patrick Brosset) <![CDATA[A Sparkle Of December Magic (2025 Wallpapers Edition)]]> https://smashingmagazine.com/2025/11/desktop-wallpaper-calendars-december-2025/ https://smashingmagazine.com/2025/11/desktop-wallpaper-calendars-december-2025/ Sun, 30 Nov 2025 09:00:00 GMT With December just around the corner, how about some new desktop wallpapers to welcome the last month of the year — and the holiday season, if you’re celebrating? Our latest edition of monthly wallpapers has got you covered. Enjoy! <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/desktop-wallpaper-calendars-december-2025/</span> <p>As the year winds down, many of us are busy wrapping up projects, meeting deadlines, or getting ready for the holiday season. Why not take a moment amid the end-of-year hustle to set the mood for December with some <strong>wintery desktop wallpapers</strong>? They might just bring a sparkle of inspiration to your workspace in these busy weeks.</p> <p>To provide you with unique and inspiring wallpaper designs each month anew, we started our <a href="https://www.smashingmagazine.com/category/wallpapers">monthly wallpapers series</a> more than 14 years ago. It’s the perfect opportunity both to <a href="https://www.smashingmagazine.com/2015/12/desktop-wallpaper-calendars-join-in/">put your creative skills to the test</a> and to find just the right wallpaper to accompany you through the new month. This December is no exception, of course, so following our <strong>cozy little tradition</strong>, we have a new collection of wallpapers waiting for you below. Each design has been created with love by artists and designers from across the globe and comes in a variety of screen resolutions.</p> <p>A huge <strong>thank-you</strong> to everyone who tickled their creativity and shared their wallpapers with us this time around! This post wouldn’t exist without your kind support. ❤️ Happy December!</p> <ul> <li>You can <strong>click on every image to see a larger preview</strong>.</li> <li>We respect and carefully consider the ideas and motivation behind each and every artist’s work. This is why we give all artists the <strong>full freedom to explore their creativity</strong> and express emotions and experience through their works. This is also why the themes of the wallpapers weren’t anyhow influenced by us but rather designed from scratch by the artists themselves.</li> <li><strong><a href="https://www.smashingmagazine.com/desktop-wallpaper-calendars-join-in/">Submit your wallpaper design!</a></strong> 🎨<br />We are always <strong>looking for creative talent</strong> and would love to feature <em>your</em> desktop wallpaper in one of our upcoming posts. <a href="https://www.smashingmagazine.com/desktop-wallpaper-calendars-join-in/">Join in ↬</a></li> </ul> Zero-Gravity December <p>“Floating in space, decorating the Christmas tree, unbothered by the familiar weight of New Year’s resolutions waiting back on Earth every December.” — Designed by <a href="https://www.gingeritsolutions.com/">Ginger It Solutions</a> from Serbia.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/dec-25-zero-gravity-december-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2025/dec-25-zero-gravity-december-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/dec-25-zero-gravity-december-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-320x480.png">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1280x1020.png">1280x1020</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-2560x1440.png">2560x1440</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-320x480.png">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1280x1020.png">1280x1020</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-2560x1440.png">2560x1440</a></li> </ul> A Quiet December Walk <p>“In the stillness of a snowy forest, a man and his loyal dog share a peaceful winter walk. The world is hushed beneath a blanket of white, with only soft flakes falling and the crunch of footsteps breaking the silence. It’s a simple, serene moment that captures the calm beauty of December and the quiet joy of companionship in nature’s winter glow.” — Designed by <a href="https://www.popwebdesign.net/">PopArt Studio</a> from Serbia.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/dec-25-a-quiet-december-walk-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2025/dec-25-a-quiet-december-walk-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/dec-25-a-quiet-december-walk-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-320x480.png">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/cal/dec-25-a-quiet-december-walk-cal-2560x1440.png">2560x1440</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-320x480.png">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/nocal/dec-25-a-quiet-december-walk-nocal-2560x1440.png">2560x1440</a></li> </ul> Quoted Rudolph <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/dec-25-quoted-rudolph-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2025/dec-25-quoted-rudolph-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/dec-25-quoted-rudolph-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-3840x2160.png">3840x2160</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-3840x2160.png">3840x2160</a></li> </ul> Learning Is An Art <p>“The year is coming to an end. A year full of adventures, projects, unforgettable moments, and others that will fade into oblivion. And it’s this month that we start preparing for next year, organizing it and hoping it will be at least as good as the last, and that it will give us 365 days to savor from the first to the last. This month we share Katherine Johnson and some wise words that we shouldn’t forget: ‘I like to learn. It’s an art and a science.’” — Designed by <a href="https://www.silocreativo.com/en/">Veronica Valenzuela Jimenez</a> from Spain.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/dec-25-learning-is-an-art-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2025/dec-25-learning-is-an-art-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/dec-25-learning-is-an-art-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/cal/dec-25-learning-is-an-art-cal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/cal/dec-25-learning-is-an-art-cal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/cal/dec-25-learning-is-an-art-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/cal/dec-25-learning-is-an-art-cal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/cal/dec-25-learning-is-an-art-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/cal/dec-25-learning-is-an-art-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/cal/dec-25-learning-is-an-art-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/cal/dec-25-learning-is-an-art-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/cal/dec-25-learning-is-an-art-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/cal/dec-25-learning-is-an-art-cal-2560x1440.png">2560x1440</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/nocal/dec-25-learning-is-an-art-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/nocal/dec-25-learning-is-an-art-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/nocal/dec-25-learning-is-an-art-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/nocal/dec-25-learning-is-an-art-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/nocal/dec-25-learning-is-an-art-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/nocal/dec-25-learning-is-an-art-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/nocal/dec-25-learning-is-an-art-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/nocal/dec-25-learning-is-an-art-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/nocal/dec-25-learning-is-an-art-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/nocal/dec-25-learning-is-an-art-nocal-2560x1440.png">2560x1440</a></li> </ul> Chilly Dog, Warm Troubles <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/dec-25-chilly-dog-warm-troubles-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2025/dec-25-chilly-dog-warm-troubles-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/dec-25-chilly-dog-warm-troubles-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/cal/dec-25-chilly-dog-warm-troubles-cal-3840x2160.png">3840x2160</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/nocal/dec-25-chilly-dog-warm-troubles-nocal-3840x2160.png">3840x2160</a></li> </ul> Modern Christmas Magic <p>“A fusion of modern Christmas aesthetics and a user-centric mobile app development company, crafting delightful holiday-inspired digital experiences.” — Designed by the <a href="https://www.zco.com/">Zco Corporation Design Team</a> from the United States.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/dec-25-modern-christmas-magic-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2025/dec-25-modern-christmas-magic-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/dec-25-modern-christmas-magic-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1400x900.png">1400x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-2560x1440.png">2560x1440</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1400x900.png">1400x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-2560x1440.png">2560x1440</a></li> </ul> Dear Moon, Merry Christmas <p>Designed by <a href="https://vlad.studio/">Vlad Gerasimov</a> from Georgia.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/69d1bfe5-28c1-489a-80e7-0e74ec404bad/dec-19-dear-moon-merry-christmas-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a6b9bd64-491c-4be4-bb3e-0295fea6f0c6/dec-19-dear-moon-merry-christmas-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a6b9bd64-491c-4be4-bb3e-0295fea6f0c6/dec-19-dear-moon-merry-christmas-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-1024x600.jpg">1024x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-1440x960.jpg">1440x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-1600x900.jpg">1600x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-2560x1440.jpg">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-2560x1600.jpg">2560x1600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-2880x1800.jpg">2880x1800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-3072x1920.jpg">3072x1920</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-3840x2160.jpg">3840x2160</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-19/dear-moon-merry-christmas/nocal/dec-19-dear-moon-merry-christmas-nocal-5120x2880.jpg">5120x2880</a></li> </ul> It’s In The Little Things <p>Designed by Thaïs Lenglez from Belgium.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2024/dec-13-its-in-the-little-things-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2024/dec-13-its-in-the-little-things-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2024/dec-13-its-in-the-little-things-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-13/its-in-the-little-things/nocal/dec-13-its-in-the-little-things-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/its-in-the-little-things/nocal/dec-13-its-in-the-little-things-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/its-in-the-little-things/nocal/dec-13-its-in-the-little-things-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/its-in-the-little-things/nocal/dec-13-its-in-the-little-things-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/its-in-the-little-things/nocal/dec-13-its-in-the-little-things-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/its-in-the-little-things/nocal/dec-13-its-in-the-little-things-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/its-in-the-little-things/nocal/dec-13-its-in-the-little-things-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/its-in-the-little-things/nocal/dec-13-its-in-the-little-things-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/its-in-the-little-things/nocal/dec-13-its-in-the-little-things-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/its-in-the-little-things/nocal/dec-13-its-in-the-little-things-nocal-2560x1440.png">2560x1440</a></li></ul> The House On The River Drina <p>“Since we often yearn for a peaceful and quiet place to work, we have found inspiration in the famous house on the River Drina in Bajina Bašta, Serbia. Wouldn’t it be great being in nature, away from civilization, swaying in the wind and listening to the waves of the river smashing your house, having no neighbors to bother you? Not sure about the Internet, though…” — Designed by <a href="https://www.popwebdesign.net/index_eng.html">PopArt Studio</a> from Serbia.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b63a58fb-92a5-4f9d-81b3-c90e2cfd9b5a/dec-16-the-house-on-the-river-drina-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4b8776b3-8fdf-469a-b5b2-591d535d02b6/dec-16-the-house-on-the-river-drina-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4b8776b3-8fdf-469a-b5b2-591d535d02b6/dec-16-the-house-on-the-river-drina-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-house-on-the-river-drina/nocal/dec-16-the-house-on-the-river-drina-nocal-640x480.jpg">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-house-on-the-river-drina/nocal/dec-16-the-house-on-the-river-drina-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-house-on-the-river-drina/nocal/dec-16-the-house-on-the-river-drina-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-house-on-the-river-drina/nocal/dec-16-the-house-on-the-river-drina-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-house-on-the-river-drina/nocal/dec-16-the-house-on-the-river-drina-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-house-on-the-river-drina/nocal/dec-16-the-house-on-the-river-drina-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-house-on-the-river-drina/nocal/dec-16-the-house-on-the-river-drina-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-house-on-the-river-drina/nocal/dec-16-the-house-on-the-river-drina-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-house-on-the-river-drina/nocal/dec-16-the-house-on-the-river-drina-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-house-on-the-river-drina/nocal/dec-16-the-house-on-the-river-drina-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-house-on-the-river-drina/nocal/dec-16-the-house-on-the-river-drina-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-house-on-the-river-drina/nocal/dec-16-the-house-on-the-river-drina-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-house-on-the-river-drina/nocal/dec-16-the-house-on-the-river-drina-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-house-on-the-river-drina/nocal/dec-16-the-house-on-the-river-drina-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-house-on-the-river-drina/nocal/dec-16-the-house-on-the-river-drina-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-house-on-the-river-drina/nocal/dec-16-the-house-on-the-river-drina-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Christmas Cookies <p>“Christmas is coming and a great way to share our love is by baking cookies.” — Designed by <a href="https://www.mariakellerac.com">Maria Keller</a> from Mexico.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/57f8e478-f6a2-4eeb-bac0-45d8dd01d7cb/dec-17-christmas-cookies-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/251c117b-6e3a-42eb-b274-82af1abf00ed/dec-17-christmas-cookies-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/251c117b-6e3a-42eb-b274-82af1abf00ed/dec-17-christmas-cookies-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-640x1136.png">640x1136</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-750x1334.png">750x1334</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1242x2208.png">1242x2208</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-2560x1440.png">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-2880x1800.png">2880x1800</a></li> </ul> Sweet Snowy Tenderness <p>“You know that warm feeling when you get to spend cold winter days in a snug, homey, relaxed atmosphere? Oh, yes, we love it, too! It is the sentiment we set our hearts on for the holiday season, and this sweet snowy tenderness is for all of us who adore watching the snowfall from our windows. Isn’t it romantic?” — Designed by <a href="https://www.popwebdesign.net/">PopArt Studio</a> from Serbia.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/29ad3ce1-0f4e-4c84-a7fd-222e00e8f544/dec-18-sweet-snowy-tenderness-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6179490e-9ece-4078-8a4b-d37c27f546b4/dec-18-sweet-snowy-tenderness-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6179490e-9ece-4078-8a4b-d37c27f546b4/dec-18-sweet-snowy-tenderness-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-640x480.jpg">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Anonymoose <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/83743101-3686-4fa1-8527-f43b5298c85f/dec-21-anonymoose-nocal-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/53276d0a-8060-42fc-adea-e59eed8f78e8/dec-21-anonymoose-nocal-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/53276d0a-8060-42fc-adea-e59eed8f78e8/dec-21-anonymoose-nocal-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-2560x1440.png">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-3840x2160.png">3840x2160</a></li> </ul> Cardinals In Snowfall <p>“During Christmas season, in the cold, colorless days of winter, Cardinal birds are seen as symbols of faith and warmth. In the part of America I live in, there is snowfall every December. While the snow is falling, I can see gorgeous Cardinals flying in and out of my patio. The intriguing color palette of the bright red of the Cardinals, the white of the flurries, and the brown/black of dry twigs and fallen leaves on the snow-laden ground fascinates me a lot, and inspired me to create this quaint and sweet, hand-illustrated surface pattern design as I wait for the snowfall in my town!” — Designed by <a href="https://pineconedream.com/">Gyaneshwari Dave</a> from the United States.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/27101977-9a61-41b9-9e80-445f3a8932af/dec-18-cardinals-in-snowfall-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0a28051e-b3bc-4eff-a30b-2456c249aed5/dec-18-cardinals-in-snowfall-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0a28051e-b3bc-4eff-a30b-2456c249aed5/dec-18-cardinals-in-snowfall-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-640x960.jpg">640x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-768x1024.jpg">768x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Getting Hygge <p>“There’s no more special time for a fire than in the winter. Cozy blankets, warm beverages, and good company can make all the difference when the sun goes down. We’re all looking forward to generating some hygge this winter, so snuggle up and make some memories.” — Designed by <a href="https://www.thehannongroup.com/">The Hannon Group</a> from Washington D.C.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ad2c8c59-c9c4-4153-a57e-8602ff6e09d7/dec-17-getting-hygge-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1145e84f-229d-4f9e-82b6-370c707e695c/dec-17-getting-hygge-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1145e84f-229d-4f9e-82b6-370c707e695c/dec-17-getting-hygge-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-2560x1440.png">2560x1440</a></li> </ul> Christmas Woodland <p>Designed by <a href="https://melarmstrongdesign.com">Mel Armstrong</a> from Australia.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3ebce7f3-b902-49e1-8c71-59f7ebffe370/dec-17-christmas-woodland-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2ef5c205-d211-4776-ad9e-f69626f25b88/dec-17-christmas-woodland-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2ef5c205-d211-4776-ad9e-f69626f25b88/dec-17-christmas-woodland-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-2560x1440.png">2560x1440</a> </li> </ul> Joy To The World <p>“Joy to the world, all the boys and girls now, joy to the fishes in the deep blue sea, joy to you and me.” — Designed by Morgan Newnham from Boulder, Colorado.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/542d1894-584a-4537-b3c1-142deda3ab5c/dec-17-joy-to-the-world-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/68553142-95b5-47da-9007-e50407f8c5d9/dec-17-joy-to-the-world-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/68553142-95b5-47da-9007-e50407f8c5d9/dec-17-joy-to-the-world-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/joy-to-the-world/nocal/dec-17-joy-to-the-world-nocal-2560x1440.png">2560x1440</a></li> </ul> Gifts Lover <p>Designed by <a href="https://www.doud.be">Elise Vanoorbeek</a> from Belgium.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/25b69dac-5d0b-4e0a-bf39-b2554ec557db/dec-14-gifts-lover-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3c9e03e4-efa6-4fb8-8a0d-69f1edd9479a/dec-14-gifts-lover-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3c9e03e4-efa6-4fb8-8a0d-69f1edd9479a/dec-14-gifts-lover-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-2560x1440.jpg">2560x1440</a></li> </ul> King Of Pop <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/45cc8a5d-29ae-435d-a68d-2991d779c936/dec-21-king-of-pop-nocal-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cd870c1d-c7fb-44ab-9e70-5cac012691fb/dec-21-king-of-pop-nocal-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cd870c1d-c7fb-44ab-9e70-5cac012691fb/dec-21-king-of-pop-nocal-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-2560x1440.png">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-3840x2160.png">3840x2160</a></li> </ul> The Matterhorn <p>“Christmas is always such a magical time of year so we created this wallpaper to blend the majestry of the mountains with a little bit of magic.” — Designed by Dominic Leonard from the United Kingdom.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/94e4bf3b-1ef4-4679-80ab-00c831c2be80/dec-16-the-matterhorn-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/25937464-9e3c-4bf5-9fc3-611b54699aa6/dec-16-the-matterhorn-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/25937464-9e3c-4bf5-9fc3-611b54699aa6/dec-16-the-matterhorn-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-2560x1440.png">2560x1440</a></li> </ul> Ninja Santa <p>Designed by Elise Vanoorbeek from Belgium.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/caf4e170-afb2-458a-af83-b67925f3ea7e/dec-13-ninja-santa-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/72db2dde-7f71-4aac-88c3-f17b540e8343/dec-13-ninja-santa-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/72db2dde-7f71-4aac-88c3-f17b540e8343/dec-13-ninja-santa-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-2560x1440.jpg">2560x1440</a></li></ul> Ice Flowers <p>“I took some photos during a very frosty and cold week before Christmas.” Designed by <a href="https://kyu-to.deviantart.com">Anca Varsandan</a> from Romania.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f14d58a3-b787-483b-a2e4-a3400d50dfed/january-10-ice-flowers-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7b4a5499-4254-4d4f-a460-0f0964721a55/january-10-ice-flowers-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7b4a5499-4254-4d4f-a460-0f0964721a55/january-10-ice-flowers-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/101dfe78-547b-4f28-ad00-c3f08302cbe1/january-10-ice-flowers-nocal-1024x768.jpg">1024x768</a>, <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/33993672-e95d-4729-a836-7af5f941812c/january-10-ice-flowers-nocal-1280x800.jpg">1280x800</a>, <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/14522cd5-614d-4597-b488-44ffa3e6f3f2/january-10-ice-flowers-nocal-1440x900.jpg">1440x900</a>, <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0d43a061-dd0c-47f9-af83-a3d7413c719b/january-10-ice-flowers-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f3822fa3-5814-4b90-96bc-ef75191a9243/january-10-ice-flowers-nocal-1920x1200.jpg">1920x1200</a></li> </ul> Christmas Selfie <p>Designed by <a href="https://www.elacarta.com">Emanuela Carta</a> from Italy.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3eac541a-4c0e-45a9-ab06-7ec0fee72084/dec-16-christmas-selfie-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3df98b9f-310f-4a63-b885-6b97ba4edccf/dec-16-christmas-selfie-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3df98b9f-310f-4a63-b885-6b97ba4edccf/dec-16-christmas-selfie-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-2560x1440.png">2560x1440</a></li> </ul> Winter Wonderland <p>“‘Winter is the time for comfort, for good food and warmth, for the touch of a friendly hand and for a talk beside the fire: it is the time for home.’ (Edith Sitwell) — Designed by <a href="https://itobuz.com/">Dipanjan Karmakar</a> from India.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-dec-2023/dec-16-winter-wonderland-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-dec-2023/dec-16-winter-wonderland-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-dec-2023/dec-16-winter-wonderland-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-2560x1440.jpg">2560x1440</a></li></ul> Winter Coziness At Home <p>“Winter coziness that we all feel when we come home after spending some time outside or when we come to our parental home to celebrate Christmas inspired our designers. Home is the place where we can feel safe and sound, so we couldn’t help ourselves but create this calendar.” — Designed by <a href="http://masterbundles.com/">MasterBundles</a> from Ukraine.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-dec-2023/dec-22-winter-coziness-at-home-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-dec-2023/dec-22-winter-coziness-at-home-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-dec-2023/dec-22-winter-coziness-at-home-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-320х480.png">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-640х480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-800х480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-800х600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-1024х768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-1024х1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-1152х864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-1280х720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-1280х800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-1280х960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-1280х1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-1366х768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-1400х1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-1440х900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-1600х1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-1680х1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-1680х1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-1920х1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-1920х1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-1920х1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-22/winter-coziness-at-home/nocal/dec-22-winter-coziness-at-home-nocal-2560х1440.png">2560x1440</a></li> </ul> Enchanted Blizzard <p>“A seemingly forgotten world under the shade of winter glaze hides a moment where architecture meets fashion and change encounters steadiness.” — Designed by <a href="https://www.creitive.com/">Ana Masnikosa</a> from Belgrade, Serbia.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/913ccea9-595b-4aff-9550-0afec57203cc/dec-17-enchanted-blizzard-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/21da6af5-5de8-44c2-9a02-d0e17a1425fa/dec-17-enchanted-blizzard-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/21da6af5-5de8-44c2-9a02-d0e17a1425fa/dec-17-enchanted-blizzard-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-2560x1440.png">2560x1440</a></li> </ul> All That Belongs To The Past <p>“Sometimes new beginnings make us revisit our favorite places or people from the past. We don’t visit them often because they remind us of the past but enjoy the brief reunion. Cheers to new beginnings in the new year!” Designed by <a href="https://dorvandavoudi.com">Dorvan Davoudi</a> from Canada.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/102edbd6-ebf2-4df9-9218-7d506a069725/jan-16-all-that-belongs-to-the-past-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e3260240-ab67-4cc8-b391-6e4a412e8b75/jan-16-all-that-belongs-to-the-past-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e3260240-ab67-4cc8-b391-6e4a412e8b75/jan-16-all-that-belongs-to-the-past-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/jan-16/all-that-belongs-to-the-past/nocal/jan-16-all-that-belongs-to-the-past-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/all-that-belongs-to-the-past/nocal/jan-16-all-that-belongs-to-the-past-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/all-that-belongs-to-the-past/nocal/jan-16-all-that-belongs-to-the-past-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/all-that-belongs-to-the-past/nocal/jan-16-all-that-belongs-to-the-past-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/all-that-belongs-to-the-past/nocal/jan-16-all-that-belongs-to-the-past-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/all-that-belongs-to-the-past/nocal/jan-16-all-that-belongs-to-the-past-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/all-that-belongs-to-the-past/nocal/jan-16-all-that-belongs-to-the-past-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/all-that-belongs-to-the-past/nocal/jan-16-all-that-belongs-to-the-past-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/all-that-belongs-to-the-past/nocal/jan-16-all-that-belongs-to-the-past-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/all-that-belongs-to-the-past/nocal/jan-16-all-that-belongs-to-the-past-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/all-that-belongs-to-the-past/nocal/jan-16-all-that-belongs-to-the-past-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/all-that-belongs-to-the-past/nocal/jan-16-all-that-belongs-to-the-past-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/all-that-belongs-to-the-past/nocal/jan-16-all-that-belongs-to-the-past-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/all-that-belongs-to-the-past/nocal/jan-16-all-that-belongs-to-the-past-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/all-that-belongs-to-the-past/nocal/jan-16-all-that-belongs-to-the-past-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/all-that-belongs-to-the-past/nocal/jan-16-all-that-belongs-to-the-past-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/all-that-belongs-to-the-past/nocal/jan-16-all-that-belongs-to-the-past-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/jan-16/all-that-belongs-to-the-past/nocal/jan-16-all-that-belongs-to-the-past-nocal-2560x1440.jpg">2560x1440</a></li> </ul> December Through Different Eyes <p>“As a Belgian, December reminds me of snow, coziness, winter, lights, and so on. However, in the Southern hemisphere, it is summer at this time. With my illustration I wanted to show the different perspectives on December. I wish you all a Merry Christmas and Happy New Year!” — Designed by Jo Smets from Belgium.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9a6afdb7-0898-40ce-9a8c-8d9b0b72db1c/dec-16-december-through-different-eyes-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/052848c9-5532-465f-bbac-760188d9f416/dec-16-december-through-different-eyes-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/052848c9-5532-465f-bbac-760188d9f416/dec-16-december-through-different-eyes-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-16/december-through-different-eyes/nocal/dec-16-december-through-different-eyes-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/december-through-different-eyes/nocal/dec-16-december-through-different-eyes-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/december-through-different-eyes/nocal/dec-16-december-through-different-eyes-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/december-through-different-eyes/nocal/dec-16-december-through-different-eyes-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/december-through-different-eyes/nocal/dec-16-december-through-different-eyes-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/december-through-different-eyes/nocal/dec-16-december-through-different-eyes-nocal-2560x1440.png">2560x1440</a></li> </ul> Silver Winter <p>Designed by <a href="https://www.violetadabija.com">Violeta Dabija</a> from Moldova.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/37e2aa55-5962-44dd-86a7-9d677e3df446/january-11-silver-winter-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/00c28b2f-a996-41f4-a7f4-34c602e7bfd0/january-11-silver-winter-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/00c28b2f-a996-41f4-a7f4-34c602e7bfd0/january-11-silver-winter-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4cb3a715-654c-4023-9ec9-a6714a653e46/january-11-silver-winter-52-nocal-1024x768.jpg">1024x768</a>, <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/35c171e7-9192-492e-bbef-55eaae9b0942/january-11-silver-winter-52-nocal-1280x800.jpg">1280x800</a>, <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1b99a584-7703-408f-bbd5-5f4e1ba2b4f5/january-11-silver-winter-52-nocal-1440x900.jpg">1440x900</a>, <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5950575b-f30d-4a0d-83e7-0fc877c911a5/january-11-silver-winter-52-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a862a30e-ec77-410c-b9a4-7f471a63472f/january-11-silver-winter-52-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e627ba9b-47ea-41c4-abb5-3aa7c936750a/january-11-silver-winter-52-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Cozy <p>“December is all about coziness and warmth. Days are getting darker, shorter, and colder. So a nice cup of hot cocoa just warms me up.” — Designed by Hazuki Sato from Belgium.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/066c8801-c795-4511-a131-3bf9ac7fa84d/dec-18-cosy-nocal-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0d1eb07b-e179-42ba-9770-2ed95ca02a44/dec-18-cosy-nocal-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0d1eb07b-e179-42ba-9770-2ed95ca02a44/dec-18-cosy-nocal-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-960x560.png">960x560</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-2560x1440.png">2560x1440</a></li> </ul> Tongue Stuck On Lamppost <p>Designed by <a href="https://www.joshcleland.com">Josh Cleland</a> from the United States.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8eddae94-833f-43b7-9c6b-8c9c044ab034/december-11-tongue-stuck-on-lamppost-20-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6516be4f-fabe-4082-ac09-2fe769521ee8/december-11-tongue-stuck-on-lamppost-20-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6516be4f-fabe-4082-ac09-2fe769521ee8/december-11-tongue-stuck-on-lamppost-20-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/december-11/december-11-tongue_stuck_on_lamppost__20-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-11/december-11-tongue_stuck_on_lamppost__20-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-11/december-11-tongue_stuck_on_lamppost__20-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-11/december-11-tongue_stuck_on_lamppost__20-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-11/december-11-tongue_stuck_on_lamppost__20-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-11/december-11-tongue_stuck_on_lamppost__20-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-11/december-11-tongue_stuck_on_lamppost__20-nocal-2560x1440.jpg">2560x1440</a></li> </ul> On To The Next One <p>“Endings intertwined with new beginnings, challenges we rose to and the ones we weren’t up to, dreams fulfilled and opportunities missed. The year we say goodbye to leaves a bitter-sweet taste, but we’re thankful for the lessons, friendships, and experiences it gave us. We look forward to seeing what the new year has in store, but, whatever comes, we will welcome it with a smile, vigor, and zeal.” — Designed by <a href="https://www.popwebdesign.net/web-development-serbia.html">PopArt Studio</a> from Serbia.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/07c22cc2-cd45-4f32-9c92-947a65625e26/dec-21-on-to-the-next-one-nocal-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/df993d7f-d090-4724-9436-01e6e3cd70e8/dec-21-on-to-the-next-one-nocal-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/df993d7f-d090-4724-9436-01e6e3cd70e8/dec-21-on-to-the-next-one-nocal-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-640x480.jpg">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/on-to-the-next-one/nocal/dec-21-on-to-the-next-one-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Christmas Owl <p>“Christmas waves a magic wand over this world, and behold, everything is softer and more beautiful.” — Designed by Suman Sil from India.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0f4c81c4-baa1-4ce1-9757-0d5d6e485eb2/dec-17-christmas-owl-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b68a038c-82d8-4c8d-acaa-1038bccaf8e0/dec-17-christmas-owl-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b68a038c-82d8-4c8d-acaa-1038bccaf8e0/dec-17-christmas-owl-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Catch Your Perfect Snowflake <p>“This time of year, people tend to dream big and expect miracles. Let your dreams come true!” Designed by <a href="https://dribbble.com/izhik">Igor Izhik</a> from Canada.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b2f6a5c7-a3a2-4cb0-82c1-1fcfdb02e27d/dec-15-catch-your-perfect-snowflake-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/27fb2569-e973-4bcb-919a-f8d786e008b1/dec-15-catch-your-perfect-snowflake-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/27fb2569-e973-4bcb-919a-f8d786e008b1/dec-15-catch-your-perfect-snowflake-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-2560x1440.jpg">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/catch-your-perfect-snowflake/nocal/dec-15-catch-your-perfect-snowflake-nocal-2560x1600.jpg">2560x1600</a></li> </ul> Winter Garphee <p>“Garphee’s flufiness glowing in the snow.” Designed by Razvan Garofeanu from Romania.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/acb0bd7c-2868-4176-9468-d1e06f31f96f/december-12-winter-garphee-81-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/158e76da-934e-4e62-bdb1-32616ccd9e84/december-12-winter-garphee-81-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/158e76da-934e-4e62-bdb1-32616ccd9e84/december-12-winter-garphee-81-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/december-12/december-12-winter_garphee__81-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-12/december-12-winter_garphee__81-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-12/december-12-winter_garphee__81-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-12/december-12-winter_garphee__81-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-12/december-12-winter_garphee__81-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-12/december-12-winter_garphee__81-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-12/december-12-winter_garphee__81-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-12/december-12-winter_garphee__81-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-12/december-12-winter_garphee__81-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-12/december-12-winter_garphee__81-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-12/december-12-winter_garphee__81-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Trailer Santa <p>“A mid-century modern Christmas scene outside the norm of snowflakes and winter landscapes.” Designed by Houndstooth from the United States.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/40a7c173-9928-4a55-bc4c-4d48f339b3da/december-12-trailer-santa-21-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1d3703c2-593a-4ff4-a08a-52cb237ddb64/december-12-trailer-santa-21-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1d3703c2-593a-4ff4-a08a-52cb237ddb64/december-12-trailer-santa-21-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/december-12/december-12-trailer_santa__21-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-12/december-12-trailer_santa__21-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-12/december-12-trailer_santa__21-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-12/december-12-trailer_santa__21-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-12/december-12-trailer_santa__21-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/december-12/december-12-trailer_santa__21-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Winter Solstice <p>“In December there’s a winter solstice; which means that the longest night of the year falls in December. I wanted to create the feeling of solitude of the long night into this wallpaper.” — Designed by Alex Hermans from Belgium.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/eaf114e2-475a-4945-9185-ce491e025194/dec-15-winter-solstice-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c31b7a20-902c-4956-a266-a88bd5a4b7cb/dec-15-winter-solstice-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c31b7a20-902c-4956-a266-a88bd5a4b7cb/dec-15-winter-solstice-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-640x480.jpg">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-2560x1440.jpg">2560x1440</a></li></ul> Christmas Time <p>Designed by Sofie Keirsmaekers from Belgium.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a9988e43-6ee8-414c-8136-ac6939c5182e/dec-13-christmas-time-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cf1ce792-3363-4899-9714-fd569b53452b/dec-13-christmas-time-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cf1ce792-3363-4899-9714-fd569b53452b/dec-13-christmas-time-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-13/christmas-time-/nocal/dec-13-christmas-time--nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/christmas-time-/nocal/dec-13-christmas-time--nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/christmas-time-/nocal/dec-13-christmas-time--nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/christmas-time-/nocal/dec-13-christmas-time--nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/christmas-time-/nocal/dec-13-christmas-time--nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/christmas-time-/nocal/dec-13-christmas-time--nocal-2560x1440.png">2560x1440</a></li></ul> Happy Holidays <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e16c6728-d3a1-4800-8a6e-e3c45d2512ac/dec-20-happy-holidays-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/56b7fbec-60c7-4776-96d0-028c06c5a552/dec-20-happy-holidays-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/56b7fbec-60c7-4776-96d0-028c06c5a552/dec-20-happy-holidays-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-2560x1440.png">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-3840x2160.png">3840x2160</a></li> </ul> Get Featured Next Month <p>Feeling inspired? We’ll publish the <strong>January wallpapers</strong> on December 31, so if you’d like to be a part of the collection, please don’t hesitate to <a href="https://www.smashingmagazine.com/desktop-wallpaper-calendars-join-in/">submit your design</a>. We are already looking forward to it!</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/desktop-wallpaper-calendars-december-2025/</span> hello@smashingmagazine.com (Cosima Mielke) <![CDATA[The Accessibility Problem With Authentication Methods Like CAPTCHA]]> https://smashingmagazine.com/2025/11/accessibility-problem-authentication-methods-captcha/ https://smashingmagazine.com/2025/11/accessibility-problem-authentication-methods-captcha/ Thu, 27 Nov 2025 10:00:00 GMT CAPTCHAs were meant to keep bots out, but too often, they lock people with disabilities out, too. From image classification to click-based tests, many “human checks” are anything but inclusive. There’s no universal solution, but understanding real user needs is where accessibility truly starts. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/accessibility-problem-authentication-methods-captcha/</span> <p>The Completely Automated Public Turing test to tell Computers and Humans Apart (CAPTCHA) has become ingrained in internet browsing since personal computers gained momentum in the consumer electronics market. For nearly as long as people have been going online, web developers have sought ways to block spam bots. </p> <p>The CAPTCHA service distinguishes between human and bot activity to keep bots out. Unfortunately, its methods are less than precise. In trying to protect humans, developers have made much of the web <strong>inaccessible</strong> to people with disabilities. </p> <p><img src="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/1-authentication-failed.jpg" /></p> <p>Authentication methods, such as CAPTCHA, typically use image classification, puzzles, audio samples, or click-based tests to determine whether the user is human. While the types of challenges are well-documented, their <strong>logic is not public knowledge</strong>. People can only guess what it takes to “prove” they are human. </p> <p><img src="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/2-recaptcha.png" /></p> What Is CAPTCHA? <p>A CAPTCHA <a href="https://medium.com/@leo.weiss33/a-reverse-turing-test-story-cf677b0ff282">is a reverse Turing test</a> that takes the form of a challenge-response test. For example, if it instructs users to “select all images with stairs,” they must pick the stairs out from railings, driveways, and crosswalks. Alternatively, they may be asked to enter the text they see, add the sum of dice faces, or complete a sliding puzzle. </p> <p>Image-based CAPTCHAs are responsible for the most frustrating shared experiences internet users have — deciding whether to select a square when only a small sliver of the object in question is in it.</p> <p><img src="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/3-captcha-picture.png" /></p> <p>Regardless of the method, a computer or algorithm ultimately determines whether the test-taker is human or machine. This authentication service has spawned many offshoots, including reCAPTCHA and hCAPTCHA. It has even led to the creation of entire companies, such as GeeTest and Arkose Labs. The Google-owned automated system reCAPTCHA requires users to click a checkbox labeled “I’m not a robot” for authentication. It runs an adaptive analysis in the background to assign a risk score. hCAPTCHA is an image-classification-based alternative. </p> <p>Other authentication methods include multi-factor authentication (MFA), QR codes, temporary personal identification numbers (PINs), and biometrics. They do not follow the challenge-response formula, but serve fundamentally similar purposes. </p> <p>These offshoots are intended to be better than the original, but they often fail to meet modern accessibility standards. Take hCaptcha, for instance, which uses a cookie to let you bypass the challenge-response test entirely. It’s a great idea in theory, but it doesn’t work in practice. </p> <p>You’re supposed to receive a one-time code via email that you send to a specific number over SMS. Users <a href="https://fireborn.mataroa.blog/blog/hellcaptcha-accessibility-theater-at-its-worst/">report receiving endless error messages</a>, forcing them to complete the standard text CAPTCHA. This is only available if the site explicitly enabled it during configuration. If it is not set up, you must complete an image challenge that does not recognize screen readers.</p> <p>Even when the initial process works, subsequent authentication relies on a third-party cross-site cookie, which most browsers block automatically. Also, the code expires after a short period, so you have to redo the entire process if it takes you too long to move on to the next step.</p> Why Do Teams Use CAPTCHA And Similar Authentication Methods? <p>CAPTCHA is common because it is <strong>easy to set up</strong>. Developers can program it to appear, and it conducts the test automatically. This way, they can focus on more important matters while still preventing spam, fraud, and abuse. These tools are supposed to make it easier for humans to use the internet safely, but they often keep real people from logging in.</p> <p>These tests result in a <strong>poor user experience</strong> overall. One study found users <a href="https://arxiv.org/abs/2311.10911">wasted over 819 million hours</a> on over 512 billion reCAPTCHA v2 sessions as of 2023. Despite it all, bots prevail. Machine learning models can solve text-based CAPTCHA within fractions of a second with over 97% accuracy. </p> <p>A 2024 study on Google’s reCAPTCHA v2 — which is still widely used despite the rollout of reCAPTCHA v3 — found bots can solve image classification CAPTCHA <a href="https://arstechnica.com/ai/2024/09/ai-defeats-traffic-image-captcha-in-another-triumph-of-machine-over-man/">with up to 100% accuracy</a>, depending on the object they are tasked with identifying. The researchers used a free, open-source model, which means that bad actors could easily replicate their work. </p> Why Should Web Developers Stop Using CAPTCHA? <p>Authentication methods like CAPTCHA have an accessibility problem. Machine learning advances forced these services to grow increasingly complex. Even still, they are not foolproof. Bots get it right more than people do. Research shows they can <a href="https://arxiv.org/abs/2307.12108">complete reCAPTCHA within 17.5 seconds</a>, achieving 85% accuracy. Humans take longer and are less accurate.</p> <p>Many people fail CAPTCHA tests and have no idea what they did wrong. For example, a prompt instructing users to “select all squares with traffic lights” seems simple enough, but it gets complicated if a sliver of the pole is in another square. Should they select that box, or is that what an algorithm would do? </p> <p>Although bot capabilities have grown by magnitudes, humans have remained the same. As tests get progressively more difficult, they feel less inclined to attempt them. One survey shows <a href="https://www.regpacks.com/blog/user-onboarding-mistakes/">nearly 59% of people</a> will stop using a product after several bad experiences. If authentication is too cumbersome or complex, they might stop using the website entirely. </p> <p>People can fail these tests for various reasons, including technical ones. If they block third-party cookies, have a local proxy running, or have not updated their browser in a while, they may keep failing, regardless of how many times they try. </p> Authentication Issues With CAPTCHA <p>Due to the reasons mentioned above, most types of CAPTCHA are inherently inaccessible. This is especially true for people with disabilities, as these challenge-response tests were not designed with their needs in mind. Some of the common issues include the following:</p> <h3>Issues Related To Visuals And Screen Reader Use</h3> <p>Screen readers cannot read standard visual CAPTCHAs, such as the distorted text test, since the jumbled, contorted words are not machine-readable. The image classification and sliding puzzle methods are similarly inaccessible. </p> <p>In one WebAIM survey conducted from 2023 to 2024, screen reader users <a href="https://webaim.org/projects/screenreadersurvey10/#problematic">agreed CAPTCHA was the most problematic</a> item, ranking it above ambiguous links, unexpected screen changes, missing alt text, inaccessible search, and lack of keyboard accessibility. Its spot at the top has remained largely unchanged for over a decade, illustrating its history of inaccessibility. </p> <h3>Issues Related To Hearing and Audio Processing</h3> <p>Audio CAPTCHAs are relatively uncommon because web development best practices advise against autoplay audio and emphasize the importance of user controls. However, audio CAPTCHAs still exist. People who are hard of hearing or deaf may encounter a barrier when attempting these tests. Even with assistive technology, the intentional audio distortion and background noise make these samples challenging for individuals with auditory processing disorders to comprehend.</p> <h3>Issues Related To Motor And Dexterity</h3> <p>Tests requiring motor and dexterity skills can be challenging for those with motor impairments or physical disabilities. For example, someone with a hand tremor may find the sliding puzzles difficult. Also, the image classification tests that load more images until none that fit the criteria are left may pose a challenge.</p> <h3>Issues Related To Cognition And Language</h3> <p>As CAPTCHAs become increasingly complex, some developers are turning to tests that require a combination of creative and critical thinking. Those that require users to solve a math problem or complete a puzzle can be challenging for people with dyslexia, dyscalculia, visual processing disorders, or cognitive impairments. </p> Why Assistive Technology Won’t Bridge The Gap <p>CAPTCHAs are intentionally designed for humans to interpret and solve, so assistive technology like screen readers and hands-free controls may be of little help. ReCAPTCHA in particular poses an issue because it analyzes background activity. If it flags the accessibility devices as bots, it will serve a potentially inaccessible CAPTCHA. </p> <p>Even if this technology could bridge the gap, web developers shouldn’t expect it to. Industry standards dictate that they should follow universal design principles to make their websites as accessible and functional as possible.</p> <p>CAPTCHA’s accessibility issues could be forgiven if it were an effective security tool, but it is far from foolproof since bots get it right more than humans do. Why keep using a method that is ineffective and creates barriers for people with disabilities?</p> <p>There are better alternatives.</p> Principles For Accessible Authentication <p>The idea that humans should consistently outperform algorithms is outdated. Better authentication methods exist, such as <strong>multifactor authentication (MFA)</strong>. The two-factor authentication market will be <a href="https://designerly.com/hacked-wordpress-site/">worth an estimated $26.7 billion</a> by 2027, underscoring its popularity. This tool is more effective than a CAPTCHA because it <strong>prevents unauthorized access, even with legitimate credentials</strong>.</p> <p><img src="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/4-multifactor-authentication.jpg" /></p> <p>Ensure your MFA technique is accessible. Instead of having website visitors transcribe complex codes, you should send push notifications or SMS messages. Rely on the verification code autofill to automatically capture and enter the code. Alternatively, you can introduce a “remember this device” feature to skip authentication on trusted devices. </p> <p>Apple’s two-factor authentication approach is designed this way. A trusted device automatically displays a six-digit verification code, so they do not have to search for it. When prompted, iPhone users can tap the suggestion that appears above their mobile keyboard for autofill.</p> <p><img src="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/5-apple-two-factor-authentication.png" /></p> <p><strong>Single sign-on</strong> is another option. This session and user authentication service allows people to log in to multiple websites or applications with a single set of login credentials, minimizing the need for repeated identity verification. </p> <p><strong>One-time-use “magic links”</strong> are an excellent alternative to reCAPTCHA and temporary PINs. Rather than remembering a code or solving a puzzle, the user clicks on a button. Avoid imposing deadlines because, according to WCAG Success Criterion 2.2.3, users <a href="https://www.w3.org/WAI/WCAG22/Understanding/no-timing.html">should not face time limits</a> since those with disabilities may need more time to complete specific actions.</p> <p>Alternatively, you could use Cloudflare Turnstile. It authenticates <a href="https://developers.cloudflare.com/turnstile/">without showing a CAPTCHA</a>, and most people never even have to check a box or hit a button. The software works by issuing a small JavaScript challenge behind the scenes to automatically differentiate between bots and humans. Cloudflare Turnstile can be embedded into any website, making it an excellent alternative to standard classification tasks. </p> Testing And Evaluation Of Accessible Authentication Designs <p>Testing and evaluating your accessible alternative authentication methods is essential. Many designs look good on paper but do not work in practice. If possible, gather feedback from actual users. An open beta may be an effective way to maximize visibility.</p> <blockquote>Remember, general accessibility considerations do not only apply to people with disabilities. They also include those who are neurodivergent, lack access to a mobile device, or use assistive technology. Ensure your alternative designs consider these individuals.</blockquote> <p>Realistically, you cannot create a perfect system since everyone is unique. Many people struggle to follow multistep processes, solve equations, process complex instructions, or remember passcodes. While universal web design principles can improve flexibility, no single solution can meet everyone’s needs.</p> <p>Regardless of the authentication technique you use, you should present users with multiple authentication options upfront. They know their capabilities best, so let them decide what to use instead of trying to over-engineer a solution that works for every edge case.</p> Address The Accessibility Problem With Design Changes <p>A person with hand tremors may be unable to complete a sliding puzzle, while someone with an audio processing disorder may have trouble with distorted audio samples. However, you cannot simply replace CAPTCHAs with alternatives because they are often equally inaccessible.</p> <p>QR codes, for example, may be difficult to scan for those with reduced fine motor control. People who are visually impaired may struggle to find it on the screen. Similarly, biometrics can pose an issue for people with facial deformities or a limited range of motion. Addressing the accessibility problem requires <strong>creative thinking</strong>.</p> <p>You can start by visiting the <a href="https://www.w3.org/WAI/tutorials/">Web Accessibility Initiative’s accessibility tutorials</a> for developers to better understand universal design. Although these tutorials focus more on content than authentication, you can still use them to your advantage. The W3C Group Draft Note <a href="https://www.w3.org/TR/turingtest/">on the Inaccessibility of CAPTCHA</a> provides more relevant guidance.</p> <p>Getting started is as easy as researching <strong>best practices</strong>. Understanding the basics is essential because there is no universal solution for accessible web design. If you want to optimize accessibility, consider sourcing feedback from the people who actually visit your website.</p> <h3>Further Reading</h3> <ul> <li>“<a href="https://link.springer.com/book/10.1007/978-3-030-29345-1">The CAPTCHA: Perspectives and Challenges</a>,” Darko Brodić and Alessia Amelio</li> <li>“<a href="https://www.smashingmagazine.com/2023/08/designing-accessible-text-over-images-part1/">Designing Accessible Text Over Images: Best Practices, Techniques, And Resources</a>,” Hannah Milan</li> <li>“<a href="https://www.smashingmagazine.com/2011/03/in-search-of-the-perfect-captcha/">In Search Of The Best CAPTCHA</a>,” David Bushell</li> <li>“<a href="https://www.smashingmagazine.com/2025/05/wcag-3-proposed-scoring-model-shift-accessibility-evaluation/">WCAG 3.0’s Proposed Scoring Model: A Shift in Accessibility Evaluation</a>,” Mikhail Prosmitskiy</li> </ul> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/accessibility-problem-authentication-methods-captcha/</span> hello@smashingmagazine.com (Eleanor Hecks) <![CDATA[Design System Culture: What It Is And Why It Matters (Excerpt)]]> https://smashingmagazine.com/2025/11/design-system-culture/ https://smashingmagazine.com/2025/11/design-system-culture/ Tue, 25 Nov 2025 18:00:00 GMT We’re so happy to announce that “Maturing Design Systems”—a Smashing book by Ben Callahan — will soon be joining the Smashing Library! Ben’s insights and advice are so powerful, we thought you might like to read an excerpt from the book. <a href="https://www.smashingmagazine.com/the-smashing-newsletter/">Subscribe to our Smashing newsletter</a> to be notified when orders are open. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/design-system-culture/</span> <p>This article is a sponsored by <a href="undefined">Maturing Design Systems</a></p> <p>Design systems have become an integral part of our everyday work, so much that the successful growth and maturation of a design system can make or break a product or project. <strong>Great tokens, components and organization aren’t enough</strong> — it is most often the culture and curation that creates a sustainable, widely-adopted system. It can be hard to determine where to invest our time and attention. How do we build and maintain design systems that support our teams, enhance our work, and grow along with us? </p> <p><img src="https://files.smashing.media/maturing-design-systems.png" /></p> Excerpt: Design System Culture <p>Culture is a funny thing. We all have some intuition about how important it is—at least we know we want to work in a great culture and avoid the toxic ones. But culture is notoriously difficult to define, and changing it can feel more like magic than reality. One company culture can be inspiring for some and boring for others, a place of growth for some and stifling for others.</p> <p>Adding to the nuance, not only does your company have a culture as a whole, but it has many subcultures. That’s because culture is not created by any individual. Culture is something that happens when the same group of people gather together repeatedly over time. So, as a company grows, adding hierarchy and structure, the teams formed around specific goals, products, features, disciplines, and so on, <strong>all develop their own subcultures</strong>.</p> <p>You probably have a design subculture. You probably have a product ownership subculture. You probably even have a subculture forming around those folks who get on a Zoom call every Tuesday at lunch to knit and chat. There are hundreds or more subcultures at most good-sized organizations. It’s complicated, nuanced, and immensely important.</p> <p>When an individual is struggling with the way they are managed, one culture enables them to offer authentic feedback to their boss, while another leads them to look for a new job. When a company provides free lunch on Fridays, one culture creates a sense of gratitude for this benefit; another makes you feel like this free lunch comes with the expectation that you can’t ever leave work. One culture prioritizes financial results over respectful interactions. One culture encourages competition between teams, while another emphasizes collaboration with coworkers.</p> <h3>Why Culture?</h3> <p>At the beginning of 2021, my company was asked to help a large organization plan, design, and build a design system alongside the minimum viable product of a new product idea. This is the kind of work we truly love, so the team was excited to jump in.</p> <p>As an author of a book about design systems, I want nothing more than to tell you how amazingly this engagement went. Instead, it was a tremendous struggle. Despite this being the perfect kind of work for my team and I on paper, we had to make the hard decision to walk away from our client at the end of that year. Not because we couldn’t do the work. Not because of any technical challenges or budget concerns. The reason we gave was “cultural incompatibility.” In almost twenty years of running my own businesses, <strong>this had never happened to me</strong>. After all, our clients don’t come to us because they have everything figured out — they come because they know they need help. If we couldn’t guide them through a difficult season, why did we even exist!?</p> <p>Needless to say, it didn’t sit well with me. So, after following a few useless threads of fear that we just couldn’t cut it, I spent the next year diving down a rabbit hole of research on organizational culture. This next section is a summary of what I learned in that year and how I’ve been putting that to use since. To start, let’s find a common understanding of what culture is.</p> <h3>What Is Culture?</h3> <p>Over the last few decades, a lot has been said about workplace culture. From understanding why it matters and how it impacts the ways we lead, to offering methodologies for changing it. I’ve found tremendous value in the research and writings of Edgar Schein, a business theorist and psychologist. Schein offers a simple model to explain what culture is, breaking it down into three levels:</p> <p><img src="https://files.smashing.media/design-system-culture/schein-model-organization-culture.png" /></p> <h3>Artifacts</h3> <p>Artifacts are the top level of Schein’s model. These are the things people think of when you say “culture” — the visible perks a company offers. I once worked at a place where we could expense bringing in donuts for the team. Another job I had provided a foosball table. One company encouraged us to cook lunch together each week. These kinds of things, along with the company swag, the channel in Slack where you get to brag about your peers, and the company retreat are all “artifacts” of your company culture.</p> <h3>Espoused Values And Beliefs</h3> <p>The next layer down is called “espoused values and beliefs.” This is what people inside the culture say they believe. It’s the list of values, the mission statement, the vision. It’s the content on the website and plastered on the walls. It’s the stuff you expect to get when you accept the job because it’s how people answered all your questions throughout the interview process.</p> <h3>Basic Underlying Assumptions</h3> <p>The deepest layer is called “basic underlying assumptions.” This is what people inside the organization actually believe. It’s the way the leadership and employees behave, most notably </p> <p>in the face of a difficult decision. This layer is the root of your culture. And no matter what you show (artifacts), no matter what you say (espoused beliefs), the things you believe (underlying assumptions) will come out eventually.</p> <h3>It Starts At The Bottom</h3> <p>As an employee, you will experience these things from the top down. On your first day, you observe what’s happening around you — you see the artifacts of the culture. Eventually, you get to know a few folks. As you have more and more conversations with them, you’ll begin to <strong>hear how they talk about the culture</strong> — their espoused beliefs. At some point, people inside your culture will be faced with some tough situations. This is where the rubber meets the road and when you’ll learn what those individuals’ basic underlying assumptions are.</p> <p>Unhealthy organizations don’t have a process for surfacing and valuing those underlying assumptions. Healthy organizations know that culture starts with the basic underlying assumptions of every individual at the company.</p> <p>Unhealthy organizations try to create culture with perks and mission statements. Healthy organizations allow the top two layers to emerge naturally from the bottom layer.</p> <p>When the basic underlying assumptions don’t line up with the espoused beliefs and artifacts, <strong>the disconnect is strong</strong>. It’s often hard to articulate the problem, but people will feel it. This is the company with a core value of “family first” that requires you to travel all the time with no recognition of the impact it has on your actual family. The espoused belief to prioritize family is not actively supported in the decisions being made.</p> <h3>Strength And Weakness</h3> <p>We all subconsciously know these things, and that is reflected in the language we use as we talk about the culture of an organization. We tend to use the words “strong” and “weak” to describe culture. You might say, “That company has a strong culture.” This statement is an indication that the layers are aligned, and that means the culture itself serves as a way of guiding decisions. If we all have shared values, we can trust one another’s ability to make decisions that will align with those values.</p> <p>Conversely, an organization with a weak culture is missing the alignment between the things they say and the decisions they make. These cultures often continually add <strong>policies and procedures</strong> in order to police the behavior of individuals. In this scenario, the culture is weak because it doesn’t offer the organic guidance a stronger culture does — the misalignment means the things we choose to do differ from the things we say.</p> <p>That is not to say policies and procedures are bad. As companies grow, there is a need to document the expectations for people. The proactive nature of a strong culture means these documents are often a formalization of what has emerged organically, whereas a weak culture reacts to negative situations in hopes to prevent the bad from happening again.</p> Editor’s Note <p>Do you like what you’ve read so far? This is just an excerpt of Ben’s upcoming book, <strong><em>Maturing Design Systems</em></strong>, in which he explores the anatomy of a design system, explains how culture shapes outcomes, and shares practical guidance for the challenges at each stage — from building v1 and growing healthy adoption to navigating “the teenage years” and ultimately running a stable, influential system.</p> <h3>Table of Contents</h3> <ul> <li><strong>Context</strong><br />An introduction to the context of design systems, understanding where they live in your organization, what feeds them, and whether you should build one.</li> <li><strong>Design System Culture</strong><br />A deep dive into what culture is, why it’s important for design system teams to understand, and how it unlocks the ability for you to deliver real value.</li> <li><strong>The Anatomy of a Design System</strong><br />An exploration of the layers and parts that make up a design system based on the evaluation of hundreds of design systems over many years.</li> <li><strong>Maturity</strong><br />An over view of the design system maturity model including the fours stages of maturity, origin stories, a framework for maturing in a healthy way, and a framework for creating design system stability.</li> <li><strong>Stage 1, Building Version One</strong><br />A dive into what it means to be in stage 1 of the design system maturity and a few mental models to keep you focused on the right things in this early stage.</li> <li><strong>Stage 2, Growing Adoption</strong><br />Unpacking stage 2 of the design system maturity model and a deep dive into adoption: broadening your perspective on adoption, the adoption curve, and how to create sustainable adoption.</li> <li><strong>Stage 3, Surviving the Teenage Years</strong><br />Understanding the relevant concerns for stage 3 of the design system maturity model and how to address the more nuanced challenges that come with this level of maturity.</li> <li><strong>Stage 4, Evolving a Healthy Program</strong><br />Exploring what it means to be in stage 4 of the design system maturity model, when you’ve become an influential leader in the eyes of the rest of your organization.</li> </ul> <h3>About The Author</h3> <div> <a href="https://bencallahan.com"><img src="https://files.smashing.media/design-system-culture/ben-callahan.jpg" /></a> <p><a href="https://bencallahan.com">Ben Callahan</a> is an author, design system researcher, coach, and speaker. He founded <a href="https://bencallahan.com/redwoods">Redwoods</a>, a design system community, and <a href="https://bencallahan.com/the-question">The Question</a>, a weekly forum for collaborative learning. As a founding partner at <a href="https://sparkbox.com">Sparkbox</a>, he helps organizations embed human-centered culture into their design systems. His work bridges people and systems, emphasizing sustainable growth, team alignment, and meaningful impact in technology. He believes every interaction is an opportunity to learn.</p> </div> <h3>Reviewers’ Testimonials</h3> <blockquote><img src="https://files.smashing.media/design-system-culture/lenora-porter.jpg" />“This book is a clear and insightful blueprint for maturing design systems at scale. For well-supported teams, it offers strategy and clarity grounded in real examples. For smaller teams like mine, it serves as a North Star that helps you advocate for the work and find solutions that fit your team's maturity. I highly recommend it to anyone building a design system.”<br /><br />— <em>Lenora Porter, Product Designer</em></blockquote> <blockquote><img src="https://files.smashing.media/design-system-culture/tarunya-varma.jpg" />“Ben draws connections between process, collaboration, and identity in ways that feel both intuitive and revelatory. Many design system books live comfortably in the tactical and technical, but this one moves beyond the how and into the why — inviting readers to reflect on their roles not just as product owners, designers or engineers, but as stewards of shared understanding within complex organisations. This book doesn’t prescribe rigid solutions. Instead, it encourages self-inquiry and alignment, asking readers to consider how they can bring intentionality, empathy, and resilience into the systems they touch.”<br /><br />— <em>Tarunya Varma, Product Design Manager, Tide</em></blockquote> <blockquote><img src="https://files.smashing.media/design-system-culture/ness-grixti.jpg" />“Ben Callahan’s “Maturing Design Systems” puts language to the struggles many of us feel but can’t quite explain. It unpacks the hidden influence of culture, setup, and leadership, providing you with the clarity, tools, and frameworks to course-correct and move your system work forward, whether you’re navigating a growing startup or a scaling enterprise.”<br /><br />— <em>Ness Grixti, Design Lead, Wise, and Author of “A Practical Guide to Design System Components”</em></blockquote> Don’t Miss Out! <p>Through years of interviews, coaching, and consulting, Ben has discovered a model for how design systems mature. Understanding how systems tend to mature allows you to <strong>create a sustainable program around your design system</strong> — one that acknowledges the human and change-management side of this work, not just the technical and creative.</p> <p>This book will be a valuable resource for anyone working with design systems!</p> Spread The Word <p><a href="https://www.smashingmagazine.com/the-smashing-newsletter/">Sign up to our Smashing newsletter</a> and be one of the first to know when <strong><em>Maturing Design Systems</em></strong> is available for preorder. We can’t wait to share this book with you!</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/design-system-culture/</span> hello@smashingmagazine.com (Ari Stiles) <![CDATA[Designing For Stress And Emergency]]> https://smashingmagazine.com/2025/11/designing-for-stress-emergency/ https://smashingmagazine.com/2025/11/designing-for-stress-emergency/ Mon, 24 Nov 2025 13:00:00 GMT Practical guidelines on designing time-critical products that prevent errors and improve accuracy. Part of the <a href="https://measure-ux.com/">Measure UX & Design Impact</a> (use the code 🎟 <code>IMPACT</code> to save 20% off today). With a <a href="https://smashingconf.com/online-workshops/workshops/vitaly-friedman-impact-design/">live UX training</a> starting next week. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/designing-for-stress-emergency/</span> <p>No design exists in isolation. As designers, we often imagine specific situations in which people will use our product. It might be indeed quite common — but there will also be other — <strong>urgent, frustrating, stressful situations</strong>. And they are the ones that we rarely account for.</p> <p>So how do we account for such situations? How can we help people <strong>use our products while coping with stress</strong> — without adding to their cognitive load? Let’s take a closer look.</p> Study Where Your Product Fits Into People’s Lives <p>When designing digital products, sometimes we get a bit too attached to our <strong>shiny new features and flows</strong> — often forgetting the messy reality in which these features and flows have to neatly fit. And often it means 10s of other products, 100s of other tabs, and 1000s of other emails.</p> <p><img src="https://files.smashing.media/articles/designing-for-stress-and-emergency/1-designing-for-stress-and-emergency.jpg" /></p> <p>If your customers have to use a <strong>slightly older machine</strong>, with a <em>smallish</em> 22" screen and a lot of background noise, they might use your product differently than you might have imagined, e.g., splitting the screen into halves to see both views at the same time (as displayed above).</p> <p>Chances are high that our customers will use our product <strong>while doing something else</strong>, often with very little motivation, very little patience, plenty of urgent (and way more important) problems, and an unhealthy dose of stress. And that’s where our product must do its job well.</p> What Is Stress? <p>What exactly do we mean when we talk about “stress”? As H Locke noted, stress is the <strong>body’s response to a situation it cannot handle</strong>. There is a mismatch between what people can control, their own skills, and the challenge in front of them.</p> <p>If the situation seems unmanageable and the goal they want to achieve moves further away, it creates an enormous sense of <strong>failing</strong>. It can be extremely frustrating and demotivating.</p> <p><img src="https://files.smashing.media/articles/designing-for-stress-and-emergency/2-designing-for-stress-and-emergency.jpg" /></p> <p>Some failures have a local scope, but many have a <strong>far-reaching impact</strong>. Many people can’t choose the products they have to use for work, so when a tool fails repeatedly, causes frustration, or is unreliable, it affects the worker, the work, the colleagues, and processes within the organization. <strong>Fragility has a high cost</strong> — and so does frustration.</p> How Stress Influences User Interactions <p>It’s not a big surprise: stress disrupts attention, memory, cognition, and decision-making. It makes it difficult to prioritize and draw logical conclusions. In times of stress, we <strong>rely on fast, intuitive judgments</strong>, not reasoning. Typically, it leads to instinctive responses based on established habits.</p> <p><img src="https://files.smashing.media/articles/designing-for-stress-and-emergency/3-designing-for-stress-and-emergency.png" /></p> <p>When users are in an emergency, they experience <em>cognitive tunneling</em> — it's a state when their peripheral vision narrows, reading comprehension drops, fine motor skills deteriorate, and patience drops sharply. Under pressure, people often make decisions hastily, while others get entirely paralyzed. Either way is a likely <strong>path to mistakes</strong> — often irreversible ones and often without time for extensive deliberations.</p> <p>Ideally, these decisions would be made way ahead of time — and then suggested when needed. But in practice, it’s not always possible. As it turns out, a good way to help people deal with stress is by <strong>providing order</strong> around how they manage it.</p> Single-Tasking Instead Of Multi-Tasking <p><a href="https://consensus.app/search/how-effective-are-people-at-multi-tasking-for-work/9GEx-KC0S8-OhSEgXClnrA/">People can’t <em>really</em> multi-task</a>, especially in very stressful situations or emergencies. Especially with a big chunk of work in front of them, people need some order to make progress, reliably. That’s why simpler pages usually work better than one big complex page.</p> <p>Order means giving users a <strong>clear plan of action</strong> to complete a task. No distractions, no unnecessary navigation. We ask simple questions and <strong>prompt simple actions</strong>, one after another, one thing at a time.</p> <p><img src="https://files.smashing.media/articles/designing-for-stress-and-emergency/4-designing-for-stress-and-emergency.png" /></p> <p>An example of the plan is the <a href="https://designnotes.blog.gov.uk/2017/04/04/weve-published-the-task-list-pattern/">Task List Pattern</a>, invented by fine folks at Gov.uk. We break a task into a <strong>sequence of sub-tasks</strong>, describe them with actionable labels, assign statuses, and track progress.</p> <p>To support accuracy, we revise <strong>default settings</strong>, values, presets, and actions. Also, the <strong>order of actions</strong> and buttons matters, so we put high-priority things first to make them easier to find. Then we add built-in safeguards (e.g., Undo feature) to prevent irreversible errors.</p> Supporting In Emergencies <p>The most effective help during emergencies is to help people deal with the situation in a well-defined and effective way. That means being prepared for and designing an <strong>emergency mode</strong>, e.g., to activate instant alerts on emergency contacts, distribute pre-assigned tasks, and establish a line of communication.</p> <p><img src="https://files.smashing.media/articles/designing-for-stress-and-emergency/5-designing-for-stress-and-emergency.jpg" /></p> <p><a href="https://www.redcross.org.au/emergencies/prepare/get-prepared-app/">Rediplan App</a> by Australian Red Cross is an emergency plan companion that encourages citizens to <strong>prepare their documents and belongings</strong> with a few checklists and actions — including key contracts, meeting places, and medical information, all in one place.</p> Just Enough Friction <p>Not all stress is equally harmful, though. As <a href="https://www.kryshiggins.com/optimal-onboarding-zone/">Krystal Higgins points out</a>, if there is not enough friction when onboarding new users and the experience is <strong>too passive</strong> or users are hand-held even through the most basic tasks, you risk that they won’t realize the <strong>personal value</strong> they gain from the experience and, ultimately, lose interest.</p> <p><img src="https://files.smashing.media/articles/designing-for-stress-and-emergency/6-designing-for-stress-and-emergency.png" /></p> Design And Test For Stress Cases <p><strong>Stress cases aren’t edge cases</strong>. We can’t predict the emotional state in which a user comes to our site or uses our product. A person looking for specific information on a hospital website or visiting a debt management website, for example, is most likely already stressed. Now, if the interface is overwhelming, it will only add to their cognitive load.</p> <p>Stress-testing your product is critical to prevent this from happening. It’s useful to set up an annual day to <strong>stress test your product</strong> and refine emergency responses. It could be as simple as running <a href="https://contentdesign.intuit.com/foundations/content-testing/">content testing</a>, or running tests in a real, noisy, busy environment where users actually work — at peak times.</p> <p>And in case of emergencies, we need to check if fallbacks work as expected and if the current UX of the product helps people manage failures and exceptional situations well enough.</p> Wrapping Up <p>Emergencies <em>will</em> happen eventually — it’s just a matter of time. With good design, we can help <strong>mitigate risk and control damage</strong>, and make it hard to make irreversible mistakes. At its heart, that’s what good UX is exceptionally good at.</p> Key Takeaways <p>People can’t multitask, especially in very stressful situations.</p> <ul> <li>Stress <strong>disrupts attention</strong>, memory, cognition, decision-making.</li> <li>Also, it’s <strong>difficult to prioritize</strong> and draw logical conclusions.</li> <li>Under stress, we rely on fast, intuitive judgments — not reasoning.</li> <li>It leads to instinctive responses based on <strong>established habits</strong>.</li> </ul> <p>Goal: Design flows that support focus and high accuracy.</p> <ul> <li>Start with better default settings, values, presets, and actions.</li> <li><strong>High-priority first</strong>: order of actions and buttons matters.</li> <li>Break complex tasks down into a series of simple steps (10s–30s each).</li> <li>Add built-in <strong>safeguards</strong> to prevent irreversible errors (Undo).</li> </ul> <p>Shift users to single-tasking: ask for one thing at a time.</p> <ul> <li><strong>Simpler pages</strong> might work better than one complex page.</li> <li>Suggest a <strong>step-by-step plan of action</strong> to follow along.</li> <li>Consider, design, and test flows for emergency responses ahead of time.</li> <li>Add emergency mode for <strong>instant alerts</strong> and task assignments.</li> </ul> Meet “How To Measure UX And Design Impact” <p>You can find more details on <strong>UX Strategy</strong> in 🪴 <a href="https://measure-ux.com/"><strong>Measure UX & Design Impact</strong></a> (8h), a practical guide for designers and UX leads to measure and show your UX impact on business. Use the code 🎟 <code>IMPACT</code> to save 20% off today. <a href="https://measure-ux.com/">Jump to the details</a>.</p> <a href="https://measure-ux.com/"> <img src="https://files.smashing.media/articles/ux-metrics-video-course-release/measure-ux-and-design-impact-course.png" /> </a> <div><div><ul><li><a href="#"> Video + UX Training</a></li><li><a href="#">Video only</a></li></ul><div><h3>Video + UX Training</h3>$ 495.00 $ 799.00 <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3081832?price_id=3951439"> Get Video + UX Training<div></div></a><p>25 video lessons (8h) + <a href="https://smashingconf.com/online-workshops/workshops/vitaly-friedman-impact-design/">Live UX Training</a>.<br />100 days money-back-guarantee.</p></div><div><h3>Video only</h3><div>$ 250.00$ 395.00</div> <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3081832?price_id=3950630"> Get the video course<div></div></a><p>25 video lessons (8h). Updated yearly.<br />Also available as a <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3082557?price_id=3951421">UX Bundle with 2 video courses.</a></p></div></div></div> Useful Resources <ul> <li>“<a href="https://medium.com/design-bootcamp/ux-case-study-standby-17000867133c">Designing The SOS Emergency System</a>”, by Ritik Jayy</li> <li>“<a href="https://medium.com/net-magazine/designing-for-crisis-9cab10b4c519">Designing For Crisis</a>”, by Eric Meyer</li> <li>“<a href="https://medium.com/designing-services/designing-for-stressed-out-users-part-1-4489793dbe41">Designing For Stressed Out Users</a>” (Series), by H Locke</li> <li><a href="https://uxpodcast.com/293-life-death-design-katie-swindler/">Designing For Stress</a> (Podcast), by Katie Swindler</li> <li><a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-activity-7167433494200066048-trWE">Designing For Edge Cases and Exceptions</a>, by yours truly</li> <li><a href="https://dfrlbook.com/"><em>Design For Real Life</em></a>, by Sara Wachter-Boettcher, Eric Mayer</li> <li>“<a href="https://www.kryshiggins.com/optimal-onboarding-zone/">Optimal Stress Levels For Onboarding</a>, by Krystal Higgins</li> </ul> <h3>Further Reading</h3> <ul> <li>“<a href="https://www.smashingmagazine.com/2025/09/how-minimize-environmental-impact-website/">How To Minimize The Environmental Impact Of Your Website</a>”, James Chudley</li> <li>“<a href="https://www.smashingmagazine.com/2025/10/ai-ux-achieve-more-with-less/">AI In UX: Achieve More With Less</a>”, Paul Boag</li> <li>“<a href="https://www.smashingmagazine.com/2025/10/how-make-ux-research-hard-to-ignore/">How To Make Your UX Research Hard To Ignore</a>”, Vitaly Friedman</li> <li>“<a href="https://www.smashingmagazine.com/2025/09/from-prompt-to-partner-designing-custom-ai-assistant/">From Prompt To Partner: Designing Your Custom AI Assistant</a>,” Lyndon Cerejo</li> </ul> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/designing-for-stress-emergency/</span> hello@smashingmagazine.com (Vitaly Friedman) <![CDATA[Keyframes Tokens: Standardizing Animation Across Projects]]> https://smashingmagazine.com/2025/11/keyframes-tokens-standardizing-animation-across-projects/ https://smashingmagazine.com/2025/11/keyframes-tokens-standardizing-animation-across-projects/ Fri, 21 Nov 2025 08:00:00 GMT Animations can be one of the most joyful parts of building interfaces, but without structure, they can also become one of the biggest sources of frustration. By consolidating and standardizing keyframes, you take something that is usually messy and hard to manage and turn it into a clear, predictable system. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/keyframes-tokens-standardizing-animation-across-projects/</span> <p>Picture this: you join a new project, dive into the codebase, and within the first few hours, you discover something frustratingly familiar. Scattered throughout the stylesheets, you find multiple <code>@keyframes</code> definitions for the same basic animations. Three different fade-in effects, two or three slide variations, a handful of zoom animations, and at least two different spin animations because, well, why not?</p> <pre><code>@keyframes pulse { from { scale: 1; } to { scale: 1.1; } } @keyframes bigger-pulse { 0%, 20%, 100% { scale: 1; } 10%, 40% { scale: 1.2; } } </code></pre> <p>If this scenario sounds familiar, you’re not alone. In my experience across various projects, one of the most consistent quick wins I can deliver is <strong>consolidating and standardizing keyframes</strong>. It’s become such a reliable pattern that I now look forward to this cleanup as one of my first tasks on any new codebase.</p> The Logic Behind The Chaos <p>This redundancy makes perfect sense when you think about it. We all use the same fundamental animations in our day-to-day work: fades, slides, zooms, spins, and other common effects. These animations are pretty straightforward, and it's easy to whip up a quick <code>@keyframes</code> definition to get the job done.</p> <p>Without a centralized animation system, developers naturally write these keyframes from scratch, unaware that similar animations already exist elsewhere in the codebase. This is especially common when working in component-based architectures (which most of us do these days), as teams often work in parallel across different parts of the application.</p> <p>The result? Animation chaos.</p> The Small Problem <p>The most obvious issues with keyframes duplication are wasted development time and unnecessary code bloat. Multiple keyframe definitions mean multiple places to update when requirements change. Need to adjust the timing of your fade animation? You’ll need to hunt down every instance across your codebase. Want to standardize easing functions? Good luck finding all the variations. This multiplication of maintenance points makes even simple animation updates a time-consuming task.</p> The Bigger Problem <p>This keyframes duplication creates a much more insidious problem lurking beneath the surface: <strong>the global scope trap.</strong> Even when working with component-based architectures, CSS keyframes are always defined in the global scope. This means all keyframes apply to all components. Always. Yes, your animation doesn't necessarily use the keyframes you defined in your component. It uses the last keyframes that match that exact same name that were loaded into the global scope.</p> <p>As long as all your keyframes are identical, this might seem like a minor issue. But the moment you want to customize an animation for a specific use case, you’re in trouble, or worse, you’ll be the one causing them.</p> <p>Either your animation won’t work because another component loaded after yours, overwriting your keyframes, or your component loads last and accidentally changes the animation behavior for every other component using that keyframe's name, and you may not even realize it.</p> <p>Here’s a simple example that demonstrates the problem:</p> <pre><code>.component-one { /* component styles */ animation: pulse 1s ease-in-out infinite alternate; } /* this @keyframes definition will not work */ @keyframes pulse { from { scale: 1; } to { scale: 1.1; } } /* later in the code... */ .component-two { /* component styles */ animation: pulse 1s ease-in-out infinite; } /* this keyframes will apply to both components */ @keyframes pulse { 0%, 20%, 100% { scale: 1; } 10%, 40% { scale: 1.2; } } </code></pre> <p>Both components use the same animation name, but the second <code>@keyframes</code> definition overwrites the first one. Now both <code>component-one</code> and <code>component-two</code> will use the second keyframes, regardless of which component defined which keyframes.</p> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/JoXrOqz">Keyframes Tokens - Demo 1 [forked]</a> by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p> <p>The worst part? This often works perfectly in local development but breaks mysteriously in production when build processes change the loading order of your stylesheets. You end up with animations that behave differently depending on which components are loaded and in what sequence.</p> The Solution: Unified Keyframes <p>The answer to this chaos is surprisingly simple: <strong>predefined dynamic keyframes stored in a shared stylesheet</strong>. Instead of letting every component define its own animations, we create centralized keyframes that are well-documented, easy to use, maintainable, and tailored to the specific needs of your project.</p> <p>Think of it as <strong>keyframes tokens</strong>. Just as we <a href="https://www.smashingmagazine.com/2024/05/naming-best-practices/">use tokens for colors and spacing</a>, and many of us already use tokens for animation properties, like duration and easing functions, why not use tokens for keyframes as well?</p> <p>This approach can integrate naturally with any current design token workflow you’re using, while solving both the small problem (code duplication) and the bigger problem (global scope conflicts) in one go.</p> <p><strong>The idea is straightforward:</strong> create a single source of truth for all our common animations. This shared stylesheet contains carefully crafted keyframes that cover the animation patterns our project actually uses. No more guessing whether a fade animation already exists somewhere in our codebase. No more accidentally overwriting animations from other components.</p> <p>But here’s the key: these aren’t just static copy-paste animations. They’re designed to be dynamic and customizable through CSS custom properties, allowing us to maintain consistency while still having the flexibility to adapt animations to specific use cases, like if you need a slightly bigger “pulse” animation in one place.</p> Building The First Keyframes Token <p>One of the first low-hanging fruits we should tackle is the “fade-in” animation. In one of my recent projects, I found over a dozen separate fade-in definitions, and yes, they all simply animated the <code>opacity</code> from <code>0</code> to <code>1</code>.</p> <p>So, let’s create a new stylesheet, call it <code>kf-tokens.css</code>, import it into our project, and place our keyframes with proper comments inside of it.</p> <pre><code>/* keyframes-tokens.css */ /* * Fade In - fade entrance animation * Usage: animation: kf-fade-in 0.3s ease-out; */ @keyframes kf-fade-in { from { opacity: 0; } to { opacity: 1; } } </code></pre> <p>This single <code>@keyframes</code> declaration replaces all those scattered fade-in animations across our codebase. Clean, simple, and globally applicable. And now that we have this token defined, we can use it from any component throughout our project:</p> <pre><code>.modal { animation: kf-fade-in 0.3s ease-out; } .tooltip { animation: kf-fade-in 0.2s ease-in-out; } .notification { animation: kf-fade-in 0.5s ease-out; } </code></pre> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/yyOzPdv">Keyframes Tokens - Demo 2 [forked]</a> by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p> <p><strong>Note:</strong> <em>We’re using a <code>kf-</code> prefix in all our <code>@keyframes</code> names. This prefix serves as a namespace that prevents naming conflicts with existing animations in the project and makes it immediately clear that these keyframes come from our keyframes tokens file.</em></p> Making A Dynamic Slide <p>The <code>kf-fade-in</code> keyframes work great because it's simple and there's little room to mess things up. In other animations, however, we need to be much more dynamic, and here we can leverage the enormous power of <a href="https://www.smashingmagazine.com/2017/04/start-using-css-custom-properties/">CSS custom properties</a>. This is where keyframes tokens really shine compared to scattered static animations.</p> <p>Let’s take a common scenario: “slide-in” animations. But slide in from where? <code>100px</code> from the right? <code>50%</code> from the left? Should it enter from the top of the screen? Or maybe float in from the bottom? So many possibilities, but instead of creating separate keyframes for each direction and each variation, we can build one flexible token that adapts to all scenarios:</p> <pre><code>/* * Slide In - directional slide animation * Use --kf-slide-from to control direction * Default: slides in from left (-100%) * Usage: * animation: kf-slide-in 0.3s ease-out; * --kf-slide-from: -100px 0; // slide from left * --kf-slide-from: 100px 0; // slide from right * --kf-slide-from: 0 -50px; // slide from top */ @keyframes kf-slide-in { from { translate: var(--kf-slide-from, -100% 0); } to { translate: 0 0; } } </code></pre> <p>Now we can use this single <code>@keyframes</code> token for any slide direction simply by changing the <code>--kf-slide-from</code> custom property:</p> <pre><code>.sidebar { animation: kf-slide-in 0.3s ease-out; /* Uses default value: slides from left */ } .notification { animation: kf-slide-in 0.4s ease-out; --kf-slide-from: 0 -50px; /* slide from top */ } .modal { animation: kf-fade-in 0.5s, kf-slide-in 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); --kf-slide-from: 50px 50px; /* slide from bottom-right */ } </code></pre> <p>This approach gives us incredible flexibility while maintaining consistency. One keyframe declaration, infinite possibilities.</p> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/raeGYXr">Keyframes Tokens - Demo 3 [forked]</a> by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p> <p>And if we want to make our animations even more flexible, allowing for “slide-out” effects as well, we can simply add a <code>--kf-slide-to</code> custom property, similar to what we’ll see in the next section.</p> Bidirectional Zoom Keyframes <p>Another common animation that gets duplicated across projects is “zoom” effects. Whether it’s a subtle scale-up for toast messages, a dramatic zoom-in for modals, or a gentle scale-down effect for headings, zoom animations are everywhere.</p> <p>Instead of creating separate keyframes for each scale value, let’s build one flexible set of <code>kf-zoom</code> keyframes:</p> <div> <pre><code>/* * Zoom - scale animation * Use --kf-zoom-from and --kf-zoom-to to control scale values * Default: zooms from 80% to 100% (0.8 to 1) * Usage: * animation: kf-zoom 0.2s ease-out; * --kf-zoom-from: 0.5; --kf-zoom-to: 1; // zoom from 50% to 100% * --kf-zoom-from: 1; --kf-zoom-to: 0; // zoom from 100% to 0% * --kf-zoom-from: 1; --kf-zoom-to: 1.1; // zoom from 100% to 110% */ @keyframes kf-zoom { from { scale: var(--kf-zoom-from, 0.8); } to { scale: var(--kf-zoom-to, 1); } } </code></pre> </div> <p>With one definition, we can achieve any zoom variation we need:</p> <pre><code>.toast { animation: kf-slide-in 0.2s, kf-zoom 0.4s ease-out; --kf-slide-from: 0 100%; /* slide from top */ /* Uses default zoom: scales from 80% to 100% */ } .modal { animation: kf-zoom 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); --kf-zoom-from: 0; /* dramatic zoom from 0% to 100% */ } .heading { animation: kf-fade-in 2s, kf-zoom 2s ease-in; --kf-zoom-from: 1.2; --kf-zoom-to: 0.8; /* gentle scale down */ } </code></pre> <p>The default of <code>0.8</code> (80%) works perfectly for most UI elements, like toast messages and cards, while still being easy to customize for special cases.</p> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/WbwZdQZ">Keyframes Tokens - Demo 4 [forked]</a> by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p> <p>You might have noticed something interesting in the recent examples: we've been <strong>combining animations</strong>. One of the key advantages of working with <code>@keyframes</code> tokens is that they’re designed to integrate seamlessly with each other. This smooth composition is intentional, not accidental.</p> <p>We’ll discuss animation composition in more detail later, including where they can become problematic, but most combinations are straightforward and easy to implement.</p> <p><strong>Note:</strong> <em>While writing this article, and maybe because of writing it, I found myself rethinking the whole idea of entrance animations. With all the recent advances in CSS, do we still need them at all? Luckily, Adam Argyle explored the same questions and expressed them brilliantly <a href="https://nerdy.dev/using-starting-style-and-transition-behavior-for-enter-and-exit-stage-effects">in his blog</a>. This doesn’t contradict what’s written here, but it does present an approach worth considering, especially if your projects rely heavily on entrance animations.</em></p> Continuous Animations <p>While entrance animations, like “fade”, “slide”, and “zoom” happen once and then stop, continuous animations loop indefinitely to draw attention or indicate ongoing activity. The two most common continuous animations I encounter are “spin” (for loading indicators) and “pulse” (for highlighting important elements).</p> <p>These animations present unique challenges when it comes to creating keyframes tokens. Unlike entrance animations that typically go from one state to another, continuous animations need to be highly customizable in their behavior patterns.</p> <h3>The Spin Doctor</h3> <p>Every project seems to use multiple spin animations. Some spin clockwise, others counterclockwise. Some do a single 360-degree rotation, others do multiple turns for a faster effect. Instead of creating separate keyframes for each variation, let’s build one flexible spin that handles all scenarios:</p> <div> <pre><code>/* * Spin - rotation animation * Use --kf-spin-from and --kf-spin-to to control rotation range * Use --kf-spin-turns to control rotation amount * Default: rotates from 0deg to 360deg (1 full rotation) * Usage: * animation: kf-spin 1s linear infinite; * --kf-spin-turns: 2; // 2 full rotations * --kf-spin-from: 0deg; --kf-spin-to: 180deg; // half rotation * --kf-spin-from: 0deg; --kf-spin-to: -360deg; // counterclockwise */ @keyframes kf-spin { from { rotate: var(--kf-spin-from, 0deg); } to { rotate: calc(var(--kf-spin-from, 0deg) + var(--kf-spin-to, 360deg) * var(--kf-spin-turns, 1)); } } </code></pre> </div> <p>Now we can create any spin variation we like:</p> <div> <pre><code>.loading-spinner { animation: kf-spin 1s linear infinite; /* Uses default: rotates from 0deg to 360deg */ } .fast-loader { animation: kf-spin 1.2s ease-in-out infinite alternate; --kf-spin-turns: 3; /* 3 full rotations for each direction per cycle */ } .steped-reverse { animation: kf-spin 1.5s steps(8) infinite; --kf-spin-to: -360deg; /* counterclockwise */ } .subtle-wiggle { animation: kf-spin 2s ease-in-out infinite alternate; --kf-spin-from: -16deg; --kf-spin-to: 32deg; /* wiggle 36 deg: between -18deg and +18deg */ } </code></pre> </div> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/MYyErbq">Keyframes Tokens - Demo 5 [forked]</a> by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p> <p>The beauty of this approach is that the same keyframes work for loading spinners, rotating icons, wiggle effects, and even complex multi-turn animations.</p> The Pulse Paradox <p>Pulse animations are trickier because they can “pulse” different properties. Some pulse the <code>scale</code>, others pulse the <code>opacity</code>, and some pulse <code>color</code> properties like brightness or saturation. Rather than creating separate keyframes for each property, we can create keyframes that work with any CSS property.</p> <p>Here's an example of a pulse keyframe with <code>scale</code> and <code>opacity</code> options:</p> <div> <pre><code>/* * Pulse - pulsing animation * Use --kf-pulse-scale-from and --kf-pulse-scale-to to control scale range * Use --kf-pulse-opacity-from and --kf-pulse-opacity-to to control opacity range * Default: no pulse (all values 1) * Usage: * animation: kf-pulse 2s ease-in-out infinite alternate; * --kf-pulse-scale-from: 0.95; --kf-pulse-scale-to: 1.05; // scale pulse * --kf-pulse-opacity-from: 0.7; --kf-pulse-opacity-to: 1; // opacity pulse */ @keyframes kf-pulse { from { scale: var(--kf-pulse-scale-from, 1); opacity: var(--kf-pulse-opacity-from, 1); } to { scale: var(--kf-pulse-scale-to, 1); opacity: var(--kf-pulse-opacity-to, 1); } } </code></pre> </div> <p>This creates a flexible pulse that can animate multiple properties:</p> <pre><code>.call-to-action { animation: kf-pulse 0.6s infinite alternate; --kf-pulse-opacity-from: 0.5; /* opacity pulse */ } .notification-dot { animation: kf-pulse 0.6s ease-in-out infinite alternate; --kf-pulse-scale-from: 0.9; --kf-pulse-scale-to: 1.1; /* scale pulse */ } .text-highlight { animation: kf-pulse 1.5s ease-out infinite; --kf-pulse-scale-from: 0.8; --kf-pulse-opacity-from: 0.2; /* scale and opacity pulse */ } </code></pre> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/xbVXpRo">Keyframes Tokens - Demo 6 [forked]</a> by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p> <p>This single <code>kf-pulse</code> keyframe can handle everything from subtle attention grabs to dramatic highlights, all while being easy to customize.</p> Advanced Easing <p>One of the great things about using keyframes tokens is how easy it is to expand our animation library and provide effects that most developers would not bother to write from scratch, like <em>elastic</em> or <em>bounce</em>.</p> <p>Here is an example of a simple “bounce” keyframes token that uses a <code>--kf-bounce-from</code> custom property to control the jump height.</p> <pre><code>/* * Bounce - bouncing entrance animation * Use --kf-bounce-from to control jump height * Default: jumps from 100vh (off screen) * Usage: * animation: kf-bounce 3s ease-in; * --kf-bounce-from: 200px; // jump from 200px height */ @keyframes kf-bounce { 0% { translate: 0 calc(var(--kf-bounce-from, 100vh) * -1); } 34% { translate: 0 calc(var(--kf-bounce-from, 100vh) * -0.4); } 55% { translate: 0 calc(var(--kf-bounce-from, 100vh) * -0.2); } 72% { translate: 0 calc(var(--kf-bounce-from, 100vh) * -0.1); } 85% { translate: 0 calc(var(--kf-bounce-from, 100vh) * -0.05); } 94% { translate: 0 calc(var(--kf-bounce-from, 100vh) * -0.025); } 99% { translate: 0 calc(var(--kf-bounce-from, 100vh) * -0.0125); } 22%, 45%, 64%, 79%, 90%, 97%, 100% { translate: 0 0; animation-timing-function: ease-out; } } </code></pre> <p>Animations like “elastic” are a bit trickier because of the calculations inside the keyframes. We need to define <code>--kf-elastic-from-X</code> and <code>--kf-elastic-from-Y</code> separately (both are optional), and together they let us create an elastic entrance from any point on the screen.</p> <div> <pre><code>/* * Elastic In - elastic entrance animation * Use --kf-elastic-from-X and --kf-elastic-from-Y to control start position * Default: enters from top center (0, -100vh) * Usage: * animation: kf-elastic-in 2s ease-in-out both; * --kf-elastic-from-X: -50px; * --kf-elastic-from-Y: -200px; // enter from (-50px, -200px) */ @keyframes kf-elastic-in { 0% { translate: calc(var(--kf-elastic-from-X, -50vw) * 1) calc(var(--kf-elastic-from-Y, 0px) * 1); } 16% { translate: calc(var(--kf-elastic-from-X, -50vw) * -0.3227) calc(var(--kf-elastic-from-Y, 0px) * -0.3227); } 28% { translate: calc(var(--kf-elastic-from-X, -50vw) * 0.1312) calc(var(--kf-elastic-from-Y, 0px) * 0.1312); } 44% { translate: calc(var(--kf-elastic-from-X, -50vw) * -0.0463) calc(var(--kf-elastic-from-Y, 0px) * -0.0463); } 59% { translate: calc(var(--kf-elastic-from-X, -50vw) * 0.0164) calc(var(--kf-elastic-from-Y, 0px) * 0.0164); } 73% { translate: calc(var(--kf-elastic-from-X, -50vw) * -0.0058) calc(var(--kf-elastic-from-Y, 0px) * -0.0058); } 88% { translate: calc(var(--kf-elastic-from-X, -50vw) * 0.0020) calc(var(--kf-elastic-from-Y, 0px) * 0.0020); } 100% { translate: 0 0; } } </code></pre> </div> <p>This approach makes it easy to reuse and customize advanced keyframes across our project, just by changing a single custom property.</p> <div> <pre><code>.bounce-and-zoom { animation: kf-bounce 3s ease-in, kf-zoom 3s linear; --kf-zoom-from: 0; } .bounce-and-slide { animation-composition: add; /* Both animations use <code>translate</code> */ animation: kf-bounce 3s ease-in, kf-slide-in 3s ease-out; --kf-slide-from: -200px; } .elastic-in { animation: kf-elastic-in 2s ease-in-out both; } </code></pre> </div> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/QwNqadQ">Keyframes Tokens - Demo 7 [forked]</a> by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p> <p>Up to this point, we’ve seen how we can consolidate keyframes in a smart and efficient way. Of course, you might want to tweak things to better fit your project’s needs, but we’ve covered examples of several common animations and everyday use cases. And with these keyframes tokens in place, we now have powerful building blocks for creating consistent, maintainable animations across the entire project. No more duplicated keyframes, no more global scope conflicts. Just a clean, convenient way to handle all our animation needs.</p> <p>But the real question is: <strong>How do we compose these building blocks together?</strong></p> Putting It All Together <p>We’ve seen that combining basic keyframes tokens is simple. We don’t need anything special but to define the first animation, define the second one, set the variables as needed, and that’s it.</p> <pre><code>/* Fade in + slide in */ .toast { animation: kf-fade-in 0.4s, kf-slide-in 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); --kf-slide-from: 0 40px; } /* Zoom in + fade in */ .modal { animation: kf-fade-in 0.3s, kf-zoom 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); --kf-zoom-from: 0.7; --kf-zoom-to: 1; } /* Slide in + pulse */ .notification { animation: kf-slide-in 0.5s, kf-pulse 1.2s ease-in-out infinite alternate; --kf-slide-from: -100px 0; --kf-pulse-scale-from: 0.95; --kf-pulse-scale-to: 1.05; } </code></pre> <p>These combinations work beautifully because each animation targets a different property: <code>opacity</code>, <code>transform</code> (<code>translate</code>/<code>scale</code>), etc. But sometimes there are conflicts, and we need to know why and how to deal with them.</p> <p>When two animations try to animate the same property — for example, both animating <code>scale</code> or both animating <code>opacity</code> — the result will not be what you expect. By default, only one of the animations is actually applied to that property, which is the last one in the <code>animation</code> list. This is a limitation of how CSS handles multiple animations on the same property.</p> <p>For example, this will not work as intended because only the <code>kf-pulse</code> animation will apply.</p> <pre><code>.bad-combo { animation: kf-zoom 0.5s forwards, kf-pulse 1.2s infinite alternate; --kf-zoom-from: 0.5; --kf-zoom-to: 1.2; --kf-pulse-scale-from: 0.8; --kf-pulse-scale-to: 1.1; } </code></pre> Animation Addition <p>The simplest and most direct way to handle multiple animations that affect the same property is to use the <code>animation-composition</code> property. In the last example above, the <code>kf-pulse</code> animation replaces the <code>kf-zoom</code> animation, so we will not see the initial zoom and will not get the expected <code>scale</code> <code>to</code> of <code>1.2</code>.</p> <p>By setting the <code>animation-composition</code> to <code>add</code>, we tell the browser to <em>combine</em> both animations. This gives us the result we want.</p> <pre><code>.component-two { animation-composition: add; } </code></pre> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/YPqrYZw">Keyframes Tokens - Demo 8 [forked]</a> by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p> <p>This approach works well for most cases where we want to combine effects on the same property. It is also useful when we need to combine animations with static property values.</p> <p>For example, if we have an element that uses the <code>translate</code> property to position it exactly where we want, and then we want to animate it in with the <code>kf-slide-in</code> keyframes, we get a nasty visible jump without <code>animation-composition</code>.</p> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/myPBpWr">Keyframes Tokens - Demo 9 [forked]</a> by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p> <p>With <code>animation-composition</code> set to <code>add</code>, the animation is smoothly combined with the existing transform, so the element stays in place and animates as expected.</p> Animation Stagger <p>Another way of handling multiple animations is to “stagger” them — that is, start the second animation slightly after the first one finishes. It is not a solution that works for every case, but it is useful when we have an entrance animation followed by a continuous animation.</p> <pre><code>/* fade in + opacity pulse */ .notification { animation: kf-fade-in 2s ease-out, kf-pulse 0.5s 2s ease-in-out infinite alternate; --kf-pulse-opacity-to: 0.5; } </code></pre> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/bNpoaqo">Keyframes Tokens - Demo 10 [forked]</a> by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p> Order Matters <p>A large part of the animations we work with use the <code>transform</code> property. In most cases, this is simply more convenient. It also has a performance advantage as transform animations can be GPU-accelerated. But if we use transforms, we need to accept that the order in which we perform our transformations matters. <em>A lot</em>.</p> <p>In our keyframes so far, we’ve used <em>individual transforms</em>. According to the specs, these are always applied in a fixed order: first, the element gets <code>translate</code>, then <code>rotate</code>, then <code>scale</code>. This makes sense and is what most of us expect.</p> <p>However, if we use the <code>transform</code> property, the order in which the functions are written is the order in which they are applied. In this case, if we move something 100 pixels on the X-axis and then rotate it by 45 degrees, it is <em>not</em> the same as first rotating it by 45 degrees and then moving it 100 pixels.</p> <pre><code>/* Pink square: First translate, then rotate */ .example-one { transform: translateX(100px) rotate(45deg); } /* Green square: First rotate, then translate */ .example-two { transform: rotate(45deg) translateX(100px); } </code></pre> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/zxqEpZb">Keyframes Tokens - Demo 11 [forked]</a> by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p> <p>But according to the <code>transform</code> order, all individual transforms — everything we’ve used for the keyframes tokens — happens before the transform functions. That means anything you set in the <code>transform</code> property will happen <em>after</em> the animations. But if you set, for example, <code>translate</code> together with the <code>kf-spin</code> keyframes, the <code>translate</code> will happen <em>before</em> the animation. Confused yet?!</p> <p>This leads to situations where static values can cause different results for the same animation, like in the following case:</p> <div> <pre><code>/* Common animation for both spinners */ .spinner { animation: kf-spin 1s linear infinite; } /* Pink spinner: translate before rotate (individual transform) */ .spinner-pink { translate: 100% 50%; } /* Green spinner: rotate then translate (function order) */ .spinner-green { transform: translate(100%, 50%); } </code></pre> </div> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/NPNaXjw">Keyframes Tokens - Demo 12 [forked]</a> by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p> <p>You can see that the first spinner (pink) gets a <code>translate</code> that happens before the <code>rotate</code> of <code>kf-spin</code>, so it first moves to its place and then spins. The second spinner (green) gets a <code>translate()</code> function that happens after the individual transform, so the element first spins, then moves relative to its current angle, and we get that wide orbit effect.</p> <p><strong>No, this is not a bug</strong>. It is just one of those things we need to know about CSS and keep in mind when working with multiple animations or multiple transforms. If needed, you can also create an additional set of <code>kf-spin-alt</code> keyframes that rotate elements using the <code>rotate()</code> function.</p> Reduced Motion <p>And while we’re talking about alternative keyframes, we cannot ignore the “no animation” option. One of the biggest advantages of using keyframes tokens is that <strong>accessibility</strong> can be baked in, and it is actually quite easy to do. By designing our keyframes with accessibility in mind, we can ensure that <a href="https://www.smashingmagazine.com/2021/10/respecting-users-motion-preferences/">users who prefer reduced motion get a smoother, less distracting experience</a>, without extra work or code duplication.</p> <p>The exact meaning of “Reduced Motion” can change a bit from one animation to another, and from project to project, but here are a few important points to keep in mind:</p> <h3>Muting Keyframes</h3> <p>While some animations can be softened or slowed down, there are others that should disappear completely when reduced motion is requested. Pulse animations are a good example. To make sure these animations do not run in reduced motion mode, we can simply wrap them in the appropriate media query.</p> <pre><code> @media (prefers-reduced-motion: no-preference) { @keyfrmaes kf-pulse { from { scale: var(--kf-pulse-scale-from, 1); opacity: var(--kf-pulse-opacity-from, 1); } to { scale: var(--kf-pulse-scale-to, 1); opacity: var(--kf-pulse-opacity-to, 1); } } } </code></pre> <p>This ensures that users who have set <code>prefers-reduced-motion</code> to <code>reduce</code> will not see the animation and will get an experience that matches their preference.</p> <h3>Instant In</h3> <p>There are some keyframes we cannot simply remove, such as entrance animations. The value must change, must animate; otherwise, the element won't have the correct values. But in reduced motion, this transition from the initial value should be instant.</p> <p>To achieve this, we’ll define an extra set of keyframes where the value jumps immediately to the end state. These become our default keyframes. Then, we’ll add the regular keyframes inside a media query for <code>prefers-reduced-motion</code> set to <code>no-preference</code>, just like in the previous example.</p> <pre><code>/* pop in instantly for reduced motion */ @keyframes kf-zoom { from, to { scale: var(--kf-zoom-to, 1); } } @media (prefers-reduced-motion: no-preference) { /* Original zoom keyframes */ @keyframes kf-zoom { from { scale: var(--kf-zoom-from, 0.8); } to { scale: var(--kf-zoom-to, 1); } } } </code></pre> <p>This way, users who prefer reduced motion will see the element appear instantly in its final state, while everyone else gets the animated transition.</p> <h3>The Soft Approach</h3> <p>There are cases where we do want to keep some movement, but much softer and calmer than the original animation. For example, we can replace a bounce entrance with a gentle fade-in.</p> <pre><code> @keyframes kf-bounce { /* Soft fade-in for reduced motion */ } @media (prefers-reduced-motion: no-preference) { @keyframes kf-bounce { /* Original bounce keyframes */ } } </code></pre> <p>Now, users with reduced motion enabled still get a sense of appearance, but without the intense movement of a bounce or elastic animation.</p> <p>With the building blocks in place, the next question is how to make them part of the actual workflow. Writing flexible keyframes is one thing, but making them reliable across a large project requires a few strategies that I had to learn the hard way.</p> Implementation Strategies & Best Practices <p>Once we have a solid library of keyframes tokens, the real challenge is how to bring them into everyday work.</p> <ul> <li>The temptation is to drop all keyframes in at once and declare the problem solved, but in practice I have found that <strong>the best results come from gradual adoption</strong>. Start with the most common animations, such as fade or slide. These are easy wins that show immediate value without requiring big rewrites.</li> <li><strong>Naming is another point that deserves attention.</strong> A consistent prefix or namespace makes it obvious which animations are tokens and which are local one-offs. It also prevents accidental collisions and helps new team members recognize the shared system at a glance.</li> <li><strong>Documentation is just as important as the code itself.</strong> Even a short comment above each keyframes token can save hours of guessing later. A developer should be able to open the tokens file, scan for the effect they need, and copy the usage pattern straight into their component.</li> <li><strong>Flexibility is what makes this approach worth the effort.</strong> By exposing sensible custom properties, we give teams room to adapt the animation without breaking the system. At the same time, try not to overcomplicate. Provide the knobs that matter and keep the rest opinionated.</li> <li>Finally, <strong>remember accessibility</strong>. Not every animation needs a reduced motion alternative, but many do. Baking in these adjustments early means we never have to retrofit them later, and it shows a level of care that our users will notice even if they never mention it.</li> </ul> <p>In my experience, treating keyframes tokens as part of our design tokens workflow is what makes them stick. Once they are in place, they stop feeling like special effects and become part of the design language, a natural extension of how the product moves and responds.</p> Wrapping Up <p>Animations can be one of the most joyful parts of building interfaces, but without structure, they can also become one of the biggest sources of frustration. By treating keyframes as tokens, you take something that is usually messy and hard to manage and turn it into a clear, predictable system.</p> <p>The real value is not just in saving a few lines of code. It is in the <strong>confidence</strong> that when you use a fade, slide, zoom, or spin, you know exactly how it will behave across the project. It is in the <strong>flexibility</strong> that comes from custom properties without the chaos of endless variations. And it is in the <strong>accessibility</strong> built into the foundation rather than added as an afterthought.</p> <p>I have seen these ideas work in different teams and different codebases, and the pattern is always the same.</p> <p>Once the tokens are in place, keyframes stop being a scattered collection of tricks and become part of the design language. They make the product feel more intentional, more consistent, and more alive.</p> <p>If you take one thing from this article, let it be this: <strong>animations deserve the same care and structure we already give to colors, typography, and spacing</strong>. A small investment in keyframes tokens pays off every time your interface moves.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/keyframes-tokens-standardizing-animation-across-projects/</span> hello@smashingmagazine.com (Amit Sheen) <![CDATA[From Chaos To Clarity: Simplifying Server Management With AI And Automation]]> https://smashingmagazine.com/2025/11/simplifying-server-management-ai-automation/ https://smashingmagazine.com/2025/11/simplifying-server-management-ai-automation/ Tue, 18 Nov 2025 10:00:00 GMT Server chaos doesn’t have to be the norm. AI-ready infrastructure and automation can bring clarity, performance, and focus back to your web work. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/simplifying-server-management-ai-automation/</span> <p>This article is a sponsored by <a href="https://www.cloudways.com/en/">Cloudways</a></p> <p>If you build or manage websites for a living, you know the feeling. Your day is a constant juggle; one moment you’re fine-tuning a design, the next you’re troubleshooting a slow server or a mysterious error. Daily management of a complex web of plugins, integrations, and performance tools often feels like you’re just reacting to problems—putting out fires instead of building something new.</p> <p>This reactive cycle is exhausting, and it pulls your focus away from meaningful work and into the technical weeds. A recent industry event, <a href="https://www.cloudways.com/en/bfcm-prepathon.php">Cloudways Prepathon 2025</a>, put a sharp focus on this very challenge. The discussions made it clear: the future of web work demands a better way. It requires an infrastructure that’s ready for AI; one that can actively help you turn this daily chaos into clarity.</p> <p><em>The stakes for performance are higher than ever.</em></p> <p>Suhaib Zaheer, SVP of Managed Hosting at DigitalOcean, and Ali Ahmed Khan, Sr. Director of Product Management, shared a telling statistic during their panel: <strong><a href="https://www.thinkwithgoogle.com/consumer-insights/consumer-trends/mobile-site-load-time-statistics/">53% of mobile visitors</a> will leave a site if it takes more than three seconds to load.</strong></p> <p><img src="https://files.smashing.media/articles/simplifying-server-management-ai-automation/1-google-data-mobile-page-speed.jpg" /></p> <p>Think about that for a second, and within half that time, your potential traffic is gone. This isn’t just about a slow website, but about lost trust, abandoned carts, and missed opportunities. Performance is no longer just a feature; it’s the foundation of user experience. And in today’s landscape, automation is the key to maintaining it consistently.</p> <p>So how do we stop reacting and start preventing?</p> The Old Way: A Constant State Of Alert <p>For too long, server management has worked like this: something breaks, you receive an alert (or worse, a client complaint), and you start digging. You log into your server, check logs, try to correlate different metrics, and eventually (hopefully) find the root cause. Then you manually apply a fix.</p> <p>This process is fragile and relies on your constant attention while eating up hours that could be spent on development, strategy, or client work. For freelancers and small teams, this time is your most valuable asset. Every minute spent manually diagnosing a disk space issue or a web stack failure is a minute not spent on growing your business.</p> <p>The problem isn't a lack of tools. It's that most tools just show you the data; they don't help you understand it or act on it. They add to the noise instead of providing clarity.</p> A New Approach: From Diagnosis To Automatic Resolution <p>This is where a shift towards intelligent automation changes the game. Tools like <a href="https://www.cloudways.com/en/cloudways-ai-copilot.php">Cloudways Copilot</a>, which became generally available earlier this year, are built specifically to simplify this workflow. The goal is straightforward: combine AI-driven diagnostics with automated fixes to predict and resolve performance issues before they affect your users.</p> <p>Here’s a practical look at how it works.</p> <p><img src="https://files.smashing.media/articles/simplifying-server-management-ai-automation/2-cloudways-copilot-workflow.png" /></p> <p>Imagine your site starts running slowly. In the past, you'd begin the tedious investigation.</p> <h3>1. The AI Insights</h3> <p>Instead of a generic "high CPU" alert, you get a detailed insight. It tells you what happened (e.g., "MySQL process is consuming excessive resources"), why it happened (e.g., "caused by a poorly optimized query from a recent plugin update"), and provides a step-by-step guide to fix it manually. This alone cuts diagnosis time from 30-40 minutes down to about five. You understand the problem, not just the diagnosis.</p> <h3>2. The SmartFix</h3> <p>This is where it moves from helpful to transformative. For common issues, you don’t just get a manual guide. You get a one-click <em>SmartFix</em> button. After reviewing the actions Copilot will take, you can let it automatically resolve the issue. It applies the necessary steps safely and without you needing to touch a command line. This is the clarity we’re talking about. The system doesn’t just tell you about the problem; it solves it for you.</p> <p>For developers managing multiple sites, this is a fundamental change. It means you can handle routine server issues at scale. A disk cleanup that would have required logging into ten different servers can now be handled with a few clicks. It frees your brain from repetitive troubleshooting and lets you focus on the work that actually requires your expertise.</p> Building An AI-Ready Foundation <p>The principles discussed at Prepathon go beyond any single tool. The theme was about building a resilient foundation. Meeky Hwang, CEO at Ndevr, introduced the <em>"3E Framework,"</em> which perfectly applies here. A strong platform must balance:</p> <ul> <li><strong>Audience Experience</strong><br />What your visitors see and feel—blazing speed and seamless operation.</li> <li><strong>Creator Experience</strong><br />The workflow for you and your team—managing content and marketing without technical friction.</li> <li><strong>Developer Experience</strong><br />The backend foundation—server management that is secure, stable, and efficient.</li> </ul> <p><img src="https://files.smashing.media/articles/simplifying-server-management-ai-automation/3-3e-framework.png" /></p> <p>AI-driven server management directly strengthens all three. A faster, more stable server improves the <em>Audience Experience</em>. Fewer emergencies and simpler workflows improve the <em>Creator</em> and <em>Developer Experience</em>. When these are aligned, you can scale with confidence.</p> This Isn’t About Replacing You <p>It’s important to be clear. This isn’t about replacing the developer but about augmenting your capabilities. As Vito Peleg, Co-founder & CEO at Atarim, noted during <a href="https://www.cloudways.com/en/video/event-replays/prepathon-2025/whats-truly-working-in-ai-marketing-and-tech-prepathon-2025">Prepathon</a>: </p> <blockquote>“We're all becoming prompt engineers in the modern world. Our job is no longer to do the task, but to orchestrate the fleet of AI agents that can do it at a scale we never could alone.”<br /><br />— Vito Peleg, Co-founder & CEO at Atarim</blockquote> <p>Think of <a href="https://www.cloudways.com/en/cloudways-ai-copilot.php">Cloudways Copilot</a> as an expert sysadmin on your team. It handles the routine, often tedious, work. It alerts you to what’s important and provides clear, actionable context. This gives you back the mental space and time to focus on architecture, innovation, and client strategy.</p> <blockquote>“The challenge isn’t managing servers anymore — it’s managing focus,”<br /><br /><a href="https://www.linkedin.com/in/zaheersuhaib/">Suhaib Zaheer</a> noted.<br /><br />“AI-driven infrastructure should help developers spend less time reacting to issues and more time creating better digital experiences.”</blockquote> A Practical Path Forward <p>For freelancers, WordPress experts, and small agency developers, this shift offers a tangible way to:</p> <ul> <li>Drastically reduce the hours spent manually troubleshooting infrastructure issues.</li> <li>Implement predictive monitoring that catches slowdowns and bottlenecks early.</li> <li>Manage your entire stack through clear, plain-English AI insights instead of raw data.</li> <li>Balance speed, security, and uptime without needing an enterprise-scale budget or team.</li> </ul> <p>The goal is to make powerful infrastructure simple, while also giving you back control and your time so you can focus on what you do best: creating exceptional web experiences.</p> <p><em>You can <a href="https://unified.cloudways.com/signup?coupon=BFCM5050">use promo code BFCM5050</a> to get 50% off for 3 months plus 50 Free Migrations using Cloudways. This offer is valid from November 18th to December 4th, 2025.</em></p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/simplifying-server-management-ai-automation/</span> hello@smashingmagazine.com (Mansoor Ahmed Khan) <![CDATA[CSS Gamepad API Visual Debugging With CSS Layers]]> https://smashingmagazine.com/2025/11/css-gamepad-api-visual-debugging-css-layers/ https://smashingmagazine.com/2025/11/css-gamepad-api-visual-debugging-css-layers/ Fri, 14 Nov 2025 13:00:00 GMT Debugging controllers can be a real pain. Here’s a deep dive into how CSS helps clean it up and how to build a reusable visual debugger for your own projects. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/css-gamepad-api-visual-debugging-css-layers/</span> <p>When you plug in a controller, you mash buttons, move the sticks, pull the triggers… and as a developer, you see none of it. The browser’s picking it up, sure, but unless you’re logging numbers in the console, it’s invisible. That’s the headache with the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API">Gamepad API</a>.</p> <p>It’s been around for years, and it’s actually pretty powerful. You can read buttons, sticks, triggers, the works. But most people don’t touch it. Why? Because there’s no feedback. No panel in developer tools. No clear way to know if the controller’s even doing what you think. It feels like flying blind.</p> <p>That bugged me enough to build a little tool: <strong>Gamepad Cascade Debugger</strong>. Instead of staring at console output, you get a live, interactive view of the controller. Press something and it reacts on the screen. And with <a href="https://www.smashingmagazine.com/2022/01/introduction-css-cascade-layers/">CSS Cascade Layers</a>, the styles stay organized, so it’s cleaner to debug.</p> <p>In this post, I’ll show you why debugging controllers is such a pain, how CSS helps clean it up, and how you can build a reusable visual debugger for your own projects.</p> <p><img src="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/1-xbox-playstation.jpeg" /></p> <p>Even if you are able to log them all, you’ll quickly end up with unreadable console spam. For example:</p> <pre><code>[0,0,1,0,0,0.5,0,...] [0,0,0,0,1,0,0,...] [0,0,1,0,0,0,0,...] </code></pre> <p>Can you tell what button was pressed? Maybe, but only after straining your eyes and missing a few inputs. So, no, debugging doesn’t come easily when it comes to reading inputs.</p> <h3>Problem 3: Lack Of Structure</h3> <p>Even if you throw together a quick visualizer, styles can quickly get messy. Default, active, and debug states can overlap, and without a clear structure, your CSS becomes brittle and hard to extend.</p> <p><a href="https://www.smashingmagazine.com/2022/01/introduction-css-cascade-layers/">CSS Cascade Layers</a> can help. They group styles into “layers” that are ordered by priority, so you stop fighting specificity and guessing, <em>“Why isn’t my debug style showing?”</em> Instead, you maintain separate concerns:</p> <ul> <li><strong>Base</strong>: The controller’s standard, initial appearance.</li> <li><strong>Active</strong>: Highlights for pressed buttons and moved sticks.</li> <li><strong>Debug</strong>: Overlays for developers (e.g., numeric readouts, guides, and so on).</li> </ul> <p>If we were to define layers in CSS according to this, we’d have:</p> <pre><code>/* lowest to highest priority */ @layer base, active, debug; @layer base { /* ... */ } @layer active { /* ... */ } @layer debug { /* ... */ } </code></pre> <p>Because each layer stacks predictably, you always know which rules win. That predictability makes debugging not just easier, but actually manageable.</p> <p>We’ve covered the problem (invisible, messy input) and the approach (a visual debugger built with Cascade Layers). Now we’ll walk through the step-by-step process to build the debugger.</p> The Debugger Concept <p>The easiest way to make hidden input visible is to just draw it on the screen. That’s what this debugger does. Buttons, triggers, and joysticks all get a visual.</p> <ul> <li><strong>Press <code>A</code></strong>: A circle lights up.</li> <li><strong>Nudge the stick</strong>: The circle slides around.</li> <li><strong>Pull a trigger halfway</strong>: A bar fills halfway.</li> </ul> <p>Now you’re not staring at 0s and 1s, but actually watching the controller react live.</p> <p>Of course, once you start piling on states like default, pressed, debug info, maybe even a recording mode, the CSS starts getting larger and more complex. That’s where cascade layers come in handy. Here’s a stripped-down example:</p> <pre><code>@layer base { .button { background: #222; border-radius: 50%; width: 40px; height: 40px; } } @layer active { .button.pressed { background: #0f0; /* bright green */ } } @layer debug { .button::after { content: attr(data-value); font-size: 12px; color: #fff; } } </code></pre> <p>The layer order matters: <code>base</code> → <code>active</code> → <code>debug</code>.</p> <ul> <li><code>base</code> draws the controller.</li> <li><code>active</code> handles pressed states.</li> <li><code>debug</code> throws on overlays.</li> </ul> <p>Breaking it up like this means you’re not fighting weird specificity wars. Each layer has its place, and you always know what wins.</p> Building It Out <p>Let’s get something on screen first. It doesn’t need to look good — just needs to exist so we have something to work with.</p> <div> <pre><code><h1>Gamepad Cascade Debugger</h1> <!-- Main controller container --> <div id="controller"> <!-- Action buttons --> <div id="btn-a" class="button">A</div> <div id="btn-b" class="button">B</div> <div id="btn-x" class="button">X</div> <!-- Pause/menu button (represented as two bars) --> <div> <div id="pause1" class="pause"></div> <div id="pause2" class="pause"></div> </div> </div> <!-- Toggle button to start/stop the debugger --> <button id="toggle">Toggle Debug</button> <!-- Status display for showing which buttons are pressed --> <div id="status">Debugger inactive</div> <script src="script.js"></script> </code></pre> </div> <p>That’s literally just boxes. Not exciting yet, but it gives us handles to grab later with CSS and JavaScript.</p> <p>Okay, I’m using cascade layers here because it keeps stuff organized once you add more states. Here’s a rough pass:</p> <div> <pre><code>/* =================================== CASCADE LAYERS SETUP Order matters: base → active → debug =================================== */ /* Define layer order upfront */ @layer base, active, debug; /* Layer 1: Base styles - default appearance */ @layer base { .button { background: #333; border-radius: 50%; width: 70px; height: 70px; display: flex; justify-content: center; align-items: center; } .pause { width: 20px; height: 70px; background: #333; display: inline-block; } } /* Layer 2: Active states - handles pressed buttons */ @layer active { .button.active { background: #0f0; /* Bright green when pressed */ transform: scale(1.1); /* Slightly enlarges the button */ } .pause.active { background: #0f0; transform: scaleY(1.1); /* Stretches vertically when pressed */ } } /* Layer 3: Debug overlays - developer info */ @layer debug { .button::after { content: attr(data-value); /* Shows the numeric value */ font-size: 12px; color: #fff; } } </code></pre> </div> <p>The beauty of this approach is that each layer has a clear purpose. The <code>base</code> layer can never override <code>active,</code> and <code>active</code> can never override <code>debug</code>, regardless of specificity. This eliminates the CSS specificity wars that usually plague debugging tools.</p> <p>Now it looks like some clusters are sitting on a dark background. Honestly, not too bad.</p> <p><img src="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/2-debugger-initial-state.png" /></p> <h3>Adding the JavaScript</h3> <p>JavaScript time. This is where the controller actually does something. We’ll build this step by step.</p> <h4>Step 1: Set Up State Management</h4> <p>First, we need variables to track the debugger’s state:</p> <pre><code>// =================================== // STATE MANAGEMENT // =================================== let running = false; // Tracks whether the debugger is active let rafId; // Stores the requestAnimationFrame ID for cancellation </code></pre> <p>These variables control the animation loop that continuously reads gamepad input.</p> <h4>Step 2: Grab DOM References</h4> <p>Next, we get references to all the HTML elements we’ll be updating:</p> <pre><code>// =================================== // DOM ELEMENT REFERENCES // =================================== const btnA = document.getElementById("btn-a"); const btnB = document.getElementById("btn-b"); const btnX = document.getElementById("btn-x"); const pause1 = document.getElementById("pause1"); const pause2 = document.getElementById("pause2"); const status = document.getElementById("status"); </code></pre> <p>Storing these references up front is more efficient than querying the DOM repeatedly.</p> <h4>Step 3: Add Keyboard Fallback</h4> <p>For testing without a physical controller, we’ll map keyboard keys to buttons:</p> <pre><code>// =================================== // KEYBOARD FALLBACK (for testing without a controller) // =================================== const keyMap = { "a": btnA, "b": btnB, "x": btnX, "p": [pause1, pause2] // 'p' key controls both pause bars }; </code></pre> <p>This lets us test the UI by pressing keys on a keyboard.</p> <h4>Step 4: Create The Main Update Loop</h4> <p>Here’s where the magic happens. This function runs continuously and reads gamepad state:</p> <pre><code>// =================================== // MAIN GAMEPAD UPDATE LOOP // =================================== function updateGamepad() { // Get all connected gamepads const gamepads = navigator.getGamepads(); if (!gamepads) return; // Use the first connected gamepad const gp = gamepads[0]; if (gp) { // Update button states by toggling the "active" class btnA.classList.toggle("active", gp.buttons[0].pressed); btnB.classList.toggle("active", gp.buttons[1].pressed); btnX.classList.toggle("active", gp.buttons[2].pressed); // Handle pause button (button index 9 on most controllers) const pausePressed = gp.buttons[9].pressed; pause1.classList.toggle("active", pausePressed); pause2.classList.toggle("active", pausePressed); // Build a list of currently pressed buttons for status display let pressed = []; gp.buttons.forEach((btn, i) => { if (btn.pressed) pressed.push("Button " + i); }); // Update status text if any buttons are pressed if (pressed.length > 0) { status.textContent = "Pressed: " + pressed.join(", "); } } // Continue the loop if debugger is running if (running) { rafId = requestAnimationFrame(updateGamepad); } } </code></pre> <p>The <code>classList.toggle()</code> method adds or removes the <code>active</code> class based on whether the button is pressed, which triggers our CSS layer styles.</p> <h4>Step 5: Handle Keyboard Events</h4> <p>These event listeners make the keyboard fallback work:</p> <pre><code>// =================================== // KEYBOARD EVENT HANDLERS // =================================== document.addEventListener("keydown", (e) => { if (keyMap[e.key]) { // Handle single or multiple elements if (Array.isArray(keyMap[e.key])) { keyMap[e.key].forEach(el => el.classList.add("active")); } else { keyMap[e.key].classList.add("active"); } status.textContent = "Key pressed: " + e.key.toUpperCase(); } }); document.addEventListener("keyup", (e) => { if (keyMap[e.key]) { // Remove active state when key is released if (Array.isArray(keyMap[e.key])) { keyMap[e.key].forEach(el => el.classList.remove("active")); } else { keyMap[e.key].classList.remove("active"); } status.textContent = "Key released: " + e.key.toUpperCase(); } }); </code></pre> <h4>Step 6: Add Start/Stop Control</h4> <p>Finally, we need a way to toggle the debugger on and off:</p> <pre><code>// =================================== // TOGGLE DEBUGGER ON/OFF // =================================== document.getElementById("toggle").addEventListener("click", () => { running = !running; // Flip the running state if (running) { status.textContent = "Debugger running..."; updateGamepad(); // Start the update loop } else { status.textContent = "Debugger inactive"; cancelAnimationFrame(rafId); // Stop the loop } }); </code></pre> <p>So yeah, press a button and it glows. Push the stick and it moves. That’s it.</p> <p>One more thing: raw values. Sometimes you just want to see numbers, not lights.</p> <p><img src="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/3-gamepad-cascade-debugger.jpeg" /></p> <p>At this stage, you should see:</p> <ul> <li>A simple on-screen controller,</li> <li>Buttons that react as you interact with them, and</li> <li>An optional debug readout showing pressed button indices.</li> </ul> <p>To make this less abstract, here’s a quick demo of the on-screen controller reacting in real time:</p> <p><img src="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/4-recording-panel.jpeg" /></p> <p>Now, pressing <strong>Start Recording</strong> logs everything until you hit <strong>Stop Recording</strong>.</p> <h3>2. Exporting Data to CSV/JSON</h3> <p>Once we have a log, we’ll want to save it.</p> <div> <pre><code><div class="controls"> <button id="export-json" class="btn">Export JSON</button> <button id="export-csv" class="btn">Export CSV</button> </div> </code></pre> </div> <h4>Step 1: Create The Download Helper</h4> <p>First, we need a helper function that handles file downloads in the browser:</p> <pre><code>// =================================== // FILE DOWNLOAD HELPER // =================================== function downloadFile(filename, content, type = "text/plain") { // Create a blob from the content const blob = new Blob([content], { type }); const url = URL.createObjectURL(blob); // Create a temporary download link and click it const a = document.createElement("a"); a.href = url; a.download = filename; a.click(); // Clean up the object URL after download setTimeout(() => URL.revokeObjectURL(url), 100); } </code></pre> <p>This function works by creating a Blob (binary large object) from your data, generating a temporary URL for it, and programmatically clicking a download link. The cleanup ensures we don’t leak memory.</p> <h4>Step 2: Handle JSON Export</h4> <p>JSON is perfect for preserving the complete data structure:</p> <div> <pre><code>// =================================== // EXPORT AS JSON // =================================== document.getElementById("export-json").addEventListener("click", () => { // Check if there's anything to export if (!frames.length) { console.warn("No recording available to export."); return; } // Create a payload with metadata and frames const payload = { createdAt: new Date().toISOString(), frames }; // Download as formatted JSON downloadFile( "gamepad-log.json", JSON.stringify(payload, null, 2), "application/json" ); }); </code></pre> </div> <p>The JSON format keeps everything structured and easily parseable, making it ideal for loading back into dev tools or sharing with teammates.</p> <h4>Step 3: Handle CSV Export</h4> <p>For CSV exports, we need to flatten the hierarchical data into rows and columns:</p> <div> <pre><code>// =================================== // EXPORT AS CSV // =================================== document.getElementById("export-csv").addEventListener("click", () => { // Check if there's anything to export if (!frames.length) { console.warn("No recording available to export."); return; } // Build CSV header row (columns for timestamp, all buttons, all axes) const headerButtons = frames[0].buttons.map((_, i) => <code>btn${i}</code>); const headerAxes = frames[0].axes.map((_, i) => <code>axis${i}</code>); const header = ["t", ...headerButtons, ...headerAxes].join(",") + "\n"; // Build CSV data rows const rows = frames.map(f => { const btnVals = f.buttons.map(b => b.value); return [f.t, ...btnVals, ...f.axes].join(","); }).join("\n"); // Download as CSV downloadFile("gamepad-log.csv", header + rows, "text/csv"); }); </code></pre> </div> <p>CSV is brilliant for data analysis because it opens directly in Excel or Google Sheets, letting you create charts, filter data, or spot patterns visually.</p> <p>Now that the export buttons are in, you’ll see two new options on the panel: <strong>Export JSON</strong> and <strong>Export CSV</strong>. JSON is nice if you want to throw the raw log back into your dev tools or poke around the structure. CSV, on the other hand, opens straight into Excel or Google Sheets so you can chart, filter, or compare inputs. The following figure shows what the panel looks like with those extra controls.</p> <p><img src="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/5-export-panel.jpeg" /></p> <h3>3. Snapshot System</h3> <p>Sometimes you don’t need a full recording, just a quick “screenshot” of input states. That’s where a <strong>Take Snapshot</strong> button helps.</p> <pre><code><div class="controls"> <button id="snapshot" class="btn">Take Snapshot</button> </div> </code></pre> <p>And the JavaScript:</p> <div> <pre><code>// =================================== // TAKE SNAPSHOT // =================================== document.getElementById("snapshot").addEventListener("click", () => { // Get all connected gamepads const pads = navigator.getGamepads(); const activePads = []; // Loop through and capture the state of each connected gamepad for (const gp of pads) { if (!gp) continue; // Skip empty slots activePads.push({ id: gp.id, // Controller name/model timestamp: performance.now(), buttons: gp.buttons.map(b => ({ pressed: b.pressed, value: b.value })), axes: [...gp.axes] }); } // Check if any gamepads were found if (!activePads.length) { console.warn("No gamepads connected for snapshot."); alert("No controller detected!"); return; } // Log and notify user console.log("Snapshot:", activePads); alert(<code>Snapshot taken! Captured ${activePads.length} controller(s).</code>); }); </code></pre> </div> <p>Snapshots freeze the exact state of your controller at one moment in time.</p> <h3>4. Ghost Input Replay</h3> <p>Now for the fun one: ghost input replay. This takes a log and plays it back visually as if a phantom player was using the controller.</p> <div> <pre><code><div class="controls"> <button id="replay" class="btn">Replay Last Recording</button> </div> </code></pre> </div> <p>JavaScript for replay:</p> <pre><code>// =================================== // GHOST REPLAY // =================================== document.getElementById("replay").addEventListener("click", () => { // Ensure we have a recording to replay if (!frames.length) { alert("No recording to replay!"); return; } console.log("Starting ghost replay..."); // Track timing for synced playback let startTime = performance.now(); let frameIndex = 0; // Replay animation loop function step() { const now = performance.now(); const elapsed = now - startTime; // Process all frames that should have occurred by now while (frameIndex < frames.length && frames[frameIndex].t <= elapsed) { const frame = frames[frameIndex]; // Update UI with the recorded button states btnA.classList.toggle("active", frame.buttons[0].pressed); btnB.classList.toggle("active", frame.buttons[1].pressed); btnX.classList.toggle("active", frame.buttons[2].pressed); // Update status display let pressed = []; frame.buttons.forEach((btn, i) => { if (btn.pressed) pressed.push("Button " + i); }); if (pressed.length > 0) { status.textContent = "Ghost: " + pressed.join(", "); } frameIndex++; } // Continue loop if there are more frames if (frameIndex < frames.length) { requestAnimationFrame(step); } else { console.log("Replay finished."); status.textContent = "Replay complete"; } } // Start the replay step(); }); </code></pre> <p>To make debugging a bit more hands-on, I added a ghost replay. Once you’ve recorded a session, you can hit replay and watch the UI act it out, almost like a phantom player is running the pad. A new <strong>Replay Ghost</strong> button shows up in the panel for this.</p> <p><img src="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/6-ghost-replay-mode.jpeg" /></p> <p>Hit <strong>Record</strong>, mess around with the controller a bit, stop, then replay. The UI just echoes everything you did, like a ghost following your inputs.</p> <p>Why bother with these extras?</p> <ul> <li><strong>Recording/export</strong> makes it easy for testers to show exactly what happened.</li> <li><strong>Snapshots</strong> freeze a moment in time, super useful when you’re chasing odd bugs.</li> <li><strong>Ghost replay</strong> is great for tutorials, accessibility checks, or just comparing control setups side by side.</li> </ul> <p>At this point, it’s not just a neat demo anymore, but something you could actually put to work.</p> Real-World Use Cases <p>Now we’ve got this debugger that can do a lot. It shows live input, records logs, exports them, and even replays stuff. But the real question is: who actually cares? Who’s this useful for?</p> <h3>Game Developers</h3> <p>Controllers are part of the job, but debugging them? Usually a pain. Imagine you’re testing a fighting game combo, like <code>↓ →</code> + <code>punch</code>. Instead of praying, you pressed it the same way twice, you record it once, and replay it. Done. Or you swap <code>JSON</code> logs with a teammate to check if your multiplayer code reacts the same on their machine. That’s huge.</p> <h3>Accessibility Practitioners</h3> <p>This one’s close to my heart. Not everyone plays with a “standard” controller. Adaptive controllers throw out weird signals sometimes. With this tool, you can see exactly what’s happening. Teachers, researchers, whoever. They can grab logs, compare them, or replay inputs side-by-side. Suddenly, invisible stuff becomes obvious.</p> <h3>Quality Assurance Testing</h3> <p>Testers usually write notes like “I mashed buttons here and it broke.” Not very helpful. Now? They can capture the exact presses, export the log, and send it off. No guessing.</p> <h3>Educators</h3> <p>If you’re making tutorials or YouTube vids, ghost replay is gold. You can literally say, “Here’s what I did with the controller,” while the UI shows it happening. Makes explanations way clearer.</p> <h3>Beyond Games</h3> <p>And yeah, this isn’t just about games. People have used controllers for robots, art projects, and accessibility interfaces. Same issue every time: what is the browser actually seeing? With this, you don’t have to guess.</p> Conclusion <p>Debugging a controller input has always felt like flying blind. Unlike the DOM or CSS, there’s no built-in inspector for gamepads; it’s just raw numbers in the console, easily lost in the noise.</p> <p>With a few hundred lines of HTML, CSS, and JavaScript, we built something different:</p> <ul> <li><strong>A visual debugger</strong> that makes invisible inputs visible.</li> <li><strong>A layered CSS system</strong> that keeps the UI clean and debuggable.</li> <li><strong>A set of enhancements</strong> (recording, exporting, snapshots, ghost replay) that elevate it from demo to developer tool.</li> </ul> <p>This project shows how far you can go by mixing the Web Platform’s power with a little creativity in CSS Cascade Layers.</p> <p>The tool I just explained in its entirety is open-source. You can <a href="https://github.com/BboyGT/gamepad-cascade-debugger/tree/main/gamepad-cascade-debugger-final">clone the GitHub repo</a> and try it for yourself.</p> <p>But more importantly, you can make it your own. Add your own layers. Build your own replay logic. Integrate it with your game prototype. Or even use it in ways I haven’t imagined. For teaching, accessibility, or data analysis.</p> <p>At the end of the day, this isn’t just about debugging gamepads. It’s about <strong>shining a light on hidden inputs</strong>, and giving developers the confidence to work with hardware that the web still doesn’t fully embrace.</p> <p>So, plug in your controller, open up your editor, and start experimenting. You might be surprised at what your browser and your CSS can truly accomplish.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/css-gamepad-api-visual-debugging-css-layers/</span> hello@smashingmagazine.com (Godstime Aburu) <![CDATA[Older Tech In The Browser Stack]]> https://smashingmagazine.com/2025/11/older-tech-browser-stack/ https://smashingmagazine.com/2025/11/older-tech-browser-stack/ Thu, 13 Nov 2025 08:00:00 GMT There are many existing web features and technologies in the wild that you may never touch directly in your day-to-day work. Perhaps you’re fairly new to web development and are simply unaware of them because you’re steeped in the abstraction of a specific framework that doesn’t require you to know it deeply, or even at all. Bryan Rasmussen looks specifically at XPath and demonstrates how it can be used alongside CSS to query elements. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/older-tech-browser-stack/</span> <p>I’ve been in front-end development long enough to see a trend over the years: younger developers working with a new paradigm of programming without understanding the historical context of it. </p> <p>It is, of course, perfectly understandable to <em>not</em> know something. The web is a very big place with a diverse set of skills and specialties, and we don’t always know what we don’t know. Learning in this field is an ongoing journey rather than something that happens once and ends.</p> <p>Case in point: Someone on my team asked if it was possible to tell if users navigate away from a particular tab in the UI. I pointed out JavaScript’s <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event"><code>beforeunload</code> event</a>. But those who have tackled this before know this is possible because they have been hit with alerts about unsaved data on other sites, for which <code>beforeunload</code> is a typical use case. I also pointed out the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/pagehide_event"><code>pageHide</code></a> and <a href="https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilitychange_event"><code>visibilityChange</code></a> events to my colleague for good measure.</p> <p>How did I know about that? Because it came up in another project, not because I studied up on it when initially learning JavaScript.</p> <p>The fact is that modern front-end frameworks are standing on the shoulders of the technology giants that preceded them. They abstract development practices, often for a better developer experience that reduces, or even eliminates, the need to know or touch what have traditionally been essential front-end concepts everyone probably ought to know.</p> <p>Consider the <a href="https://css-tricks.com/an-introduction-and-guide-to-the-css-object-model-cssom/">CSS Object Model (CSSOM)</a>. You might expect that anyone working in CSS and JavaScript has a bunch of hands-on CSSOM experience, but that’s not always going to be the case.</p> <p>There was a React project for an e-commerce site I worked on where we needed to load a stylesheet for the currently selected payment provider. The problem was that the stylesheet was loading on every page when it was only really needed on a specific page. The developer tasked with making this happen hadn’t ever loaded a stylesheet dynamically. Again, this is totally understandable when React abstracts away the traditional approach you might have reached for.</p> <p>The CSSOM is likely not something you need in your everyday work. But it is likely you will need to interact with it at some point, even in a one-off instance.</p> <p>These experiences inspired me to write this article. There are many existing web features and technologies in the wild that you may never touch directly in your day-to-day work. Perhaps you’re fairly new to web development and are simply unaware of them because you’re steeped in the abstraction of a specific framework that doesn’t require you to know it deeply, or even at all.</p> <p>I’m speaking specifically about <a href="https://developer.mozilla.org/en-US/docs/Web/XML/Guides/XML_introduction">XML</a>, which many of us know is an ancient language not totally dissimilar from HTML.</p> <p>I’m bringing this up because of recent WHATWG discussions <a href="https://github.com/whatwg/html/issues/11523">suggesting</a> that a significant chunk of the XML stack known as <a href="https://developer.mozilla.org/en-US/docs/Web/XML/XSLT">XSLT</a> programming should be removed from browsers. This is exactly the sort of older, existing technology we’ve had for years that could be used for something as practical as the CSSOM situation my team was in.</p> <p>Have you worked with XSLT before? Let’s see if we lean heavily into this older technology and leverage its features outside the context of XML to tackle real-world problems today.</p> XPath: The Central API <p>The most important XML technology that is perhaps the most useful outside of a straight XML perspective is <strong>XPath</strong>, a query language that allows you to find any node or attribute in a markup tree with one root element. I have a personal affection for XSLT, but that also relies on XPath, and personal affection must be put aside in ranking importance.</p> <p>The argument for removing XSLT does not make any mention of XPath, so I suppose it is still allowed. That’s good because XPath is the central and most important API in this suite of technologies, especially when trying to find something to use outside normal XML usage. It is important because, while CSS selectors can be used to find most of the elements in your page, they cannot find them all. Furthermore, CSS selectors cannot be used to find an element based on its current position in the DOM.</p> <p>XPath can. </p> <p>Now, some of you reading this might know XPath, and some might not. XPath is a pretty big area of technology, and I can’t really teach all the basics and also show you cool things to do with it in a single article like this. I actually tried writing that article, but the average Smashing Magazine publication doesn’t go over 5,000 words. I was already at more than 2,000 words while only halfway through the basics.</p> <p>So, I’m going to start doing cool stuff with XPath and give you some links that you can use for the basics if you find this stuff interesting.</p> Combining XPath & CSS <p>XPath can do lots of things that CSS selectors can’t when querying elements. But CSS selectors can also do a few things that XPath can’t, namely, query elements by class name.</p> <table> <thead> <tr> <th>CSS</th> <th>XPath</th> </tr> </thead> <tbody> <tr> <td><code>.myClass</code></td> <td><code>/*[contains(@class, "myClass")]</code></td> </tr> </tbody> </table> <p>In this example, CSS queries elements that contain a <code>.myClass</code> classname. Meanwhile, the XPath example queries elements that contain an attribute class with the string “<code>myClass</code>”. In other words, it selects elements with <code>myClass</code> in any attribute, including elements with the <code>.myClass</code> classname — as well as elements with “<code>myClass</code>” in the string, such as <code>.myClass2</code>. XPath is broader in that sense.</p> <p>So, no. I’m not suggesting that we ought to toss out CSS and start selecting all elements via XPath. That’s not the point.</p> <p>The point is that XPath can do things that CSS cannot and could still be very useful, even though it is an older technology in the browser stack and may not seem obvious at first glance.</p> <p>Let’s use the two technologies together not only because we can, but because we’ll learn something about XPath in the process, making it another tool in your stack — one you might not have known has been there all along!</p> <p>The problem is that JavaScript’s <code>document.evaluate</code> method and the various query selector methods we use with the CSS APIs for JavaScript are incompatible.</p> <p>I have made a compatible querying API to get us started, though admittedly, I have not put a lot of thought into it since it’s a departure from what we’re doing here. Here’s a fairly simple working example of a reusable query constructor:</p> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/jEqEyEx">queryXPath [forked]</a> by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p> <p>I’ve added two methods on the document object: <code>queryCSSSelectors</code> (which is essentially <code>querySelectorAll</code>) and <code>queryXPaths</code>. Both of these return a <code>queryResults</code> object:</p> <div> <pre><code>{ queryType: nodes | string | number | boolean, results: any[] // html elements, xml elements, strings, numbers, booleans, queryCSSSelectors: (query: string, amend: boolean) => queryResults, queryXpaths: (query: string, amend: boolean) => queryResults } </code></pre> </div> <p>The <code>queryCSSSelectors</code> and <code>queryXpaths</code> functions run the query you give them over the elements in the results array, as long as the results array is of type <code>nodes</code>, of course. Otherwise, it will return a <code>queryResult</code> with an empty array and a type of <code>nodes</code>. If the <code>amend</code> property is set to <code>true</code>, the functions will change their own <code>queryResults</code>.</p> <p><strong>Under no circumstances should this be used in a production environment.</strong> I am doing it this way purely to demonstrate the various effects of using the two query APIs together. </p> Example Queries <p>I want to show a few examples of different XPath queries that demonstrate some of the powerful things they can do and how they can be used in place of other approaches.</p> <p>The first example is <code>//li/text()</code>. This queries all <code>li</code> elements and returns their text nodes. So, if we were to query the following HTML:</p> <pre><code><ul> <li>one</li> <li>two</li> <li>three</li> </ul> </code></pre> <p>…this is what is returned:</p> <div> <pre><code>{"queryType":"xpathEvaluate","results":["one","two","three"],"resultType":"string"} </code></pre> </div> <p>In other words, we get the following array: <code>["one","two","three"]</code>.</p> <p>Normally, you would query for the <code>li</code> elements to get that, turn the result of that query into an array, map the array, and return the text node of each element. But we can do that more concisely with XPath:</p> <pre><code>document.queryXPaths("//li/text()").results. </code></pre> <p>Notice that the way to get a text node is to use <code>text()</code>, which looks like a function signature — and it is. It returns the text node of an element. In our example, there are three <code>li</code> elements in the markup, each containing text (<code>"one"</code>, <code>"two"</code>, and <code>"three"</code>).</p> <p>Let’s look at one more example of a <code>text()</code> query. Assume this is our markup:</p> <pre><code><pa href="/login.html">Sign In</a> </code></pre> <p>Let’s write a query that returns the <code>href</code> attribute value:</p> <pre><code>document.queryXPaths("//a[text() = 'Sign In']/@href").results. </code></pre> <p>This is an XPath query on the current document, just like the last example, but this time we return the <code>href</code> attribute of a link (<code>a</code> element) that contains the text “Sign In”. The actual returned result is <code>["/login.html"]</code>.</p> XPath Functions Overview <p>There are a number of XPath functions, and you’re probably unfamiliar with them. There are several, I think, that are worth knowing about, including the following:</p> <ul> <li><strong><code>starts-with</code></strong><br />If a text starts with a particular other text example, <code>starts-with(@href, 'http:')</code> returns <code>true</code> if an <code>href</code> attribute starts with <code>http:</code>.</li> <li><strong><code>contains</code></strong><br />If a text contains a particular other text example, <code>contains(text(), "Smashing Magazine")</code> returns <code>true</code> if a text node contains the words “Smashing Magazine” in it anywhere. </li> <li><strong><code>count</code></strong><br />Returns a count of how many matches there are to a query. For example, <code>count(//*[starts-with(@href, 'http:'])</code> returns a count of how many links in the context node have elements with an <code>href</code> attribute that contains the text beginning with the <code>http:</code>.</li> <li><strong><code>substring</code></strong><br />Works like JavaScript <code>substring</code>, except you pass the string as an argument. For example, <code>substring("my text", 2, 4)</code> returns <code>"y t"</code>.</li> <li><strong><code>substring-before</code></strong><br />Returns the part of a string before another string. For example, <code>substing-before("my text", " ")</code> returns <code>"my"</code>. Similarly, <code>substring-before("hi","bye")</code> returns an empty string.</li> <li><strong><code>substring-after</code></strong><br />Returns the part of a string after another string. For example, <code>substing-after("my text", " ")</code> returns <code>"text"</code>. Similarly, <code>substring-after("hi","bye")</code>returns an empty string.</li> <li><strong><code>normalize-space</code></strong><br />Returns the argument string with whitespace normalized by stripping leading and trailing whitespace and replacing sequences of whitespace characters by a single space. </li> <li><strong><code>not</code></strong><br />Returns a boolean <code>true</code> if the argument is false, otherwise <code>false</code>. </li> <li><strong><code>true</code></strong><br />Returns boolean <code>true</code>.</li> <li><strong><code>false</code></strong><br />Returns boolean <code>false</code>.</li> <li><strong><code>concat</code></strong><br />The same thing as JavaScript <code>concat</code>, except you do not run it as a method on a string. Instead, you put in all the strings you want to concatenate. </li> <li><strong><code>string-length</code></strong><br />This is not the same as JavaScript <code>string-length</code>, but rather returns the length of the string it is given as an argument.</li> <li><strong><code>translate</code></strong><br />This takes a string and changes the second argument to the third argument. For example, <code>translate("abcdef", "abc", "XYZ")</code> outputs <code>XYZdef</code>.</li> </ul> <p>Aside from these particular XPath functions, there are a number of other functions that work just the same as their JavaScript counterparts — or counterparts in basically any programming language — that you would probably also find useful, such as <code>floor</code>, <code>ceiling</code>, <code>round</code>, <code>sum</code>, and so on.</p> <p>The following demo illustrates each of these functions:</p> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/emZmgzX">XPath Numerical functions [forked]</a> by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p> <p>Note that, like most of the string manipulation functions, many of the numerical ones take a <strong>single input</strong>. This is, of course, because they are supposed to be used for querying, as in the last XPath example:</p> <pre><code>//li[floor(text()) > 250]/@val </code></pre> <p>If you use them, as most of the examples do, you will end up running it on the first node that matches the path. </p> <p>There are also some type conversion functions you should probably avoid because JavaScript already has its own type conversion problems. But there can be times when you want to convert a string to a number in order to check it against some other number. </p> <p>Functions that set the type of something are boolean, number, string, and node. These are the important XPath datatypes. </p> <p>And as you might imagine, most of these functions can be used on datatypes that are not DOM nodes. For example, <code>substring-after</code> takes a string as we’ve already covered, but it could be the string from an <code>href</code> attribute. It can also just be a string:</p> <div> <pre><code>const testSubstringAfter = document.queryXPaths("substring-after('hello world',' ')"); </code></pre> </div> <p>Obviously, this example will give us back the results array as <code>["world"]</code>. To show this in action, I have made a demo page using functions against things that are not DOM nodes:</p> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/qEZERqd">queryXPath [forked]</a> by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p> <p>You should note the surprising aspect of the <code>translate</code> function, which is that if you have a character in the second argument (i.e., the list of characters you want translated) and no matching character to translate to, that character gets removed from the output.</p> <p>Thus, this:</p> <div> <pre><code>translate('Hello, My Name is Inigo Montoya, you killed my father, prepare to die','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','*') </code></pre> </div> <p>…results in the string, including spaces:</p> <pre><code>[" * * ** "] </code></pre> <p>This means that the letter “a” is being translated to an asterisk (<code>*</code>), but every other character that does not have a translation given the target string is completely removed. The whitespace is all we have left between the translated “a” characters.</p> <p>Then again, this query:</p> <div> <pre><code>translate('Hello, My Name is Inigo Montoya, you killed my father, prepare to die','abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,','**************************************************')") </code></pre> </div> <p>…does not have the problem and outputs a result that looks like this:</p> <div> <pre><code>"***** ** **** ** ***** ******* *** ****** ** ****** ******* ** ***" </code></pre> </div> <p>It might strike you that there is no easy way in JavaScript to do exactly what the XPath <code>translate</code> function does, although for many use cases, <code>replaceAll</code> with regular expressions can handle it. </p> <p>You could use the same approach I have demonstrated, but that is suboptimal if all you want is to translate the strings. The following demo wraps XPath’s <code>translate</code> function to provide a JavaScript version:</p> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/ZYWYLyZ">translate function [forked]</a> by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p> <p>Where might you use something like this? Consider <a href="https://en.wikipedia.org/wiki/Caesar_cipher">Caesar Cipher</a> encryption with a three-place offset (e.g., top-of-the-line encryption from 48 B.C.):</p> <div> <pre><code>translate("Caesar is planning to cross the Rubicon!", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "XYZABCDEFGHIJKLMNOPQRSTUVWxyzabcdefghijklmnopqrstuvw") </code></pre> </div> <p>The input text “Caesar is planning to cross the Rubicon!” results in “Zxbpxo fp mixkkfkd ql zolpp qeb Oryfzlk!”</p> <p>To give another quick example of different possibilities, I made a <code>metal</code> function that takes a string input and uses a <code>translate</code> function to return the text, including all characters that take umlauts.</p> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/YPqPNrN">metal function [forked]</a> by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p> <div> <pre><code>const metal = (str) => { return translate(str, "AOUaou","ÄÖÜäöü"); } </code></pre> </div> <p>And, if given the text “Motley Crue rules, rock on dudes!”, returns “Mötley Crüe rüles, röck ön düdes!”</p> <p>Obviously, one might have all sorts of parody uses of this function. If that’s you, then this <a href="https://tvtropes.org/pmwiki/pmwiki.php/Main/HeavyMetalUmlaut">TVTropes article</a> ought to provide you with plenty of inspiration.</p> Using CSS With XPath <p>Remember our main reason for using CSS selectors together with XPath: CSS pretty much understands what a class is, whereas the best you can do with XPath is string comparisons of the class attribute. That will work in most cases.</p> <p>But if you were to ever run into a situation where, say, someone created classes named <code>.primaryLinks</code> and <code>.primaryLinks2</code> and you were using XPath to get the <code>.primaryLinks</code> class, then you would likely run into problems. As long as there’s nothing silly like that, you would probably use XPath. But I am sad to report that I have worked at places where people do those types of silly things. </p> <p>Here’s another demo using CSS and XPath together. It shows what happens when we use the code to run an XPath on a context node that is not the document’s node.</p> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/ogxgBpz">css and xpath together [forked]</a> by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p> <p>The CSS query is <code>.relatedarticles a</code>, which fetches the two <code>a</code> elements in a <code>div</code> assigned a <code>.relatedarticles</code> class.</p> <p>After that are three “bad” queries, that is to say, queries that do not do what we want them to do when running with these elements as the context node. </p> <p>I can explain why they are behaving differently than you might expect. The three bad queries in question are:</p> <ul> <li><code>//text()</code>: Returns all the text in the document.</li> <li><code>//a/text()</code>: Returns all the text inside of links in the document.</li> <li><code>./a/text()</code>: Returns no results.</li> </ul> <p>The reason for these results is that while your context is <code>a</code> elements returned from the CSS query, <code>//</code> goes against the whole document. This is the strength of XPath; CSS cannot go from a node up to an ancestor and then to a sibling of that ancestor, and walk down to a descendant of that sibling. But XPath can.</p> <p>Meanwhile, <code>./</code> queries the children of the current node, where the dot (<code>.</code>) represents the current node, and the forward slash (<code>/</code>) represents going to some child node — whether it is an attribute, element, or text is determined by the next part of the path. But there is no child <code>a</code> element selected by the CSS query, thus that query also returns nothing. </p> <p>There are three good queries in that last demo:</p> <ul> <li><code>.//text()</code>,</li> <li><code>./text()</code>,</li> <li><code>normalize-space(./text())</code>.</li> </ul> <p>The <code>normalize-space</code> query demonstrates XPath function usage, but also fixes a problem included in the other queries. The HTML is structured like this:</p> <div> <pre><code><a href="<a href="https://www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/"">https://www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/"</a>> Automating Your Feature Testing With Selenium WebDriver </a> </code></pre> </div> <p>The query returns a line feed at the beginning and end of the text node, and <code>normalize-space</code> removes this. </p> <p>Using any XPath function that returns something other than a boolean with an input XPath applies to other functions. The following demo shows a number of examples:</p> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/JoXYGeN">xpath functions examples [forked]</a> by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p> <p>The first example shows a problem you should watch out for. Specifically, the following code:</p> <div> <pre><code>document.queryXPaths("substring-after(//a/@href,'https://')"); </code></pre> </div> <p>…returns one string:</p> <div> <pre><code>"<a href="http://www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/"">www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/"</a> </code></pre> </div> <p>It makes sense, right? These functions do not return arrays but rather single strings or single numbers. Running the function anywhere with multiple results only returns the first result. </p> <p>The second result shows what we really want:</p> <div> <pre><code>document.queryCSSSelectors("a").queryXPaths("substring-after(./@href,'https://')"); </code></pre> </div> <p>Which returns an array of two strings:</p> <div> <pre><code>["<a href="http://www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/","www.smashingmagazine.com/2022/11/automated-test-results-improve-accessibility/"]">www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/","www.smashingmagazine.com/2022/11/automated-test-results-improve-accessibility/"]</a> </code></pre> </div> <p>XPath functions can be nested just like functions in JavaScript. So, if we know the Smashing Magazine URL structure, we could do the following (using template literals is recommended):</p> <pre><code>`translate( substring( substring-after(./@href, ‘www.smashingmagazine.com/') ,9), '/','')` </code></pre> <p>This is getting a bit too complex to the extent that it needs comments describing what it does: take all of the URL from the <code>href</code> attribute after <code>www.smashingmagazine.com/</code>, remove the first nine characters, then translate the forward slash (<code>/</code>) character to nothing so as to get rid of the ending forward slash. </p> <p>The resulting array:</p> <div> <pre><code>["feature-testing-selenium-webdriver","automated-test-results-improve-accessibility"] </code></pre> </div> More XPath Use Cases <p>XPath can really shine in <strong>testing</strong>. The reason is not difficult to see, as XPath can be used to get every element in the DOM, from any position in the DOM, whereas CSS cannot.</p> <p>You cannot count on CSS classes remaining consistent in many modern build systems, but with XPath, we are able to make more robust matches as to what the text content of an element is, regardless of a changing DOM structure.</p> <p>There has been <a href="https://ieeexplore.ieee.org/document/6983884">research on techniques</a> that allow you to make resilient XPath tests. Nothing is worse than having tests flake out and fail just because a CSS selector no longer works because something has been renamed or removed.</p> <p>XPath is also really great at <strong>multiple locator extraction</strong>. There is more than one way to use XPath queries to match an element. The same is true with CSS. But XPath queries can drill into things in a more targeted way that limits what gets returned, allowing you to find a specific match where there may be several possible matches.</p> <p>For example, we can use XPath to return a specific <code>h2</code> element that is contained inside a <code>div</code> that immediately follows a sibling <code>div</code> that, in turn, contains a child image element with a <code>data-testID="leader"</code> attribute on it:</p> <pre><code><div> <div> <h1>don't get this headline</h1> </div> <div> <h2>Don't get this headline either</h2> </div> <div> <h2>The header for the leader image</h2> </div> <div> <img data-testID="leader" src="image.jpg"/> </div> </div> </code></pre> <p>This is the query:</p> <pre><code>document.queryXPaths(` //div[ following-sibling::div[1] /img[@data-testID='leader'] ] /h2/ text() `); </code></pre> <p>Let’s drop in a demo to see how that all comes together:</p> <p>See the Pen <a href="https://codepen.io/smashingmag/pen/zxqxNev">Complex H2 Query [forked]</a> by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p> <p>So, yes. There are lots of possible paths to any element in a test using XPath. </p> XSLT 1.0 Deprecation <p>I mentioned early on that <a href="https://xslt.rip/">the Chrome team plans on removing XSLT 1.0 support from the browser</a>. That’s important because XSLT 1.0 uses XML-focused programming for document transformation that, in turn, relies on XPath 1.0, which is what is found in most browsers.</p> <p>When that happens, we’ll lose a key component of XPath. But given the fact that XPath is really great for writing tests, I find it unlikely that XPath as a whole will disappear anytime soon. </p> <p>That said, I’ve noticed that people get interested in a feature when it’s taken away. And that’s certainly true in the case of XSLT 1.0 being deprecated. <a href="https://news.ycombinator.com/item?id=45006098">There’s an entire discussion happening over at Hacker News</a> filled with arguments against the deprecation. The post itself is a great example of creating a blogging framework with XSLT. You can read the discussion for yourself, but it gets into how JavaScript might be used as a shim for XLST to handle those sorts of cases.</p> <p>I have also <a href="https://www.saxonica.com/saxonjs/documentation3/index.html#!browser">seen suggestions</a> that browsers should use SaxonJS, which is a port to JavaScript’s Saxon XSLT, XQUERY, and XPath engines. That’s an interesting idea, especially as Saxon-JS implements the current version of these specifications, whereas there is no browser that implements any version of XPath or XSLT beyond 1.0, and none that implements XQuery. </p> <p>I reached out to <a href="https://norm.tovey-walsh.com">Norm Tovey-Walsh</a> at Saxonica, the company behind SaxonJS and other versions of the Saxon engine. He said:</p> <blockquote>“If any browser vendor was interested in taking SaxonJS as a starting point for integrating modern XML technologies into the browser, we’d be thrilled to discuss it with them.”<br /><br />— <a href="https://norm.tovey-walsh.com">Norm Tovey-Walsh</a></blockquote> <p>But also added:</p> <blockquote>“I would be very surprised if anyone thought that taking SaxonJS in its current form and dropping it into the browser build unchanged would be the ideal approach. A browser vendor, by nature of the fact that they build the browser, could approach the integration at a much deeper level than we can ‘from the outside’.”<br /><br />— <a href="https://norm.tovey-walsh.com">Norm Tovey-Walsh</a></blockquote> <p>It’s worth noting that Tovey-Walsh’s comments came about a week before the XSLT deprecation announcement.</p> Conclusion <p>I could go on and on. But I hope this has demonstrated the <strong>power of XPath</strong> and given you plenty of examples demonstrating how to use it for achieving great things. It’s a perfect example of older technology in the browser stack that still has plenty of <strong>utility</strong> today, even if you’ve never known it existed or never considered reaching for it.</p> <h3>Further Reading</h3> <ul> <li>“<a href="https://dl.acm.org/doi/full/10.1145/3700523.3700536">Enhancing the Resiliency of Automated Web Tests with Natural Language</a>” (ACM Digital Library) by Maroun Ayli, Youssef Bakouny, Nader Jalloul, and Rima Kilany<br /><em>This article provides many XPath examples for writing resilient tests.</em></li> <li><a href="https://developer.mozilla.org/en-US/docs/Web/XML/XPath">XPath</a> (MDN)<br /><em>This is an excellent place to start if you want a technical explanation detailing how XPath works.</em></li> <li><a href="http://www.zvon.org/xxl/XPathTutorial/General/examples.html">XPath Tutorial</a> (ZVON)<br /><em>I’ve found this tutorial to be the most helpful in my own learning, thanks to a wealth of examples and clear explanations.</em></li> <li><a href="https://xpather.com">XPather</a><br /><em>This interactive tool lets you work directly with the code.</em></li> </ul> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/older-tech-browser-stack/</span> hello@smashingmagazine.com (Bryan Rasmussen) <![CDATA[Effectively Monitoring Web Performance]]> https://smashingmagazine.com/2025/11/effectively-monitoring-web-performance/ https://smashingmagazine.com/2025/11/effectively-monitoring-web-performance/ Tue, 11 Nov 2025 10:00:00 GMT There are lots of tips for [improving your website performance](https://www.debugbear.com/blog/improve-website-performance?utm_campaign=sm-10). But even if you follow all of the advice, are you able to maintain an optimized site? And are you targeting the right pages? Matt Zeunert outlines an effective strategy for web performance optimization and explains the roles that different types of data play in it. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/effectively-monitoring-web-performance/</span> <p>This article is a sponsored by <a href="https://www.debugbear.com/?utm_campaign=sm-10">DebugBear</a></p> <p><a href="https://www.smashingmagazine.com/2023/08/running-page-speed-test-monitoring-versus-measuring/">There’s no single way to measure website performance.</a> That said, the <a href="https://www.smashingmagazine.com/2024/04/monitor-optimize-google-core-web-vitals/">Core Web Vitals</a> metrics that Google <a href="https://www.debugbear.com/docs/page-speed-seo?utm_campaign=sm-10">uses as a ranking factor</a> are a great starting point, as they cover different aspects of visitor experience:</p> <ul> <li><strong>Largest Contentful Paint (LCP):</strong> Measures the initial page load time.</li> <li><strong>Cumulative Layout Shift (CLS)</strong>: Measures if content is stable after rendering.</li> <li><strong>Interaction to Next Paint (INP)</strong>: Measures how quickly the page responds to user input.</li> </ul> <p>There are also <a href="https://www.debugbear.com/docs/web-performance-metrics?utm_campaign=sm-10">many other web performance metrics</a> that you can use to track technical aspects, like page weight or server response time. While these often don’t matter directly to the end user, they provide you with insight into what’s slowing down your pages.</p> <p>You can also use the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Performance_API/User_timing">User Timing API</a> to track page load milestones that are important on your website specifically.</p> Synthetic And Real User Data <p>There are <a href="https://www.debugbear.com/blog/synthetic-vs-rum?utm_campaing=sm-10">two different types</a> of web performance data:</p> <ul> <li><strong>Synthetic tests</strong> are run in a controlled test environment.</li> <li><strong>Real user data</strong> is collected from actual website visitors.</li> </ul> <p>Synthetic monitoring can provide super-detailed reports to help you identify page speed issues. You can configure exactly how you want to collect the data, picking a specific network speed, device size, or test location.</p> <p>Get a hands-on feel for synthetic monitoring by using the free <a href="https://www.debugbear.com/test/website-speed?utm_campaign=sm-10">DebugBear website speed test</a> to check on your website.</p> <p><img src="https://files.smashing.media/articles/effectively-monitoring-web-performance/1-debugbear-page-speed-report.png" /></p> <p>That said, your synthetic test settings might not match what’s typical for your real visitors, and you can’t script all of the possible ways that people might interact with your website.</p> <p>That’s why you also need real user monitoring (RUM). Instead of looking at one experience, you see different load times and how specific visitor segments are impacted. You can review specific page views to identify what caused poor performance for a particular visitor.</p> <p>At the same time, real user data isn’t quite as detailed as synthetic test reports, due to web API limitations and performance concerns.</p> <p>DebugBear offers both <a href="https://www.debugbear.com/synthetic-website-monitoring?utm_campaign=sm-10">synthetic monitoring</a> and <a href="https://www.debugbear.com/real-user-monitoring?utm_campaign=sm-10">real user monitoring</a>:</p> <ul> <li>To set up synthetic tests, you just need to enter a website URL, and</li> <li>To collect real user metrics, you need to install an analytics snippet on your website.</li> </ul> Three Steps To A Fast Website <p>Collecting data helps you throughout the lifecycle of your web performance optimizations. You can follow this three-step process:</p> <ol> <li><strong>Identify</strong>: Collect data across your website and identify slow visitor experiences.</li> <li><strong>Diagnose</strong>: Dive deep into technical analysis to find optimizations.</li> <li><strong>Monitor</strong>: Check that optimizations are working and get alerted to performance regressions.</li> </ol> <p>Let’s take a look at each step in detail.</p> Step 1: Identify Slow Visitor Experiences <p>What’s prompting you to look into website performance issues in the first place? You likely already have some specific issues in mind, whether that’s from customer reports or because of poor scores in the <a href="https://www.debugbear.com/blog/search-console-core-web-vitals?utm_campaign=sm-10">Core Web Vitals section of Google Search Console</a>.</p> <p>Real user data is the best place to check for slow pages. It tells you whether the technical issues on your site actually result in poor user experience. It’s easy to collect across your whole website (while synthetic tests need to be set up for each URL). And, you can often get a view count along with the performance metrics. A moderately slow page that gets two visitors a month isn’t as important as a moderately fast page that gets thousands of visits a day.</p> <p>The Web Vitals dashboard in DebugBear’s RUM product checks your site’s performance health and surfaces the most-visited pages and URLs where many visitors have a poor experience.</p> <p><img src="https://files.smashing.media/articles/effectively-monitoring-web-performance/2-web-vitals-dashboard-debugbear-rum-product.png" /></p> <p>You can also run a <a href="https://www.debugbear.com/docs/website-scan?utm_campaign=sm-10">website scan</a> to get a list of URLs from your sitemap and then check each of these pages against real user data from Google’s <a href="https://developer.chrome.com/docs/crux">Chrome User Experience Report (CrUX)</a>. However, this will only work for pages that meet a minimum traffic threshold to be included in the CrUX dataset.</p> <p>The scan result highlights pages with poor web vitals scores where you might want to investigate further.</p> <p><img src="https://files.smashing.media/articles/effectively-monitoring-web-performance/3-website-scan-result-debugbear.png" /></p> <p>If no real-user data is available, then there is a scanning tool called <a href="https://www.debugbear.com/software/unlighthouse-website-scan">Unlighthouse</a>, which is based on Google’s Lighthouse tool. It runs synthetic tests for each page, allowing you to filter through the results in order to identify pages that need to be optimized.</p> Step 2: Diagnose Web Performance Issues <p>Once you’ve identified slow pages on your website, you need to look at what’s actually happening on your page that is causing delays.</p> <h3>Debugging Page Load Time</h3> <p>If there are issues with page load time metrics — like the <a href="https://www.debugbear.com/docs/metrics/largest-contentful-paint?utm_campaign=sm-10">Largest Contentful Paint (LCP)</a> — synthetic test results can provide a detailed analysis. You can also run <a href="https://www.debugbear.com/docs/experiments?utm_campaign=sm-10">page speed experiments</a> to try out and measure the impact of certain optimizations.</p> <p><img src="https://files.smashing.media/articles/effectively-monitoring-web-performance/4-page-speed-recommendations.png" /></p> <p>Real user data can still be important when debugging page speed, as load time depends on many user- and device-specific factors. For example, depending on the size of the user’s device, the page element that’s responsible for the LCP can vary. RUM data can provide a breakdown of possible influencing factors, like CSS selectors and image URLs, across all visitors, helping you zero in on what exactly needs to be fixed.</p> <h3>Debugging Slow Interactions</h3> <p>RUM data is also generally needed to properly diagnose issues related to the <a href="https://debugbear.com/docs/rum/fix-inp-issues?utm_campaign=sm-10">Interaction to Next Paint (INP)</a> metric. Specifically, real user data can provide insight into what causes slow interactions, which helps you answer questions like:</p> <ul> <li>What page elements are responsible?</li> <li>Is time spent processing already-active background tasks or handling the interaction itself?</li> <li>What scripts contribute the most to overall CPU processing time?</li> </ul> <p>You can view this data at a high level to identify trends, as well as review specific page views to see what impacted a specific visitor experience.</p> <p><img src="https://files.smashing.media/articles/effectively-monitoring-web-performance/5-inp-interaction-element.png" /></p> Step 3: Monitor Performance & Respond To Regressions <p>Continuous monitoring of your website performance lets you track whether the performance is improving after making a change, and alerts you when scores decline.</p> <p>How you respond to performance regressions depends on whether you’re looking at lab-based synthetic tests or real user analytics.</p> <h3>Synthetic Data</h3> <p>Test settings for synthetic tests are standardized between runs. While infrastructure changes, like browser upgrades, occasionally cause changes, performance is more generally determined by resources loaded by the website and the code it runs.</p> <p>When a metric changes, DebugBear lets you view a before-and-after comparison between the two test results. For example, the next screenshot displays a regression in the First Contentful Paint (FCP) metric. The comparison reveals that new images were added to the page, <a href="https://www.debugbear.com/blog/bandwidth-competition-page-speed?utm_campaign=sm-10">competing for bandwidth with other page resources</a>.</p> <p><img src="https://files.smashing.media/articles/effectively-monitoring-web-performance/6-synthetic-tests.png" /></p> <p>From the report, it’s clear that a CSS file that previously took 255 milliseconds to load now takes 915 milliseconds. Since stylesheets are required to render page content, this means the page now loads more slowly, giving you better insight into what needs optimization.</p> <h3>Real User Data</h3> <p>When you see a change in real user metrics, there can be two causes:</p> <ol> <li>A shift in visitor characteristics or behavior, or</li> <li>A technical change on your website.</li> </ol> <p>Launching an ad campaign, for example, often increases redirects, reduces cache hits, and shifts visitor demographics. When you see a regression in RUM data, the first step is to find out if the change was on your website or in your visitor’s browser. Check for view count changes in ad campaigns, referrer domains, or network speed to get a clearer picture.</p> <p><img src="https://files.smashing.media/articles/effectively-monitoring-web-performance/7-lcp-utm-campaign.png" /></p> <p>If those visits have different performance compared to your typical visitors, then that suggests the repression is not due to a change on your website. However, you may still need to make changes on your website to better serve these visitor cohorts and deliver a good experience for them.</p> <p>To identify the cause of a technical change, take a look at component breakdown metrics, such as <a href="https://www.smashingmagazine.com/2025/03/how-to-fix-largest-contentful-issues-with-subpart-analysis/">LCP subparts</a>. This helps you narrow down the cause of a regression, whether it is due to changes in server response time, new render-blocking resources, or the LCP image.</p> <p>You can also check for shifts in page view properties, like different LCP element selectors or specific scripts that cause poor performance.</p> <p><img src="https://files.smashing.media/articles/effectively-monitoring-web-performance/8-lcp-subparts.png" /></p> Conclusion <p>One-off page speed tests are a great starting point for optimizing performance. However, a monitoring tool like DebugBear can form the basis for a more comprehensive web <strong>performance strategy</strong> that helps you stay fast for the long term.</p> <p><img src="https://files.smashing.media/articles/effectively-monitoring-web-performance/9-debugbear-web-performance.png" /></p> <p>Get <a href="https://www.debugbear.com/?utm_campaign=sm-10">a free DebugBear trial</a> on our website!</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/effectively-monitoring-web-performance/</span> hello@smashingmagazine.com (Matt Zeunert) <![CDATA[Smashing Animations Part 6: Magnificent SVGs With `<use>` And CSS Custom Properties]]> https://smashingmagazine.com/2025/11/smashing-animations-part-6-svgs-css-custom-properties/ https://smashingmagazine.com/2025/11/smashing-animations-part-6-svgs-css-custom-properties/ Fri, 07 Nov 2025 15:00:00 GMT SVG is one of those web technologies that’s both elegant and, at times, infuriating. In this article, pioneering author and web designer Andy Clarke explains his technique for animating SVG elements that are hidden in the Shadow DOM. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/smashing-animations-part-6-svgs-css-custom-properties/</span> <p>I explained recently how I use <code><symbol></code>, <code><use></code>, and CSS Media Queries to develop what I call <a href="https://www.smashingmagazine.com/2025/10/smashing-animations-part-5-building-adaptive-svgs/">adaptive SVGs</a>. Symbols let us define an element once and then <em>use</em> it again and again, making SVG animations easier to maintain, more efficient, and lightweight.</p> <p>Since I wrote that explanation, I’ve designed and implemented new <a href="https://stuffandnonsense.co.uk/blog/say-hello-to-my-magnificent-7">Magnificent 7</a> animated graphics across <a href="https://stuffandnonsense.co.uk/">my website</a>. They play on the web design pioneer theme, featuring seven magnificent Old West characters.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/1-graphics-old-west-characters.png" /></p> <p><code><symbol></code> and <code><use></code> let me define a character design and reuse it across multiple SVGs and pages. First, I created my characters and put each into a <code><symbol></code> inside a hidden library SVG:</p> <div> <pre><code><!-- Symbols library --> <svg xmlns="<a href="http://www.w3.org/2000/svg"">http://www.w3.org/2000/svg"</a> style="display:none;"> <symbol id="outlaw-1">[...]</symbol> <symbol id="outlaw-2">[...]</symbol> <symbol id="outlaw-3">[...]</symbol> <!-- etc. --> </svg> </code></pre> </div> <p>Then, I referenced those symbols in two other SVGs, one for large and the other for small screens:</p> <pre><code><!-- Large screens --> <svg xmlns="http://www.w3.org/2000/svg" id="svg-large"> <use href="outlaw-1" /> <!-- ... --> </svg> <!-- Small screens --> <svg xmlns="http://www.w3.org/2000/svg" id="svg-small"> <use href="outlaw-1" /> <!-- ... --> </svg> </code></pre> <p>Elegant. But then came the infuriating. I could reuse the characters, but couldn’t animate or style them. I added CSS rules targeting elements within the symbols referenced by a <code><use></code>, but nothing happened. Colours stayed the same, and things that should move stayed static. It felt like I’d run into an invisible barrier, and I had.</p> Understanding The Shadow DOM Barrier <p>When you reference the contents of a <code>symbol</code> with <code>use</code>, a browser creates a copy of it in the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_shadow_DOM">Shadow DOM</a>. Each <code><use></code> instance becomes its own encapsulated copy of the referenced <code><symbol></code>, meaning that CSS from outside can’t break through the barrier to style any elements directly. For example, in normal circumstances, this <code>tapping</code> value triggers a CSS animation:</p> <pre><code><g class="outlaw-1-foot tapping"> <!-- ... --> </g> </code></pre> <pre><code>.tapping { animation: tapping 1s ease-in-out infinite; } </code></pre> <p>But when the same animation is applied to a <code><use></code> instance of that same foot, nothing happens:</p> <pre><code><symbol id="outlaw-1"> <g class="outlaw-1-foot"><!-- ... --></g> </symbol> <use href="#outlaw-1" class="tapping" /> </code></pre> <pre><code>.tapping { animation: tapping 1s ease-in-out infinite; } </code></pre> <p>That’s because the <code><g></code> inside the <code><symbol></code> element is in a protected shadow tree, and the CSS Cascade stops dead at the <code><use></code> boundary. This behaviour can be frustrating, but it’s intentional as it ensures that reused symbol content stays consistent and predictable.</p> <p>While learning how to develop adaptive SVGs, I found all kinds of attempts to work around this behaviour, but most of them sacrificed the reusability that makes SVG so elegant. I didn’t want to duplicate my characters just to make them blink at different times. I wanted a single <code><symbol></code> with instances that have their own timings and expressions.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/2-animated-elements-single-svg-symbol.png" /></p> CSS Custom Properties To The Rescue <p>While working on my pioneer animations, I learned that <strong>regular CSS values can’t cross the boundary into the Shadow DOM, but CSS Custom Properties can</strong>. And even though you can’t directly style elements inside a <code><symbol></code>, you can pass custom property values to them. So, when you insert custom properties into an inline style, a browser looks at the cascade, and those styles become available to elements inside the <code><symbol></code> being referenced. </p> <p>I added <code>rotate</code> to an inline style applied to the <code><symbol></code> content:</p> <pre><code><symbol id="outlaw-1"> <g class="outlaw-1-foot" style=" transform-origin: bottom right; transform-box: fill-box; transform: rotate(var(--foot-rotate));"> <!-- ... --> </g> </symbol> </code></pre> <p>Then, defined the foot tapping animation and applied it to the element:</p> <pre><code>@keyframes tapping { 0%, 60%, 100% { --foot-rotate: 0deg; } 20% { --foot-rotate: -5deg; } 40% { --foot-rotate: 2deg; } } use[data-outlaw="1"] { --foot-rotate: 0deg; animation: tapping 1s ease-in-out infinite; } </code></pre> Passing Multiple Values To A Symbol <p>Once I’ve set up a symbol to use CSS Custom Properties, I can pass as many values as I want to any <code><use></code> instance. For example, I might define variables for <code>fill</code>, <code>opacity</code>, or <code>transform</code>. What’s elegant is that each <code><symbol></code> instance can then have its own set of values.</p> <pre><code><g class="eyelids" style=" fill: var(--eyelids-colour, #f7bea1); opacity: var(--eyelids-opacity, 1); transform: var(--eyelids-scale, 0);" > <!-- etc. --> </g> </code></pre> <pre><code>use[data-outlaw="1"] { --eyelids-colour: #f7bea1; --eyelids-opacity: 1; } use[data-outlaw="2"] { --eyelids-colour: #ba7e5e; --eyelids-opacity: 0; } </code></pre> <p>Support for passing CSS Custom Properties like this is solid, and every contemporary browser handles this behaviour correctly. Let me show you a few ways I’ve been using this technique, starting with a multi-coloured icon system.</p> A Multi-Coloured Icon System <p>When I need to maintain a set of icons, I can define an icon once inside a <code><symbol></code> and then use custom properties to apply colours and effects. Instead of needing to duplicate SVGs for every theme, each <code>use</code> can carry its own values.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/3-custom-properties-colours.png" /></p> <p>For example, I applied an <code>--icon-fill</code> custom property for the default <code>fill</code> colour of the <code><path></code> in this Bluesky icon :</p> <pre><code><symbol id="icon-bluesky"> <path fill="var(--icon-fill, currentColor)" d="..." /> </symbol> </code></pre> <p>Then, whenever I need to vary how that icon looks — for example, in a <code><header></code> and <code><footer></code> — I can pass new <code>fill</code> colour values to each instance:</p> <pre><code><header> <svg xmlns="http://www.w3.org/2000/svg"> <use href="#icon-bluesky" style="--icon-fill: #2d373b;" /> </svg> </header> <footer> <svg xmlns="http://www.w3.org/2000/svg"> <use href="#icon-bluesky" style="--icon-fill: #590d1a;" /> </svg> </footer> </code></pre> <p>These icons are the same shape but look different thanks to their inline styles.</p> Data Visualisations With CSS Custom Properties <p>We can use <code><symbol></code> and <code><use></code> in plenty more practical ways. They’re also helpful for creating lightweight data visualisations, so imagine an infographic about three famous <a href="https://en.wikipedia.org/wiki/American_frontier">Wild West</a> sheriffs: <a href="https://en.wikipedia.org/wiki/Wyatt_Earp">Wyatt Earp</a>, <a href="https://en.wikipedia.org/wiki/Pat_Garrett">Pat Garrett</a>, and <a href="https://en.wikipedia.org/wiki/Bat_Masterson">Bat Masterson</a>.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/4-data-visualisations-css-custom-properties.png" /></p> <p>Each sheriff’s profile uses the same set of SVG three symbols: one for a bar representing the length of a sheriff’s career, another to represent the number of arrests made, and one more for the number of kills. Passing custom property values to each <code><use></code> instance can vary the bar lengths, arrests scale, and kills colour without duplicating SVGs. I first created symbols for those items:</p> <pre><code><svg xmlns="http://www.w3.org/2000/svg" style="display:none;"> <symbol id="career-bar"> <rect height="10" width="var(--career-length, 100)" fill="var(--career-colour, #f7bea1)" /> </symbol> <symbol id="arrests-badge"> <path fill="var(--arrest-color, #d0985f)" transform="scale(var(--arrest-scale, 1))" /> </symbol> <symbol id="kills-icon"> <path fill="var(--kill-colour, #769099)" /> </symbol> </svg> </code></pre> <p>Each symbol accepts one or more values:</p> <ul> <li><strong><code>--career-length</code></strong> adjusts the <code>width</code> of the career bar.</li> <li><strong><code>--career-colour</code></strong> changes the <code>fill</code> colour of that bar.</li> <li><strong><code>--arrest-scale</code></strong> controls the arrest badge size.</li> <li><strong><code>--kill-colour</code></strong> defines the <code>fill</code> colour of the kill icon.</li> </ul> <p>I can use these to develop a profile of each sheriff using <code><use></code> elements with different inline styles, starting with Wyatt Earp.</p> <div> <pre><code><svg xmlns="<a href="http://www.w3.org/2000/svg"">http://www.w3.org/2000/svg"</a>> <g id="wyatt-earp"> <use href="#career-bar" style="--career-length: 400; --career-color: #769099;"/> <use href="#arrests-badge" style="--arrest-scale: 2;" /> <!-- ... --> <use href="#arrests-badge" style="--arrest-scale: 2;" /> <use href="#arrests-badge" style="--arrest-scale: 1;" /> <use href="#kills-icon" style="--kill-color: #769099;" /> </g> <g id="pat-garrett"> <use href="#career-bar" style="--career-length: 300; --career-color: #f7bea1;"/> <use href="#arrests-badge" style="--arrest-scale: 2;" /> <!-- ... --> <use href="#arrests-badge" style="--arrest-scale: 2;" /> <use href="#arrests-badge" style="--arrest-scale: 1;" /> <use href="#kills-icon" style="--kill-color: #f7bea1;" /> </g> <g id="bat-masterson"> <use href="#career-bar" style="--career-length: 200; --career-color: #c2d1d6;"/> <use href="#arrests-badge" style="--arrest-scale: 2;" /> <!-- ... --> <use href="#arrests-badge" style="--arrest-scale: 2;" /> <use href="#arrests-badge" style="--arrest-scale: 1;" /> <use href="#kills-icon" style="--kill-color: #c2d1d6;" /> </g> </svg> </code></pre> </div> <p>Each <code><use></code> shares the same symbol elements, but the inline variables change their colours and sizes. I can even animate those values to highlight their differences:</p> <pre><code>@keyframes pulse { 0%, 100% { --arrest-scale: 1; } 50% { --arrest-scale: 1.2; } } use[href="#arrests-badge"]:hover { animation: pulse 1s ease-in-out infinite; } </code></pre> <p>CSS Custom Properties aren’t only helpful for styling; they can also channel data between HTML and SVG’s inner geometry, binding visual attributes like colour, length, and scale to semantics like arrest numbers, career length, and kills.</p> Ambient Animations <p>I started learning to animate elements within symbols while creating the animated graphics for my website’s Magnificent 7. To reduce complexity and make my code lighter and more maintainable, I needed to define each character once and reuse it across SVGs:</p> <div> <pre><code><!-- Symbols library --> <svg xmlns="<a href="http://www.w3.org/2000/svg"">http://www.w3.org/2000/svg"</a> style="display:none;"> <symbol id="outlaw-1">[…]</symbol> <!-- ... --> </svg> <!-- Large screens --> <svg xmlns="<a href="http://www.w3.org/2000/svg"">http://www.w3.org/2000/svg"</a> id="svg-large"> <use href="outlaw-1" /> <!-- ... --> </svg> <!-- Small screens --> <svg xmlns="<a href="http://www.w3.org/2000/svg"">http://www.w3.org/2000/svg"</a> id="svg-small"> <use href="outlaw-1" /> <!-- ... --> </svg> </code></pre> </div> <p><img src="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/5-characters.png" /></p> <p>But I didn’t want those characters to stay static; I needed subtle movements that would bring them to life. I wanted their eyes to blink, their feet to tap, and their moustache whiskers to twitch. So, to animate these details, I pass animation data to elements inside those symbols using CSS Custom Properties, starting with the blinking. </p> <p>I implemented the blinking effect by placing an SVG group over the outlaws’ eyes and then changing its <code>opacity</code>. </p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/6-blinking-effect.png" /></p> <p>To make this possible, I added an inline style with a CSS Custom Property to the group:</p> <div> <pre><code><symbol id="outlaw-1" viewBox="0 0 712 2552"> <g class="eyelids" style="opacity: var(--eyelids-opacity, 1);"> <!-- ... --> </g> </symbol> </code></pre> </div> <p>Then, I defined the blinking animation by changing <code>--eyelids-opacity</code>:</p> <pre><code>@keyframes blink { 0%, 92% { --eyelids-opacity: 0; } 93%, 94% { --eyelids-opacity: 1; } 95%, 97% { --eyelids-opacity: 0.1; } 98%, 100% { --eyelids-opacity: 0; } } </code></pre> <p>…and applied it to every character:</p> <div> <pre><code>use[data-outlaw] { --blink-duration: 4s; --eyelids-opacity: 1; animation: blink var(--blink-duration) infinite var(--blink-delay); } </code></pre> </div> <p>…so that each character wouldn’t blink at the same time, I set a different <code>--blink-delay</code> before they all start blinking, by passing another Custom Property:</p> <pre><code>use[data-outlaw="1"] { --blink-delay: 1s; } use[data-outlaw="2"] { --blink-delay: 2s; } use[data-outlaw="7"] { --blink-delay: 3s; } </code></pre> <p><img src="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/7-foot-tapping-effect.png" /></p> <p>Some of the characters tap their feet, so I added an inline style with a CSS Custom Property to those groups, too:</p> <pre><code><symbol id="outlaw-1" viewBox="0 0 712 2552"> <g class="outlaw-1-foot" style=" transform-origin: bottom right; transform-box: fill-box; transform: rotate(var(--foot-rotate));"> </g> </symbol> </code></pre> <p>Defining the foot-tapping animation:</p> <pre><code>@keyframes tapping { 0%, 60%, 100% { --foot-rotate: 0deg; } 20% { --foot-rotate: -5deg; } 40% { --foot-rotate: 2deg; } } </code></pre> <p>And adding those extra Custom Properties to the characters’ declaration:</p> <pre><code>use[data-outlaw] { --blink-duration: 4s; --eyelids-opacity: 1; --foot-rotate: 0deg; animation: blink var(--blink-duration) infinite var(--blink-delay), tapping 1s ease-in-out infinite; } </code></pre> <p><img src="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/8-jiggling-effect.png" /></p> <p>…before finally making the character’s whiskers jiggle via an inline style with a CSS Custom Property which describes how his moustache transforms:</p> <pre><code><symbol id="outlaw-1" viewBox="0 0 712 2552"> <g class="outlaw-1-tashe" style=" transform: translateX(var(--jiggle-x, 0px));" > <!-- ... --> </g> </symbol> </code></pre> <p>Defining the jiggle animation:</p> <pre><code>@keyframes jiggle { 0%, 100% { --jiggle-x: 0px; } 20% { --jiggle-x: -3px; } 40% { --jiggle-x: 2px; } 60% { --jiggle-x: -1px; } 80% { --jiggle-x: 4px; } } </code></pre> <p>And adding those properties to the characters’ declaration:</p> <pre><code>use[data-outlaw] { --blink-duration: 4s; --eyelids-opacity: 1; --foot-rotate: 0deg; --jiggle-x: 0px; animation: blink var(--blink-duration) infinite var(--blink-delay), jiggle 1s ease-in-out infinite, tapping 1s ease-in-out infinite; } </code></pre> <p>With these moving parts, the characters come to life, but my markup remains remarkably lean. By combining several animations into a single declaration, I can choreograph their movements without adding more elements to my SVG. Every outlaw shares the same base <code><symbol></code>, and their individuality comes entirely from CSS Custom Properties.</p> Pitfalls And Solutions <p>Even though this technique might seem bulletproof, there are a few traps it’s best to avoid:</p> <ul> <li><strong>CSS Custom Properties only work if they’re referenced with a <code>var()</code> inside a <code><symbol></code>.</strong> Forget that, and you’ll wonder why nothing updates. Also, properties that aren’t naturally inherited, like <code>fill</code> or <code>transform</code>, need to use <code>var()</code> in their value to benefit from the cascade.</li> <li><strong>It’s always best to include a fallback value alongside a custom property</strong>, like <code>opacity: var(--eyelids-opacity, 1);</code> to ensure SVG elements render correctly even without custom property values applied.</li> <li><strong>Inline styles set via the <code>style</code> attribute take precedence</strong>, so if you mix inline and external CSS, remember that Custom Properties follow normal cascade rules.</li> <li><strong>You can always use DevTools to inspect custom property values.</strong> Select a <code><use></code> instance and check the Computed Styles panel to see which custom properties are active.</li> </ul> Conclusion <p>The <code><symbol></code> and <code><use></code> elements are among the most elegant but sometimes frustrating aspects of SVG. The Shadow DOM barrier makes animating them trickier, but <strong>CSS Custom Properties act as a bridge</strong>. They let you pass colour, motion, and personality across that invisible boundary, resulting in cleaner, lighter, and, best of all, fun animations.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/smashing-animations-part-6-svgs-css-custom-properties/</span> hello@smashingmagazine.com (Andy Clarke) <![CDATA[Six Key Components of UX Strategy]]> https://smashingmagazine.com/2025/11/practical-guide-ux-strategy/ https://smashingmagazine.com/2025/11/practical-guide-ux-strategy/ Wed, 05 Nov 2025 13:00:00 GMT Let’s dive into the building blocks of UX strategy and see how it speaks the language of product and business strategy to create user value while achieving company goals. Part of the <a href="https://measure-ux.com/">Measure UX & Design Impact</a> (use the code 🎟 <code>IMPACT</code> to save 20% off today). <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/practical-guide-ux-strategy/</span> <p>For years, “UX strategy” felt like a confusing, ambiguous, and overloaded term to me. To me, it was some sort of a roadmap or a “grand vision”, with a few business decisions attached to it. And looking back now, I realize that I was wrong all along.</p> <p>UX Strategy isn’t a goal; it’s a <strong>journey towards that goal</strong>. A journey connecting where UX is today with a desired future state of UX. And as such, it guides our actions and decisions, things we do and don’t do. And its goal is very simple: to <strong>maximize our chances of success</strong> while considering risks, bottlenecks and anything that might endanger the project.</p> <p>Let’s explore the <strong>components of UX strategy</strong>, and how it works with product strategy and business strategy to deliver user value and meet business goals.</p> Strategy vs. Goals vs. Plans <p>When we speak about strategy, we often speak about planning and goals — but they are actually quite different. While <em>strategy</em> answers <strong>“what” we’re doing and “why”</strong>, <em>planning</em> is about “how” and “when” we’ll get it done. And the <em>goal</em> is merely a desired outcome of that entire journey.</p> <ul> <li><strong>Goals</strong> establish a desired future outcome,</li> <li>That outcome typically represents a problem to solve,</li> <li><strong>Strategy</strong> shows a high-level solution for that problem,</li> <li><strong>Plan</strong> is a detailed set of low-level steps for getting the solution done.</li> </ul> <p><img src="https://files.smashing.media/articles/key-components-ux-strategy/1-strategy-vs-goal.jpeg" /></p> <p>A strong strategy requires making conscious, and oftentimes tough, decisions about what we will do — and just as importantly, <strong>what we will not do</strong>, and why.</p> Business Strategy <p>UX strategy doesn’t live in isolation. It must inform and support product strategy and be aligned with business strategy. All these terms are often slightly confusing and overloaded, so let's clear it up.</p> <p>At the highest level, <strong>business strategy</strong> is about the distinct choices executives make to set the company apart from its competitors. They shape the company’s positioning, objectives, and (most importantly!) <strong>competitive advantage</strong>.</p> <p><img src="https://files.smashing.media/articles/key-components-ux-strategy/2-business-model-canvas.jpg" /></p> <p>Typically, this advantage is achieved in <strong>two ways</strong>: through lower prices (cost leadership) or through <strong>differentiation</strong>. The latter part isn't about being <em>different</em>, but rather <strong>being perceived differently</strong> by the target audience. And that’s exactly where UX impact steps in.</p> <p>In short, business strategy is:</p> <ul> <li><strong>A top-line vision</strong>, basis for core offers,</li> <li><strong>Shapes positioning</strong>, goals, competitive advantage,</li> <li><strong>Must always adapt</strong> to the market to keep a competitive advantage.</li> </ul> Product Strategy <p>Product strategy is how a high-level business direction is translated into a unique positioning of a product. It defines <strong>what the product is, who its users are</strong>, and how it will contribute to the business’s goals. It’s also how we bring a product to market, drive growth, and achieve product-market fit.</p> <p>In short, product strategy is:</p> <ul> <li><strong>Unique positioning</strong> and value of a product,</li> <li><strong>How to establish</strong> and keep a product in the marketplace,</li> <li><strong>How to keep competitive advantage</strong> of the product.</li> </ul> UX Strategy <p>UX strategy is about <strong>shaping and delivering</strong> product value through UX. Good UX strategy always stems from UX research and answers to business needs. It established what to focus on, what our high-value actions are, how we’ll measure success, and — quite importantly — what <strong>risks</strong> we need to mitigate.</p> <p><img src="https://files.smashing.media/articles/key-components-ux-strategy/8-risks-ux-strategy.png" /></p> <p>Most importantly, it’s <strong>not a fixed plan</strong> or a set of deliverables; it’s a guide that informs our actions, but also must be prepared to change when things change.</p> <p><img src="https://files.smashing.media/articles/key-components-ux-strategy/3-components-ux-strategy.png" /></p> <p>In short, UX strategy is:</p> <ul> <li>How we shape and deliver <strong>product value</strong> through UX,</li> <li><strong>Priorities</strong>, focus + why, actions, metrics, risks,</li> <li><strong>Isn’t a roadmap</strong>, intention or deliverables.</li> </ul> Six Key Components of UX Strategy <p>The impact of good UX typically lives in <strong>differentiation</strong> mentioned above. Again, it’s not about how “different” our experience is, but the unique perceived value that users associate with it. And that value is a matter of a clear, frictionless, accessible, fast, and reliable experience wrapped into the product.</p> <p><img src="https://files.smashing.media/articles/key-components-ux-strategy/4-what-ux-strategy.jpg" /></p> <p>I always try to include <strong>6 key components</strong> in any strategic UX work so we don’t end up following a wrong assumption that won’t bring any impact:</p> <ol> <li><strong>Target goal</strong><br />The desired, improved future state of UX.</li> <li><strong>User segments</strong><br />Primary users that we are considering.</li> <li><strong>Priorities</strong><br />What we will and, crucially, what we will not do, and why.</li> <li><strong>High-value actions</strong><br />How we drive value and meet user and business needs.</li> <li><strong>Feasibility</strong><br />Realistic assessment of people, processes, and resources.</li> <li><strong>Risks</strong><br />Bottlenecks, blockers, legacy constraints, big unknowns.</li> </ol> <p>It’s worth noting that it’s always dangerous to be designing a product with <strong>everybody in mind</strong>. As Jamie Levy noted, by being very broad too early, we often reduce the impact of our design and messaging. It’s typically better to start with a specific, <strong>well-defined user segment</strong> and then expand, rather than the other way around.</p> Practical Example (by Alin Buda) <p>UX strategy doesn’t have to be a big <strong>40-page long PDF report</strong> or a Keynote presentation. A while back, Alin Buda kindly <a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-activity-7313819542655299585-ya-L?utm_source=share&utm_medium=member_desktop&rcm=ACoAAACDcgQBa_vsk5breYKwZAgyIhsHtJaFbL8">left a comment</a> on one of my LinkedIn posts, giving a great example of what a <strong>concise UX strategy</strong> could look like:</p> <blockquote><strong>UX Strategy (for Q4)</strong><br /><br />Our UX strategy is to focus on <strong>high-friction workflows</strong> for expert users, not casual usability improvements. Why? Because retention in this space is driven by power-user efficiency, and that aligns with our growth model.<br /><br />To succeed, we’ll design <strong>workflow accelerators</strong> and decision-support tools that will reduce time-on-task. As a part of it, we’ll need to redesign legacy flows in the Crux system. We <strong>won’t prioritize</strong> UI refinements or onboarding tours, because it doesn’t move the needle in this context.</blockquote> <p><img src="https://files.smashing.media/articles/key-components-ux-strategy/5-ux-strategy-example.jpg" /></p> <p><img src="https://files.smashing.media/articles/key-components-ux-strategy/6-ux-strategy-example.jpg" /></p> <p>What I like most about this example is just how concise and clear it is. Getting to this level of clarity takes quite a bit of time, but it creates a very precise overview of what we do, what we don't do, what we focus on, and how we <strong>drive value</strong>.</p> Wrapping Up <p>The best path to make a strong case with senior leadership is to frame your UX work as a direct <strong>contributor to differentiation</strong>. This isn’t just about making things look different; it’s about enhancing the perceived value.</p> <p><img src="https://files.smashing.media/articles/key-components-ux-strategy/7-elements-product-design.png" /></p> <p>A good strategy ties UX improvements to <strong>measurable business outcomes</strong>. It doesn’t speak about design patterns, consistency, or neatly organized components. Instead, it speaks the language of product and business strategy: OKRs, costs, revenue, business metrics, and objectives.</p> <p>Design <strong>can succeed without a strategy</strong>. In the wise words of Sun Tzu, strategy without tactics is the slowest route to victory. And tactics without strategy are the noise before defeat.</p> Meet “How To Measure UX And Design Impact” <p>You can find more details on <strong>UX Strategy</strong> in 🪴 <a href="https://measure-ux.com/"><strong>Measure UX & Design Impact</strong></a> (8h), a practical guide for designers and UX leads to measure and show your UX impact on business. Use the code 🎟 <code>IMPACT</code> to save 20% off today. <a href="https://measure-ux.com/">Jump to the details</a>.</p> <a href="https://measure-ux.com/"> <img src="https://files.smashing.media/articles/ux-metrics-video-course-release/measure-ux-and-design-impact-course.png" /> </a> <div><div><ul><li><a href="#"> Video + UX Training</a></li><li><a href="#">Video only</a></li></ul><div><h3>Video + UX Training</h3>$ 495.00 $ 799.00 <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3081832?price_id=3951439"> Get Video + UX Training<div></div></a><p>25 video lessons (8h) + <a href="https://smashingconf.com/online-workshops/workshops/vitaly-friedman-impact-design/">Live UX Training</a>.<br />100 days money-back-guarantee.</p></div><div><h3>Video only</h3><div>$ 250.00$ 395.00</div> <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3081832?price_id=3950630"> Get the video course<div></div></a><p>25 video lessons (8h). Updated yearly.<br />Also available as a <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3082557?price_id=3951421">UX Bundle with 2 video courses.</a></p></div></div></div> Useful Resources <ul> <li>“<a href="https://www.nngroup.com/articles/ux-strategy/">UX Strategy: Definition and Components</a>”, Sarah Gibbons, Anna Kaley</li> <li>“<a href="https://www.nngroup.com/articles/strategy-study-guide/">UX Strategy: Study Guide</a>”, Sarah Gibbons, Anna Kaley</li> <li><a href="https://www.youtube.com/watch?v=-6rFBXVMBTs">What Goes Into a Proactive UX Strategy</a> (video), Jared Spool</li> <li>“<a href="https://dovetail.com/ux/ux-strategy/">How To Develop An Effective UX Strategy</a>”, Chloé Garnham</li> <li><a href="https://thewavingcat.com/publications/the-little-book-of-strategy/"><em>The Little Book Of Strategy</em></a> (free PDF), Peter Bihr</li> <li>“<a href="https://www.uxmatters.com/mt/archives/2016/12/how-to-create-an-enterprise-ux-strategy.php">Enterprise UX Strategy</a>”, Cassandra Naji</li> <li>“<a href="https://web.archive.org/web/20181128062801/https://www.invisionapp.com/inside-design/ux-strategy-guide/">UX Strategy Guide</a>” + <a href="https://web.archive.org/web/20220506065907/https://s3.amazonaws.com/blog.invisionapp.com/uploads/2018/01/UX-strategy-template.pdf">Blueprint (Template)</a>, Alex Souza</li> <li><a href="https://learningloop.io/playbooks/">Product Strategy Playbooks</a></li> <li><a href="https://jaimelevy.com/ux-strategy-book/"><em>UX Strategy</em></a>, Jaime Levy</li> </ul> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/practical-guide-ux-strategy/</span> hello@smashingmagazine.com (Vitaly Friedman) <![CDATA[How To Leverage Component Variants In Penpot]]> https://smashingmagazine.com/2025/11/how-leverage-component-variants-penpot/ https://smashingmagazine.com/2025/11/how-leverage-component-variants-penpot/ Tue, 04 Nov 2025 10:00:00 GMT <p>This article is a sponsored by <a href="https://penpot.app?utm_source=SmashingMag&utm_medium=Article&utm_campaign=Variants">Penpot</a></p> <p>Since Brad Frost popularized the use of design systems in digital design <a href="https://bradfrost.com/blog/post/atomic-web-design/">way back in 2013</a>, they’ve become an invaluable resource for organizations — and even individuals — that want to craft reusable design patterns that look and feel consistent.</p> <p>But Brad didn’t just popularize design systems; he also gave us a <strong>framework</strong> for structuring them, and while we don’t have to follow that framework exactly (most people adapt it to their needs), a particularly important part of most design systems is the <strong>variants</strong>, which are <em>variations</em> of components. Component variants allow for the design of components that are the same as other components, but different, so that they’re understood by users immediately, yet provide clarity for a unique context.</p> <p>This makes component variants just as important as the components themselves. They ensure that we aren’t creating too many components that have to be individually managed, even if they’re only mildly different from other components, and since component variants are grouped together, they also ensure organization and visual consistency.</p> <p>And now we can use them in <a href="https://penpot.app?utm_source=SmashingMag&utm_medium=Article&utm_campaign=Variants">Penpot</a>, the web-based, open-source design tool where design is expressed as code. In this article, you’ll learn about variants, their place in <a href="https://penpot.app/design/design-systems?utm_source=SmashingMag&utm_medium=Article&utm_campaign=Variants">design systems</a>, and how to use them effectively in Penpot.</p> Step 1: Get Your Design Tokens In Order <p>For the most part, what separates one variant from another is the <a href="https://penpot.app/collaboration/design-tokens?utm_source=SmashingMag&utm_medium=Article&utm_campaign=DesignTokens">design tokens</a> that it uses. But what is a design token exactly?</p> <p>Imagine a brand color, let’s say a color value equal to <code>hsl(270 100 42)</code> in CSS. We save it as a “design token” called <code>color.brand.default</code> so that we can reuse it more easily without having to remember the more cumbersome <code>hsl(270 100 42)</code>.</p> <p>From there, we might also create a second design token called <code>background.button.primary.default</code> and set it to <code>color.brand.default</code>, thereby making them equal to the same color, but with different names to establish semantic separation between the two. This referencing the value of one token from another token is often called an “alias”.</p> <p>This setup gives us the flexibility to change the value of the color document-wide, change the color used in the component (maybe by switching to a different token alias), or create a variant of the component that uses a different color. Ultimately, the goal is to be able to make changes in many places at once rather than one-by-one, mostly by editing the design token values rather than the design itself, at specific scopes rather than limiting ourselves to all-or-nothing changes. This also enables us to scale our design system without constraints.</p> <p>With that in mind, here’s a rough idea of just a few color-related design tokens for a primary button with hover and disabled states:</p> <table> <thead> <tr> <th>Token name</th> <th>Token value</th> </tr> </thead> <tbody> <tr> <td><code>color.brand.default</code></td> <td><code>hsl(270 100 42)</code></td> </tr> <tr> <td><code>color.brand.lighter</code></td> <td><code>hsl(270 100 52)</code></td> </tr> <tr> <td><code>color.brand.lightest</code></td> <td><code>hsl(270 100 95)</code></td> </tr> <tr> <td><code>color.brand.muted</code></td> <td><code>hsl(270 5 50)</code></td> </tr> <tr> <td><code>background.button.primary.default</code></td> <td><code>{color.brand.default}</code></td> </tr> <tr> <td><code>background.button.primary.hover</code></td> <td><code>{color.brand.lighter}</code></td> </tr> <tr> <td><code>background.button.primary.disabled</code></td> <td><code>{color.brand.muted}</code></td> </tr> <tr> <td><code>text.button.primary.default</code></td> <td><code>{color.brand.lightest}</code></td> </tr> <tr> <td><code>text.button.primary.hover</code></td> <td><code>{color.brand.lightest}</code></td> </tr> <tr> <td><code>text.button.primary.disabled</code></td> <td><code>{color.brand.lightest}</code></td> </tr> </tbody> </table> <p>To create a color token in Penpot, switch to the “Tokens” tab in the left panel, click on the plus (<code>+</code>) icon next to “Color”, then specify the name, value, and optional description.</p> <p>For example:</p> <ul> <li><strong>Name</strong>: <code>color.brand.default</code>,</li> <li><strong>Value</strong>: <code>hsl(270 100 42)</code> (there’s a color picker if you need it).</li> </ul> <p><img src="https://files.smashing.media/articles/how-leverage-component-variants-penpot/1-color-token-penpot.png" /></p> <p>It’s pretty much the same process for other types of design tokens.</p> <p>Don’t worry, I’m not going to walk you through every design token, but I will show you how to create a design token <em>alias</em>. Simply repeat the steps above, but for the value, notice how I’ve just referenced another color token (make sure to include the curly braces):</p> <ul> <li><strong>Name</strong>: <code>background.button.primary.default</code>,</li> <li><strong>Value</strong>: <code>{color.brand.default}</code></li> </ul> <p><img src="https://files.smashing.media/articles/how-leverage-component-variants-penpot/2-design-token-alias-penpot.png" /></p> <p>Now, if the value of the color changes, so will the background of the buttons. But also, if we want to decouple the color from the buttons, all we need to do is reference a different color token or value. Mikołaj Dobrucki goes into a lot more detail in another <a href="https://www.smashingmagazine.com/2025/05/integrating-design-code-native-design-tokens-penpot/">Smashing article</a>, but it’s worth noting here that Penpot design tokens are platform-agnostic. They follow the standardized <a href="https://www.w3.org/community/design-tokens/">W3C DTCG format</a>, which means that they’re compatible with other tools and easily export to all platforms, including web, iOS, and Android.</p> <p>In the next couple of steps, we’ll create a button component and its variants while plugging different design tokens into different variants. You’ll see why doing this is so useful and how using design tokens in variants benefits design systems overall.</p> Step 2: Create The Component <p>You’ll need to create what’s called a “main” component, which is the one that you’ll update as needed going forward. Other components — the ones that you’ll actually insert into your designs — will be copies (or “instances”) of the main component, which is sort of the point, right? Update once, and the changes reflect everywhere.</p> <p>Here’s one I made earlier, minus the colors:</p> <p><img src="https://files.smashing.media/articles/how-leverage-component-variants-penpot/3-main-component-penpot.png" /></p> <p>To apply a design token, make sure that you’re on the “Tokens” tab and have the relevant layer selected, then select the design token that you want to apply to it:</p> <p><img src="https://files.smashing.media/articles/how-leverage-component-variants-penpot/4-design-token-penpot.png" /></p> <p>It doesn’t matter which variant you create first, but you’ll probably want to go with the default one as a starting point, as I’ve done. Either way, to turn this button into a main component, select the button object via the canvas (or “Layers” tab), right-click on it, then choose the “Create component” option from the context menu (or just press Ctrl / ⌘ + K after selecting it).</p> <p><img src="https://files.smashing.media/articles/how-leverage-component-variants-penpot/5-create-component-penpot.png" /></p> <p>Remember to name the component as well. You can do that by double-clicking on the name (also via the canvas or “Layers” tab).</p> <p><img src="https://files.smashing.media/articles/how-leverage-component-variants-penpot/6-renaming-component-penpot.png" /></p> Step 3: Create The Component Variants <p>To create a variant, select the main component and either hit the Ctrl / ⌘ + K keyboard shortcut, or click on the icon that reveals the “Create variant” tooltip (located in the “Design” tab in the right panel).</p> <p><img src="https://files.smashing.media/articles/how-leverage-component-variants-penpot/7-creating-component-variant-penpot.png" /></p> <p>Next, while the variant is still selected, make the necessary design changes via the “Design” tab. Or, if you want to swap design tokens out for other design tokens, you can do that in the same way that you applied them to begin with, via the “Tokens” tab. Rinse and repeat until you have all of your variants on the canvas designed:</p> <p><img src="https://files.smashing.media/articles/how-leverage-component-variants-penpot/8-styling-component-variants-penpot.png" /></p> <p>After that, as you might’ve guessed, you’ll want to name your variants. But avoid doing this via the “Layers” panel. Instead, select a variant and replace “Property 1” with a label that describes the differentiating property of each variant. Since my button variants in this example represent different states of the same button, I’ve named this “State”. This applies to all of the variants, so you only need to do this once.</p> <p>Next to the property name, you’ll see “Value 1” or something similar. Edit that for each variant, for example, the name of the state. In my case, I’ve named them “Default”, “Hover”, and “Disabled”.</p> <p><img src="https://files.smashing.media/articles/how-leverage-component-variants-penpot/9-naming-component-variant-properties-penpot.png" /></p> <p>And yes, you can add more properties to a component. To do this, click on the nearby plus (<code>+</code>) icon. I’ll talk more about component variants at scale in a minute, though.</p> <p><img src="https://files.smashing.media/articles/how-leverage-component-variants-penpot/10-managing-component-variant-properties-penpot.png" /></p> <p>To see the component in action, switch to the “Assets” tab (located in the left panel) and drag the component onto the canvas to initialize one instance of it. Again, remember to choose the correct property value from the “Design” tab:</p> <p><img src="https://files.smashing.media/articles/how-leverage-component-variants-penpot/11-using-component-variants-penpot.png" /></p> <p>If you already have a <a href="https://penpot.app/blog/penpot-for-design-systems-101/?utm_source=SmashingMag&utm_medium=Article&utm_campaign=DesignTokens">Penpot design system</a>, combining multiple components into one component with variants is not only easy and error-proof, but you might be good to go already if you’re using a robust property naming system that uses forward slashes (<code>/</code>). Penpot has put together <a href="https://community.penpot.app/t/how-to-prepare-your-files-for-the-upcoming-variants-release/9804?utm_source=SmashingMag&utm_medium=Article&utm_campaign=DesignTokens">a very straightforward guide</a>, but the diagram below sums it up pretty well:</p> <p><img src="https://files.smashing.media/articles/how-leverage-component-variants-penpot/12-diagram-sorting.png" /></p> How Component Variants Work At Scale <p>Design tokens, components, and component variants — the triple-threat of design systems — work together, not just to create powerful yet flexible design systems, but sustainable design systems that scale. This is easier to accomplish when thinking ahead, starting with design tokens that separate the “what” from the “what for” using token aliases, despite how verbose that might seem at first.</p> <p>For example, I used <code>color.brand.lightest</code> for the text color of every variant, but instead of plugging that color token in directly, I created aliases such as <code>text.button.primary.default</code>. This means that I can change the text color of any variant later without having to dive into the actual variant on the canvas, or force a change to <code>color.brand.lightest</code> that might impact a bunch of other components.</p> <p>Because remember, while the component and its variants give us reusability of the button, <strong>the color tokens give us reusability of the colors</strong>, which might be used in dozens, if not hundreds, of other components. A design system is like a living, breathing ecosystem, where some parts of it are connected, some parts of it aren’t connected, and some parts of it are or aren’t connected but might have to be later, and we need to be ready for that.</p> <p>The good news is that Penpot makes all of this pretty easy to manage as long as you do a little planning beforehand.</p> <p>Consider the following:</p> <ul> <li>The design tokens that you’ll reuse (e.g., colors, font sizes, and so on),</li> <li>Where design token aliases will be reused (e.g., buttons, headings, and so on),</li> <li>Organizing the design tokens into <a href="https://help.penpot.app/user-guide/design-tokens/?utm_source=SmashingMag&utm_medium=Article&utm_campaign=Variants#design-tokens-sets">sets</a>,</li> <li>Organizing the sets into <a href="https://help.penpot.app/user-guide/design-tokens/?utm_source=SmashingMag&utm_medium=Article&utm_campaign=Variants#design-tokens-themes">themes</a>,</li> <li>Organizing the themes into <a href="https://help.penpot.app/user-guide/design-tokens/?utm_source=SmashingMag&utm_medium=Article&utm_campaign=Variants#design-tokens-themes-group">groups</a>,</li> <li>The different components that you’ll need, and</li> <li>The different variants and variant properties that you’ll need for each component.</li> </ul> <p>Even the buttons that I designed here today can be scaled far beyond what I’ve already mocked up. Think of all the possible variants that might come up, such as a secondary button color, a tertiary color, a confirmation color, a warning color, a cancelled color, different colors for light and dark mode, not to mention more properties for more states, such as active and focus states. What if we want a whole matrix of variants, like where buttons in a disabled state can be hovered and where all buttons can be focused upon? Or where some buttons have icons instead of text labels, or both?</p> <p>Designs can get very complicated, but once you’ve organized them into design tokens, components, and component variants in Penpot, they’ll actually feel quite simple, especially once you’re able to see them on the canvas, and even more so once you’ve made a significant change in just a few seconds without breaking anything.</p> Conclusion <p>This is how we make component variants work at scale. We get the benefits of <strong>reusability</strong> while keeping the <strong>flexibility</strong> to fork any aspect of our design system, big or small, without breaking out of it. And design tools like Penpot make it possible to not only establish a design system, but also express its design tokens and styles as code.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/11/how-leverage-component-variants-penpot/</span> hello@smashingmagazine.com (Daniel Schwarz) <![CDATA[Fading Light And Falling Leaves (November 2025 Wallpapers Edition)]]> https://smashingmagazine.com/2025/10/desktop-wallpaper-calendars-november-2025/ https://smashingmagazine.com/2025/10/desktop-wallpaper-calendars-november-2025/ Fri, 31 Oct 2025 12:00:00 GMT The new month is just around the corner, and that means: It’s time for some new desktop wallpapers! All of them are designed by the community for the community and can be downloaded for free. Enjoy! <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/10/desktop-wallpaper-calendars-november-2025/</span> <p>November can feel a bit gray in many parts of the world, so what better way to brighten the days than with a splash of colorful inspiration? For this month’s wallpapers edition, artists and designers from around the globe once again tickled their creativity and designed <strong>unique and inspiring wallpapers</strong> that are sure to bring some good vibes to your desktops and home screens.</p> <p>As always, the wallpapers in this post come in a variety of screen resolutions and can be downloaded for free — just as it has been a <strong>monthly tradition</strong> here at Smashing Magazine for <a href="https://www.smashingmagazine.com/category/wallpapers">more than 14 years</a> already. And since so many beautiful designs have seen the light of day since we first embarked on this monthly creativity adventure, we’ve also added a selection of oldies but goodies from our archives to the collection. Maybe one of your almost-forgotten favorites will catch your eye again this month?</p> <p>A huge thank you to all the talented creatives who contributed their designs — this post wouldn’t be possible without your support! By the way, if <em>you</em>, too, would like to <strong>get featured</strong> in one of our upcoming wallpapers posts, please don’t hesitate to <a href="https://www.smashingmagazine.com/2015/12/desktop-wallpaper-calendars-join-in/">submit your design</a>. We can’t wait to see what you’ll come up with! Happy November!</p> <ul> <li>You can <strong>click on every image to see a larger preview</strong>.</li> <li>We respect and carefully consider the ideas and motivation behind each and every artist’s work. This is why we give all artists the <strong>full freedom to explore their creativity</strong> and express emotions and experience through their works. This is also why the themes of the wallpapers weren’t anyhow influenced by us but rather designed from scratch by the artists themselves.</li> </ul> Falling Into November <p>“Celebrate the heart of fall with cozy colors, crisp leaves, and the gentle warmth that only November brings.” — Designed by <a href="https://www.librafire.com/">Libra Fire</a> from Serbia.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nov-25-falling-into-november-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-25-falling-into-november-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nov-25-falling-into-november-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-320x480.png">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-2560x1440.png">2560x1440</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-320x480.png">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-2560x1440.png">2560x1440</a></li> </ul> Crown Me <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nov-25-crown-me-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-25-crown-me-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nov-25-crown-me-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-3840x2160.png">3840x2160</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-3840x2160.png">3840x2160</a></li> </ul> Fireside Stories Under The Stars <p>“A cozy autumn evening comes alive as friends gather around a warm bonfire, sharing stories beneath a starry night sky. The glow of the fire contrasts beautifully with the cool, serene landscape, capturing the magic of friendship, warmth, and the quiet beauty of November nights.” — Designed by <a href="https://www.popwebdesign.net/">PopArt Studio</a> from Serbia.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nov-25-fireside-stories-under-the-stars-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-25-fireside-stories-under-the-stars-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nov-25-fireside-stories-under-the-stars-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-320x480.png">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/cal/nov-25-fireside-stories-under-the-stars-cal-2560x1440.png">2560x1440</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-320x480.png">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nocal/nov-25-fireside-stories-under-the-stars-nocal-2560x1440.png">2560x1440</a></li> </ul> Lunchtime <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nov-25-lunchtime-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-25-lunchtime-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nov-25-lunchtime-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-3840x2160.png">3840x2160</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-3840x2160.png">3840x2160</a></li> </ul> Where Innovation Meets Design <p>“This artwork blends technology and creativity in a clean, modern aesthetic. Soft pastel tones and fluid shapes frame a central smartphone, symbolizing the fusion of innovation and human intelligence in mobile app development.” — Designed by <a href="https://www.zco.com/">Zco Corporation</a> from the United States.</p> <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/nov-25-where-innovation-meets-design-full.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-25-where-innovation-meets-design-preview-opt.png" /></a> <ul> <li><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/nov-25-where-innovation-meets-design-preview.png">preview</a></li> <li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/cal/nov-25-where-innovation-meets-design-cal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/cal/nov-25-where-innovation-meets-design-cal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/cal/nov-25-where-innovation-meets-design-cal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/cal/nov-25-where-innovation-meets-design-cal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/cal/nov-25-where-innovation-meets-design-cal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/cal/nov-25-where-innovation-meets-design-cal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/cal/nov-25-where-innovation-meets-design-cal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/cal/nov-25-where-innovation-meets-design-cal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/cal/nov-25-where-innovation-meets-design-cal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/cal/nov-25-where-innovation-meets-design-cal-2560x1440.png">2560x1440</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/nocal/nov-25-where-innovation-meets-design-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/nocal/nov-25-where-innovation-meets-design-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/nocal/nov-25-where-innovation-meets-design-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/nocal/nov-25-where-innovation-meets-design-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/nocal/nov-25-where-innovation-meets-design-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/nocal/nov-25-where-innovation-meets-design-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/nocal/nov-25-where-innovation-meets-design-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/nocal/nov-25-where-innovation-meets-design-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/nocal/nov-25-where-innovation-meets-design-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/nocal/nov-25-where-innovation-meets-design-nocal-2560x1440.png">2560x1440</a></li> </ul> Colorful Autumn <p>“Autumn can be dreary, especially in November, when rain starts pouring every day. We wanted to summon better days, so that’s how this colourful November calendar was created. Open your umbrella and let’s roll!” — Designed by <a href="https://www.popwebdesign.net/index_eng.html">PopArt Studio</a> from Serbia.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7456c03e-565b-492c-968f-b30e92d5b6e6/nov-17-colorful-autumn-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8edeb776-d8d5-4b5b-867f-6964f7addcd6/nov-17-colorful-autumn-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8edeb776-d8d5-4b5b-867f-6964f7addcd6/nov-17-colorful-autumn-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-640x480.jpg">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-2560x1440.jpg">2560x1440</a></li> </ul> The Secret Cave <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-24-the-secret-cave-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-24-the-secret-cave-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-24-the-secret-cave-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-3840x2160.png">3840x2160</a></li> </ul> Sunset Or Sunrise <p>“November is autumn in all its splendor. Earthy colors, falling leaves, and afternoons in the warmth of the home. But it is also adventurous and exciting and why not, different. We sit in Bali contemplating Pura Ulun Danu Bratan. We don’t know if it’s sunset or dusk, but… does that really matter?” — Designed by <a href="https://www.silocreativo.com/en">Veronica Valenzuela Jimenez</a> from Spain.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2024/nov-23-sunset-or-sunrise-what-difference-does-it-make-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2024/nov-23-sunset-or-sunrise-what-difference-does-it-make-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2024/nov-23-sunset-or-sunrise-what-difference-does-it-make-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/sunset-or-sunrise-what-difference-does-it-make/nocal/nov-23-sunset-or-sunrise-what-difference-does-it-make-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/sunset-or-sunrise-what-difference-does-it-make/nocal/nov-23-sunset-or-sunrise-what-difference-does-it-make-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/sunset-or-sunrise-what-difference-does-it-make/nocal/nov-23-sunset-or-sunrise-what-difference-does-it-make-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/sunset-or-sunrise-what-difference-does-it-make/nocal/nov-23-sunset-or-sunrise-what-difference-does-it-make-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/sunset-or-sunrise-what-difference-does-it-make/nocal/nov-23-sunset-or-sunrise-what-difference-does-it-make-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/sunset-or-sunrise-what-difference-does-it-make/nocal/nov-23-sunset-or-sunrise-what-difference-does-it-make-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/sunset-or-sunrise-what-difference-does-it-make/nocal/nov-23-sunset-or-sunrise-what-difference-does-it-make-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/sunset-or-sunrise-what-difference-does-it-make/nocal/nov-23-sunset-or-sunrise-what-difference-does-it-make-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/sunset-or-sunrise-what-difference-does-it-make/nocal/nov-23-sunset-or-sunrise-what-difference-does-it-make-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/sunset-or-sunrise-what-difference-does-it-make/nocal/nov-23-sunset-or-sunrise-what-difference-does-it-make-nocal-2560x1440.png">2560x1440</a></li> </ul> A Jelly November <p>“Been looking for a mysterious, gloomy, yet beautiful desktop wallpaper for this winter season? We’ve got you, as this month’s calendar marks Jellyfish Day. On November 3rd, we celebrate these unique, bewildering, and stunning marine animals. Besides adorning your screen, we’ve got you covered with some jellyfish fun facts: they aren’t really fish, they need very little oxygen, eat a broad diet, and shrink in size when food is scarce. Now that’s some tenacity to look up to.” — Designed by <a href="https://www.popwebdesign.net/apps.html">PopArt Studio</a> from Serbia.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-a-jelly-november-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-a-jelly-november-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-a-jelly-november-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-320x480.jpg">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-640x480.jpg">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-800x480.jpg">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-800x600.jpg">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1024x768.jpg">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1152x864.jpg">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1280x720.jpg">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1280x960.jpg">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1366x768.jpg">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1440x900.jpg">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1440x1050.jpg">1440x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Winter Is Here <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-21-winter-is-here-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-21-winter-is-here-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-21-winter-is-here-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-2560x1440.png">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-3840x2160.png">3840x2160</a></li> </ul> Moonlight Bats <p>“I designed some Halloween characters and then this idea came to my mind — a bat family hanging around in the moonlight. A cute and scary mood is just perfect for autumn.” — Designed by <a href="https://www.carmen-eisendle.com">Carmen Eisendle</a> from Germany.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/eb930008-f9f2-4640-9da7-8ec4961ef457/nov-16-moonlight-bats-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/95ff8287-5ec2-4dd5-b3a8-0b7fc4002451/nov-16-moonlight-bats-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/95ff8287-5ec2-4dd5-b3a8-0b7fc4002451/nov-16-moonlight-bats-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1680x1260.png">1680x1260</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-2560x1440.png">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-2560x1600.png">2560x1600</a></li> </ul> Time To Give Thanks <p>Designed by <a href="http://www.tazi.com.au">Glynnis Owen</a> from Australia.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2eb92368-cefd-4b28-9813-15deae3a363a/nov-16-time-to-give-thanks-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e00bfb70-c6a1-40d5-9753-c5e375e863c2/nov-16-time-to-give-thanks-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e00bfb70-c6a1-40d5-9753-c5e375e863c2/nov-16-time-to-give-thanks-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-16/time-to-give-thanks/nocal/nov-16-time-to-give-thanks-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/time-to-give-thanks/nocal/nov-16-time-to-give-thanks-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/time-to-give-thanks/nocal/nov-16-time-to-give-thanks-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/time-to-give-thanks/nocal/nov-16-time-to-give-thanks-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/time-to-give-thanks/nocal/nov-16-time-to-give-thanks-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/time-to-give-thanks/nocal/nov-16-time-to-give-thanks-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/time-to-give-thanks/nocal/nov-16-time-to-give-thanks-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/time-to-give-thanks/nocal/nov-16-time-to-give-thanks-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/time-to-give-thanks/nocal/nov-16-time-to-give-thanks-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/time-to-give-thanks/nocal/nov-16-time-to-give-thanks-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/time-to-give-thanks/nocal/nov-16-time-to-give-thanks-nocal-2560x1440.png">2560x1440</a></li> </ul> Anbani <p>“<em>Anbani</em> means <em>alphabet</em> in Georgian. The letters that grow on that tree are the Georgian alphabet. It’s very unique!” — Designed by <a href="https://vlad.studio/">Vlad Gerasimov</a> from Georgia.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-anbani-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-anbani-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-anbani-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-800x480.jpg">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-800x600.jpg">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1024x600.jpg">1024x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1024x768.jpg">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1152x864.jpg">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1280x720.jpg">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1280x800.jpg">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1280x960.jpg">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1366x768.jpg">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1440x900.jpg">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1440x960.jpg">1440x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1600x900.jpg">1600x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-2560x1440.jpg">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-2560x1600.jpg">2560x1600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-2880x1800.jpg">2880x1800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-3072x1920.jpg">3072x1920</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-3840x2160.jpg">3840x2160</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-5120x2880.jpg">5120x2880</a></li> </ul> Me And The Key Three <p>Designed by Bart Bonte from Belgium.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a36659bc-3708-428a-99a8-14f9ecf7d1fd/key-three-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/57fb0377-f0ca-4c86-b9ef-a7e70432e798/key-three-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/57fb0377-f0ca-4c86-b9ef-a7e70432e798/key-three-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/2560x1440.png">2560x1440</a></li> </ul> Outer Space <p>“We were inspired by nature around us and the universe above us, so we created an out-of-this-world calendar. Now, let us all stop for a second and contemplate on preserving our forests, let us send birds of passage off to warmer places, and let us think to ourselves — if not on Earth, could we find a home somewhere else in outer space?” — Designed by <a href="https://www.popwebdesign.de">PopArt Studio</a> from Serbia.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2a22c060-701d-45e2-b929-e56fe19d1f00/nov-18-outer-space-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a26c1a03-abab-4c75-9825-9c00172ae9a9/nov-18-outer-space-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a26c1a03-abab-4c75-9825-9c00172ae9a9/nov-18-outer-space-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-640x480.jpg">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Captain’s Home <p>Designed by Elise Vanoorbeek from Belgium.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e7992aa7-576e-4bdb-9219-00c71f9aa330/nov-15-captains-home-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1674ac88-6294-46eb-a184-417dec461c3e/nov-15-captains-home-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1674ac88-6294-46eb-a184-417dec461c3e/nov-15-captains-home-preview-opt.png">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-2560x1440.jpg">2560x1440</a></li></ul> Deer Fall, I Love You <p>Designed by Maria Porter from the United States.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ca26fac3-6827-4335-907c-efe1d306aa4b/nov-16-deer-fall-i-love-you-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1c1cdfb2-3f9a-4b3f-be45-df181ec5ac5e/nov-16-deer-fall-i-love-you-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1c1cdfb2-3f9a-4b3f-be45-df181ec5ac5e/nov-16-deer-fall-i-love-you-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-16/deer-fall-i-love-you/nocal/nov-16-deer-fall-i-love-you-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/deer-fall-i-love-you/nocal/nov-16-deer-fall-i-love-you-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/deer-fall-i-love-you/nocal/nov-16-deer-fall-i-love-you-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/deer-fall-i-love-you/nocal/nov-16-deer-fall-i-love-you-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/deer-fall-i-love-you/nocal/nov-16-deer-fall-i-love-you-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/deer-fall-i-love-you/nocal/nov-16-deer-fall-i-love-you-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/deer-fall-i-love-you/nocal/nov-16-deer-fall-i-love-you-nocal-2560x1440.png">2560x1440</a></li> </ul> Holiday Season Is Approaching <p>Designed by <a href="https://activecollab.com">ActiveCollab</a> from the United States.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2024/nov-21-holiday-season-is-approaching-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2024/nov-21-holiday-season-is-approaching-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2024/nov-21-holiday-season-is-approaching-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-21/holiday-season-is-approaching/nocal/nov-21-holiday-season-is-approaching-nocal-1080x1920.png">1080x1920</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/holiday-season-is-approaching/nocal/nov-21-holiday-season-is-approaching-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/holiday-season-is-approaching/nocal/nov-21-holiday-season-is-approaching-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/holiday-season-is-approaching/nocal/nov-21-holiday-season-is-approaching-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/holiday-season-is-approaching/nocal/nov-21-holiday-season-is-approaching-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/holiday-season-is-approaching/nocal/nov-21-holiday-season-is-approaching-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/holiday-season-is-approaching/nocal/nov-21-holiday-season-is-approaching-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/holiday-season-is-approaching/nocal/nov-21-holiday-season-is-approaching-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/holiday-season-is-approaching/nocal/nov-21-holiday-season-is-approaching-nocal-2560x1440.png">2560x1440</a></li> </ul> International Civil Aviation Day <p>“On December 7, we mark International Civil Aviation Day, celebrating those who prove day by day that the sky really is the limit. As the engine of global connectivity, civil aviation is now, more than ever, a symbol of social and economic progress and a vehicle of international understanding. This monthly calendar is our sign of gratitude to those who dedicate their lives to enabling everyone to reach their dreams.” — Designed by <a href="https://www.popwebdesign.net/index_eng.html">PopArt Studio</a> from Serbia.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6d3efa6d-140d-42a3-96be-44c1a8ef2e60/nov-19-international-civil-aviation-day-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f837919f-6ce4-4197-96b1-5b7ce66ac2c1/nov-19-international-civil-aviation-day-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f837919f-6ce4-4197-96b1-5b7ce66ac2c1/nov-19-international-civil-aviation-day-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-640x480.jpg">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-19/international-civil-aviation-day/nocal/nov-19-international-civil-aviation-day-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Peanut Butter Jelly Time <p>“November is the Peanut Butter Month so I decided to make a wallpaper around that. As everyone knows peanut butter goes really well with some jelly, so I made two sandwiches, one with peanut butter and one with jelly. Together they make the best combination.” — Designed by Senne Mommens from Belgium.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/94a18ffc-39d9-41e5-ab10-f4b5e93b6eac/nov-17-peanut-butter-jelly-time-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/21d4e006-6bb8-46d1-b7c4-75f780cae95f/nov-17-peanut-butter-jelly-time-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/21d4e006-6bb8-46d1-b7c4-75f780cae95f/nov-17-peanut-butter-jelly-time-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-17/peanut-butter-jelly-time/nocal/nov-17-peanut-butter-jelly-time-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/peanut-butter-jelly-time/nocal/nov-17-peanut-butter-jelly-time-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/peanut-butter-jelly-time/nocal/nov-17-peanut-butter-jelly-time-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/peanut-butter-jelly-time/nocal/nov-17-peanut-butter-jelly-time-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/peanut-butter-jelly-time/nocal/nov-17-peanut-butter-jelly-time-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/peanut-butter-jelly-time/nocal/nov-17-peanut-butter-jelly-time-nocal-2560x1440.png">2560x1440</a></li> </ul> A Gentleman’s November <p>Designed by Cedric Bloem from Belgium.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/dbfa680e-e6b6-46cd-88af-10c686c610c4/nov-14-a-gents-november-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/44b45307-6330-4e5a-bf33-9784777f2dda/nov-14-a-gents-november-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/44b45307-6330-4e5a-bf33-9784777f2dda/nov-14-a-gents-november-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-2560x1440.png">2560x1440</a></li> </ul> Bug <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-23-bug-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-23-bug-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-23-bug-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-3840x2160.png">3840x2160</a></li> </ul> Go To Japan <p>“November is the perfect month to go to Japan. Autumn is beautiful with its brown colors. Let’s enjoy it!” — Designed by <a href="https://www.silocreativo.com/en">Veronica Valenzuela</a> from Spain.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-21-go-to-japan-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-21-go-to-japan-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-21-go-to-japan-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-2560x1440.png">2560x1440</a></li> </ul> The Kind Soul <p>“Kindness drives humanity. Be kind. Be humble. Be humane. Be the best of yourself!” — Designed by <a href="https://www.colormean.ae/">Color Mean Creative Studio</a> from Dubai.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8f0fd84d-e496-435f-be91-5b2ecb580149/nov-17-the-kind-soul-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f00ee114-6db4-4f83-9877-1827113c2276/nov-17-the-kind-soul-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f00ee114-6db4-4f83-9877-1827113c2276/nov-17-the-kind-soul-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-320x480.jpg">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-640x480.jpg">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-800x480.jpg">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-800x600.jpg">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1366x768.jpg">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-2560x1440.jpg">2560x1440</a></li> </ul> Mushroom Season <p>“It is autumn! It is raining and thus… it is mushroom season! It is the perfect moment to go to the forest and get the best mushrooms to do the best recipe.” — Designed by <a href="http://www.silocreativo.com/en/">Verónica Valenzuela</a> from Spain.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e1775c95-1c88-47e9-abe3-010b7d9c4dc0/nov-15-mushroom-season-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2f07e2f6-0387-44d5-b7c0-361acbb3f022/nov-15-mushroom-season-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2f07e2f6-0387-44d5-b7c0-361acbb3f022/nov-15-mushroom-season-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-2560x1440.png">2560x1440</a></li> </ul> Tempestuous November <p>“By the end of autumn, ferocious Poseidon will part from tinted clouds and timid breeze. After this uneven clash, the sky once more becomes pellucid just in time for imminent luminous snow.” — Designed by <a href="https://www.creitive.com">Ana Masnikosa</a> from Belgrade, Serbia.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5e17adda-4fc7-4ad5-9328-e364e52a0075/nov-17-tempestuous-november-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6aa9d7e3-e1b8-48dd-9dcb-25eaf0ba1229/nov-17-tempestuous-november-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6aa9d7e3-e1b8-48dd-9dcb-25eaf0ba1229/nov-17-tempestuous-november-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-2560x1440.png">2560x1440</a></li> </ul> Cozy Autumn Cups And Cute Pumpkins <p>“Autumn coziness, which is created by fallen leaves, pumpkins, and cups of cocoa, inspired our designers for this wallpaper. — Designed by <a href="http://masterbundles.com/">MasterBundles</a> from Ukraine.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-cozy-autumn-cups-and-cute-pumpkins-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-cozy-autumn-cups-and-cute-pumpkins-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-cozy-autumn-cups-and-cute-pumpkins-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-320х480.png">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-640х480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-800х480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-800х600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-1024х768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-1024х1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-1152х864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-1280х720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-1280х800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-1280х960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-1280х1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-1366х768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-1400х1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-1440х900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-1600х1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-1680х1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-1680х1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-1920х1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-1920х1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-1920х1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/cozy-autumn-cups-and-cute-pumpkins/nocal/nov-22-cozy-autumn-cups-and-cute-pumpkins-nocal-2560х1440.png">2560x1440</a></li> </ul> November Nights On Mountains <p>“Those chill November nights when you see mountain tops covered with the first snow sparkling in the moonlight.” — Designed by Jovana Djokic from Serbia.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ff16366b-8df6-4f3a-99ab-b6609aac06cd/nov-15-november-nights-on-mountains-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e0395663-e5a3-4005-8da0-1c28011e8ccf/nov-15-november-nights-on-mountains-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e0395663-e5a3-4005-8da0-1c28011e8ccf/nov-15-november-nights-on-mountains-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/november-nights-on-mountains/nocal/nov-15-november-nights-on-mountains-nocal-2560x1440.png">2560x1440</a></li></ul> Coco Chanel <p>“<em>Beauty begins the moment you decide to be yourself.</em> (Coco Chanel)” — Designed by <a href="https://www.tazi.com.au">Tazi</a> from Australia.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-17-coco-chanel-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-17-coco-chanel-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-17-coco-chanel-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-2560x1440.png">2560x1440</a></li> </ul> Stars <p>“I don’t know anyone who hasn’t enjoyed a cold night looking at the stars.” — Designed by Ema Rede from Portugal.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a5b13015-b6a8-4381-b8a3-471ab56ce47a/nov-18-stars-full-opt.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c0e12314-b103-46e0-9c85-55a6e7531d0d/nov-18-stars-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c0e12314-b103-46e0-9c85-55a6e7531d0d/nov-18-stars-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-18/stars/nocal/nov-18-stars-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/stars/nocal/nov-18-stars-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/stars/nocal/nov-18-stars-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/stars/nocal/nov-18-stars-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/stars/nocal/nov-18-stars-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/stars/nocal/nov-18-stars-nocal-1920x1440.png">1920x1440</a></li> </ul> Welcome Home Dear Winter <p>“The smell of winter is lingering in the air. The time to be home! Winter reminds us of good food, of the warmth, the touch of a friendly hand, and a talk beside the fire. Keep calm and let us welcome winter.” — Designed by <a href="http://acodez.in/">Acodez IT Solutions</a> from India.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/50c9ea50-884f-473a-b3b1-14900d365355/nov-16-welcome-home-dear-winter-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d3c0a650-20d1-4e84-a131-6c7625b75188/nov-16-welcome-home-dear-winter-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d3c0a650-20d1-4e84-a131-6c7625b75188/nov-16-welcome-home-dear-winter-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/welcome-home-dear-winter/nocal/nov-16-welcome-home-dear-winter-nocal-2560x1440.png">2560x1440</a></li> </ul> Happy Birthday C.S.Lewis! <p>“It’s C.S. Lewis’s birthday on November 29th, so I decided to create this ‘Chronicles of Narnia’ inspired wallpaper to honour this day.” — Designed by <a href="https://www.safiabegum.com/">Safia Begum</a> from the United Kingdom.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-17-happy-birthday-cslewis-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-17-happy-birthday-cslewis-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-17-happy-birthday-cslewis-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-800x450.png">800x450</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-1440x810.png">1440x810</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-1600x900.png">1600x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-1680x945.png">1680x945</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-2560x1440.png">2560x1440</a></li></ul> Autumn Choir <p>Designed by <a href="https://hatcherscreative.com">Hatchers</a> from Ukraine / China.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/58bcf814-8bd6-43bb-a1d7-4cbdfec0709d/november-12-autumn-choir-99-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2d95a969-aa84-468f-ac37-5be03c51820d/november-12-autumn-choir-99-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2d95a969-aa84-468f-ac37-5be03c51820d/november-12-autumn-choir-99-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/november-12/november-12-autumn_choir__99-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/november-12/november-12-autumn_choir__99-nocal-1152x864.jpg">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/november-12/november-12-autumn_choir__99-nocal-1280x720.jpg">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/november-12/november-12-autumn_choir__99-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/november-12/november-12-autumn_choir__99-nocal-1280x960.jpg">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/november-12/november-12-autumn_choir__99-nocal-1400x1050.jpg">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/november-12/november-12-autumn_choir__99-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/november-12/november-12-autumn_choir__99-nocal-1600x1200.jpg">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/november-12/november-12-autumn_choir__99-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/november-12/november-12-autumn_choir__99-nocal-1680x1200.jpg">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/november-12/november-12-autumn_choir__99-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/november-12/november-12-autumn_choir__99-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/november-12/november-12-autumn_choir__99-nocal-1920x1440.jpg">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/november-12/november-12-autumn_choir__99-nocal-2560x1440.jpg">2560x1440</a></li></ul> Star Wars <p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p> <a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-22-star-wars-full-opt.png"><img src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-22-star-wars-preview-opt.png" /></a> <ul> <li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-22-star-wars-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-640x480.png">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-800x480.png">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-800x600.png">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1024x768.png">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1024x1024.png">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1152x864.png">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1280x720.png">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1280x800.png">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1280x960.png">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1280x1024.png">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1366x768.png">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1400x1050.png">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1440x900.png">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1600x1200.png">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1680x1050.png">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1680x1200.png">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1920x1080.png">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1920x1200.png">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1920x1440.png">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-2560x1440.png">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-3840x2160.png">3840x2160</a></li> </ul> Hello World, Happy November <p>“I often read messages at Smashing Magazine from the people in the southern hemisphere ‘it’s spring, not autumn!’ so I wanted to design a wallpaper for the northern and the southern hemispheres. Here it is, northerners and southerns, hope you like it!” — Designed by Agnes Swart from the Netherlands.</p> <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/430130a6-25ab-42ea-a53f-b213c6663754/nov-14-hello-world-happy-november-full.png"><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4b7e62a7-e48e-419a-9ff1-00791771c006/nov-14-hello-world-happy-november-preview-opt.png" /></a> <ul> <li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4b7e62a7-e48e-419a-9ff1-00791771c006/nov-14-hello-world-happy-november-preview-opt.png">preview</a></li> <li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-800x480.png">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-1024x1024.png">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/hello-world-happy-november/nocal/nov-14-hello-world-happy-november-nocal-2560x1440.png">2560x1440</a></li> </ul> Get Featured Next Month <p>Feeling inspired? We’ll publish the <strong>December wallpapers</strong> on November 30, so if you’d like to be a part of the collection, please don’t hesitate to <a href="https://www.smashingmagazine.com/desktop-wallpaper-calendars-join-in/">submit your design</a>. We are already looking forward to it!</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/10/desktop-wallpaper-calendars-november-2025/</span> hello@smashingmagazine.com (Cosima Mielke) <![CDATA[JavaScript For Everyone: Iterators]]> https://smashingmagazine.com/2025/10/javascript-for-everyone-iterators/ https://smashingmagazine.com/2025/10/javascript-for-everyone-iterators/ Mon, 27 Oct 2025 13:00:00 GMT Here is a lesson on Iterators. Iterables implement the iterable iteration interface, and iterators implement the iterator iteration interface. Sounds confusing? Mat breaks it all down in the article. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/10/javascript-for-everyone-iterators/</span> <p>Hey, I’m Mat, but “Wilto” works too — I’m here to teach you JavaScript. Well, not <em>here</em>-here; technically, I’m over at <a href="https://piccalil.li/javascript-for-everyone">Piccalil.li’s <em>JavaScript for Everyone</em></a> course to teach you JavaScript. The following is an excerpt from the <strong>Iterables and Iterators</strong> module: the lesson on Iterators. </p> <p>Iterators are one of JavaScript’s more linguistically confusing topics, sailing <em>easily</em> over what is already a pretty high bar. There are <em>iterables</em> — array, Set, Map, and string — all of which follow the <strong>iterable protocol</strong>. To follow said protocol, an object must implement the <strong>iterable interface</strong>. In practice, that means that the object needs to include a <code>[Symbol.iterator]()</code> method somewhere in its prototype chain. Iterable protocol is one of two <strong>iteration protocols</strong>. The other iteration protocol is the <strong>iterator protocol</strong>.</p> <p>See what I mean about this being linguistically fraught? Iterables implement the iterable iteration interface, and iterators implement the iterator iteration interface! If you can say that five times fast, then you’ve pretty much got the gist of it; easy-peasy, right?</p> <p>No, listen, by the time you reach the end of this lesson, I promise it won’t be half as confusing as it might sound, especially with the context you’ll have from the lessons that precede it. </p> <p>An <strong>iterable</strong> object follows the iterable protocol, which just means that the object has a conventional method for making iterators. The elements that it contains can be looped over with <code>for</code>…<code>of</code>.</p> <p>An <strong>iterator</strong> object follows the iterator protocol, and the elements it contains can be accessed <em>sequentially</em>, one at a time.</p> <p>To <em>reiterate</em> — a play on words for which I do not forgive myself, nor expect you to forgive me — an <strong>iterator</strong> object follows iterator protocol, and the elements it contains can be accessed <em>sequentially</em>, one at a time. Iterator protocol defines a standard way to produce a sequence of values, and optionally <code>return</code> a value once all possible values have been generated.</p> <p>In order to follow the iterator protocol, an object has to — you guessed it — implement the <strong>iterator interface</strong>. In practice, that once again means that a certain method has to be available somewhere on the object's prototype chain. In this case, it’s the <code>next()</code> method that advances through the elements it contains, one at a time, and returns an object each time that method is called.</p> <p>In order to meet the iterator interface criteria, the returned object must contain two properties with specific keys: one with the key <code>value</code>, representing the value of the current element, and one with the key <code>done</code>, a Boolean value that tells us if the iterator has advanced beyond the final element in the data structure. That’s not an awkward phrasing the editorial team let slip through: the value of that <code>done</code> property is <code>true</code> only when a call to <code>next()</code> results in an attempt to access an element <em>beyond</em> the final element in the iterator, not upon accessing the final element in the iterator. Again, a lot in print, but it’ll make more sense when you see it in action.</p> <p>You’ve seen an example of a built-in iterator before, albeit briefly:</p> <pre><code>const theMap = new Map([ [ "aKey", "A value." ] ]); console.log( theMap.keys() ); // Result: Map Iterator { constructor: Iterator() } </code></pre> <p>That’s right: while a Map object itself is an iterable, Map’s built-in methods <code>keys()</code>, <code>values()</code>, and <code>entries()</code> all return Iterator objects. You’ll also remember that I looped through those using <code>forEach</code> (a relatively recent addition to the language). Used that way, an iterator is indistinguishable from an iterable:</p> <pre><code>const theMap = new Map([ [ "key", "value " ] ]); theMap.keys().forEach( thing => { console.log( thing ); }); // Result: key </code></pre> <p>All iterators are iterable; they all implement the iterable interface:</p> <pre><code>const theMap = new Map([ [ "key", "value " ] ]); theMap.keys()[ Symbol.iterator ]; // Result: function Symbol.iterator() </code></pre> <p>And if you’re angry about the increasing blurriness of the line between iterators and iterables, wait until you get a load of this “top ten anime betrayals” video candidate: I’m going to demonstrate how to interact with an iterator by using an array.</p> <p>“BOO,” you surely cry, having been so betrayed by one of your oldest and most indexed friends. “Array is an itera<em>ble</em>, not an itera<em>tor</em>!” You are both right to yell at me in general, and right about array in specific — an array <em>is</em> an iterable, not an iterator. In fact, while all iterators are iterable, none of the built-in iterables are iterators.</p> <p>However, when you call that <code>[ Symbol.iterator ]()</code> method — the one that defines an object as an iterable — it returns an iterator object created from an iterable data structure:</p> <pre><code>const theIterable = [ true, false ]; const theIterator = theIterable[ Symbol.iterator ](); theIterable; // Result: Array [ true, false ] theIterator; // Result: Array Iterator { constructor: Iterator() } </code></pre> <p>The same goes for Set, Map, and — yes — even strings:</p> <pre><code>const theIterable = "A string." const theIterator = theIterable[ Symbol.iterator ](); theIterator; // Result: String Iterator { constructor: Iterator() } </code></pre> <p>What we’re doing here manually — creating an iterator from an iterable using <code>%Symbol.iterator%</code> — is precisely how iterable objects work internally, and why they have to implement <code>%Symbol.iterator%</code> in order to <em>be</em> iterables. Any time you loop through an array, you’re actually looping through an iterator created from that Array. All built-in iterators <em>are</em> iterable. All built-in iterables can be used to <em>create</em> iterators.</p> <p>Alternately — <em>preferably</em>, even, since it doesn’t require you to graze up against <code>%Symbol.iterator%</code> directly — you can use the built-in <code>Iterator.from()</code> method to create an iterator object from any iterable:</p> <pre><code>const theIterator = Iterator.from([ true, false ]); theIterator; // Result: Array Iterator { constructor: Iterator() } </code></pre> <p>You remember how I mentioned that an iterator has to provide a <code>next()</code> method (that returns a very specific Object)? Calling that <code>next()</code> method steps through the elements that the iterator contains one at a time, with each call returning an instance of that Object:</p> <pre><code>const theIterator = Iterator.from([ 1, 2, 3 ]); theIterator.next(); // Result: Object { value: 1, done: false } theIterator.next(); // Result: Object { value: 2, done: false } theIterator.next(); // Result: Object { value: 3, done: false } theIterator.next(); // Result: Object { value: undefined, done: true } </code></pre> <p>You can think of this as a more controlled form of traversal than the traditional “wind it up and watch it go” <code>for</code> loops you’re probably used to — a method of accessing elements one step at a time, as-needed. Granted, you don’t <em>have</em> to step through an iterator in this way, since they have their very own <code>Iterator.forEach</code> method, which works exactly like you would expect — to a point:</p> <pre><code>const theIterator = Iterator.from([ true, false ]); theIterator.forEach( element => console.log( element ) ); /* Result: true false */ </code></pre> <p>But there’s another big difference between iterables and iterators that we haven’t touched on yet, and for my money, it actually goes a long way toward making <em>linguistic</em> sense of the two. You might need to humor me for a little bit here, though.</p> <p>See, an iterable object is an object that is iterable. No, listen, stay with me: you can iterate over an Array, and when you’re done doing so, you can still iterate over that Array. It is, by definition, an object that can be iterated over; it is the essential nature of an iterable to be iterable:</p> <pre><code>const theIterable = [ 1, 2 ]; theIterable.forEach( el => { console.log( el ); }); /* Result: 1 2 */ theIterable.forEach( el => { console.log( el ); }); /* Result: 1 2 */ </code></pre> <p>In a way, an iterator object represents the singular <em>act</em> of iteration. Internal to an iterable, it is the mechanism by which the iterable is iterated over, each time that iteration is performed. As a stand-alone iterator object — whether you step through it using the <code>next</code> method or loop over its elements using <code>forEach</code> — once iterated over, that iterator is <em>past tense</em>; it is <em>iterated</em>. Because they maintain an internal state, the essential nature of an iterator is to be iterated over, singular:</p> <pre><code>const theIterator = Iterator.from([ 1, 2 ]); theIterator.next(); // Result: Object { value: 1, done: false } theIterator.next(); // Result: Object { value: 2, done: false } theIterator.next(); // Result: Object { value: undefined, done: true } theIterator.forEach( el => console.log( el ) ); // Result: undefined </code></pre> <p>That makes for neat work when you're using the Iterator constructor’s built-in methods to, say, filter or extract part of an Iterator object:</p> <div> <pre><code>const theIterator = Iterator.from([ "First", "Second", "Third" ]); // Take the first two values from <code>theIterator</code>: theIterator.take( 2 ).forEach( el => { console.log( el ); }); /* Result: "First" "Second" */ // theIterator now only contains anything left over after the above operation is complete: theIterator.next(); // Result: Object { value: "Third", done: false } </code></pre> </div> <p>Once you reach the end of an iterator, the act of iterating over it is complete. Iterated. Past-tense.</p> <p>And so too is your time in this lesson, you might be relieved to hear. I know this was kind of a rough one, but the good news is: this course is iterable, not an iterator. This step in your iteration through it — this lesson — may be over, but the essential nature of this course is that you can iterate through it again. Don’t worry about committing all of this to memory right now — you can come back and revisit this lesson anytime.</p> Conclusion <p>I stand by what I wrote there, unsurprising as that probably is: this lesson is a tricky one, but listen, <em>you got this</em>. <a href="https://piccalil.li/javascript-for-everyone">JavaScript for Everyone</a> is designed to take you inside JavaScript’s head. Once you’ve started seeing how the gears mesh — seen the fingerprints left behind by the people who built the language, and the good, bad, and sometimes baffling decisions that went into that — no <em>itera-</em>, whether <em>-ble</em> or <em>-tor</em> will be able to stand in your way.</p> <p><img src="https://files.smashing.media/articles/javascript-for-everyone-iterators/1-javascript-for-everyone.png" /></p> <p>My goal is to teach you the <em>deep magic</em> — the <em>how</em> and the <em>why</em> of JavaScript, using the syntaxes you’re most likely to encounter in your day-to-day work, at your pace and on your terms. If you’re new to the language, you’ll walk away from this course with a foundational understanding of JavaScript worth hundreds of hours of trial-and-error. If you’re a junior developer, you’ll finish this course with a depth of knowledge to rival any senior.</p> <p>I hope to see you there.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/10/javascript-for-everyone-iterators/</span> hello@smashingmagazine.com (Mat Marquis) <![CDATA[Ambient Animations In Web Design: Practical Applications (Part 2)]]> https://smashingmagazine.com/2025/10/ambient-animations-web-design-practical-applications-part2/ https://smashingmagazine.com/2025/10/ambient-animations-web-design-practical-applications-part2/ Wed, 22 Oct 2025 13:00:00 GMT Motion can be tricky: too much distracts, too little feels flat. Ambient animations sit in the middle. They’re subtle, slow-moving details that add atmosphere without stealing the show. In part two of his series, web design pioneer Andy Clarke shows how ambient animations can add personality to any website design. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/10/ambient-animations-web-design-practical-applications-part2/</span> <p>First, a recap:</p> <blockquote>Ambient animations are the kind of passive movements you might not notice at first. However, they bring a design to life in subtle ways. Elements might subtly transition between colours, move slowly, or gradually shift position. Elements can appear and disappear, change size, or they could rotate slowly, adding depth to a brand’s personality.</blockquote> <p>In <a href="https://www.smashingmagazine.com/2025/09/ambient-animations-web-design-principles-implementation/">Part 1</a>, I illustrated the concept of ambient animations by recreating the cover of a Quick Draw McGraw comic book as a CSS/SVG animation. But I know not everyone needs to animate cartoon characters, so in Part 2, I’ll share how ambient animation works in three very different projects: Reuven Herman, Mike Worth, and EPD. Each demonstrates how motion can <strong>enhance brand identity</strong>, <strong>personality</strong>, and <strong>storytelling</strong> without dominating a page.</p> Reuven Herman <p>Los Angeles-based composer Reuven Herman didn’t just want a website to showcase his work. He wanted it to convey his personality and the experience clients have when working with him. Working with musicians is always creatively stimulating: they’re critical, engaged, and full of ideas.</p> <p><img src="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/1-design-reuven-herman.png" /></p> <p>Reuven’s classical and jazz background reminded me of the work of album cover designer <a href="https://stuffandnonsense.co.uk/blog/a-book-for-your-inspiration-collection-alex-steinweiss">Alex Steinweiss</a>.</p> <p><img src="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/2-album-cover-designs-alex-steinweiss.png" /></p> <p>I was inspired by the depth and texture that Alex brought to his designs for over 2,500 unique covers, and I wanted to incorporate his techniques into my illustrations for Reuven.</p> <p><img src="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/3-illustrations-reuven-herman.png" /></p> <p>To bring Reuven’s illustrations to life, I followed a few core ambient animation principles:</p> <ul> <li>Keep animations <strong>slow</strong> and <strong>smooth</strong>.</li> <li><strong>Loop seamlessly</strong> and avoid abrupt changes.</li> <li>Use <strong>layering</strong> to build complexity.</li> <li>Avoid distractions.</li> <li>Consider <strong>accessibility</strong> and <strong>performance</strong>.</li> </ul> <p><img src="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/4-sheet-music-stave-lines-wavy.png" /></p> <p>…followed by their straight state:</p> <p><img src="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/5-sheet-music-stave-lines-straight.png" /></p> <p>The first step in my animation is to morph the stave lines between states. They’re made up of six paths with multi-coloured strokes. I started with the wavy lines:</p> <pre><code><!-- Wavy state --> <g fill="none" stroke-width="2" stroke-linecap="round"> <path id="p1" stroke="#D2AB99" d="[…]"/> <path id="p2" stroke="#BDBEA9" d="[…]"/> <path id="p3" stroke="#E0C852" d="[…]"/> <path id="p4" stroke="#8DB38B" d="[…]"/> <path id="p5" stroke="#43616F" d="[…]"/> <path id="p6" stroke="#A13D63" d="[…]"/> </g> </code></pre> <p>Although <a href="https://www.smashingmagazine.com/2023/10/animate-along-path-css/">CSS now enables animation between path points</a>, the number of points in each state needs to match. <a href="https://gsap.com">GSAP</a> doesn’t have that limitation and can animate between states that have different numbers of points, making it ideal for this type of animation. I defined the new set of straight paths:</p> <pre><code><!-- Straight state --> const Waves = { p1: "[…]", p2: "[…]", p3: "[…]", p4: "[…]", p5: "[…]", p6: "[…]" }; </code></pre> <p>Then, I created a <a href="https://gsap.com/docs/v3/GSAP/Timeline">GSAP timeline</a> that repeats backwards and forwards over six seconds:</p> <pre><code>const waveTimeline = gsap.timeline({ repeat: -1, yoyo: true, defaults: { duration: 6, ease: "sine.inOut" } }); Object.entries(Waves).forEach(([id, d]) => { waveTimeline.to(`#${id}`, { morphSVG: d }, 0); }); </code></pre> <p><strong>Another ambient animation principle is to use layering to build complexity.</strong> Think of it like building a sound mix. You want variation in rhythm, tone, and timing. In my animation, three rows of musical notes move at different speeds:</p> <pre><code><path id="notes-row-1"/> <path id="notes-row-2"/> <path id="notes-row-3"/> </code></pre> <p><img src="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/6-three-rows-musical-notes.png" /></p> <p>The duration of each row’s animation is also defined using GSAP, from <code>100</code> to <code>400</code> seconds to give the overall animation a parallax-style effect:</p> <pre><code>const noteRows = [ { id: "#notes-row-1", duration: 300, y: 100 }, // slowest { id: "#notes-row-2", duration: 200, y: 250 }, // medium { id: "#notes-row-3", duration: 100, y: 400 } // fastest ]; […] </code></pre> <p><img src="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/7-animated-shadow.png" /></p> <p>The next layer contains a shadow cast by the piano keys, which slowly rotates around its centre:</p> <pre><code>gsap.to("shadow", { y: -10, rotation: -2, transformOrigin: "50% 50%", duration: 3, ease: "sine.inOut", yoyo: true, repeat: -1 }); </code></pre> <p><img src="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/8-animated-piano-keys.png" /></p> <p>And finally, the piano keys themselves, which rotate at the same time but in the opposite direction to the shadow:</p> <pre><code>gsap.to("#g3-keys", { y: 10, rotation: 2, transformOrigin: "50% 50%", duration: 3, ease: "sine.inOut", yoyo: true, repeat: -1 }); </code></pre> <p>The complete animation can be viewed <a href="https://stuffandnonsense.co.uk/lab/ambient-animations.html">in my lab</a>. By layering motion thoughtfully, the site feels alive without ever dominating the content, which is a perfect match for Reuven’s energy.</p> Mike Worth <p>As I mentioned earlier, not everyone needs to animate cartoon characters, but I do occasionally. Mike Worth is an Emmy award-winning film, video game, and TV composer who asked me to design his website. For the project, I created and illustrated the character of orangutan adventurer Orango Jones.</p> <p><img src="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/9-design-mike-worth.png" /></p> <p>Orango proved to be the perfect subject for ambient animations and features on every page of Mike’s website. He takes the reader on an adventure, and along the way, they get to experience Mike’s music.</p> <p><img src="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/10-illustration-mike-worth.png" /></p> <p>For Mike’s “About” page, I wanted to combine ambient animations with interactions. Orango is in a cave where he has found a stone tablet with faint markings that serve as a navigation aid to elsewhere on Mike’s website. The illustration contains a hidden feature, an easter egg, as when someone presses Orango’s magnifying glass, moving shafts of light stream into the cave and onto the tablet.</p> <p><img src="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/11-cave-background.png" /></p> <p>I also added an anchor around a hidden circle, which I positioned over Orango’s magnifying glass, as a large tap target to toggle the light shafts on and off by changing the <code>data-lights</code> value on the SVG:</p> <div> <pre><code><a href="javascript:void(0);" id="light-switch" title="Lights on/off"> <circle cx="700" cy="1000" r="100" opacity="0" /> </a> </code></pre> </div> <p><img src="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/12-orango-isolated.png" /></p> <p>Then, I added two descendant selectors to my CSS, which adjust the opacity of the light shafts depending on the <code>data-lights</code> value:</p> <pre><code>[data-lights="lights-off"] .light-shaft { opacity: .05; transition: opacity .25s linear; } [data-lights="lights-on"] .light-shaft { opacity: .25; transition: opacity .25s linear; } </code></pre> <p>A slow and subtle rotation adds natural movement to the light shafts:</p> <pre><code>@keyframes shaft-rotate { 0% { rotate: 2deg; } 50% { rotate: -2deg; } 100% { rotate: 2deg; } } </code></pre> <p>Which is only visible when the light toggle is active:</p> <pre><code>[data-lights="lights-on"] .light-shaft { animation: shaft-rotate 20s infinite; transform-origin: 100% 0; } </code></pre> <p><img src="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/13-light-shafts-isolated.png" /></p> <p>When developing any ambient animation, considering performance is crucial, as even though CSS animations are lightweight, features like blur filters and drop shadows can still strain lower-powered devices. It’s also critical to consider accessibility, so <a href="https://www.smashingmagazine.com/2021/10/respecting-users-motion-preferences/">respect someone’s <code>prefers-reduced-motion</code> preferences</a>:</p> <pre><code>@media screen and (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; } } </code></pre> <p>When an animation feature is purely decorative, consider adding <code>aria-hidden="true"</code> to keep it from cluttering up the accessibility tree:</p> <pre><code><a href="javascript:void(0);" id="light-switch" aria-hidden="true"> […] </a> </code></pre> <p>With Mike’s Orango Jones, ambient animation shifts from subtle atmosphere to playful storytelling. Light shafts and soft interactions weave narrative into the design without stealing focus, proving that animation can support both brand identity and user experience. See this animation <a href="https://stuffandnonsense.co.uk/lab/ambient-animations.html">in my lab</a>.</p> EPD <p>Moving away from composers, EPD is a property investment company. They commissioned me to design creative concepts for a new website. A quick search for property investment companies will usually leave you feeling underwhelmed by their interchangeable website designs. They include full-width banners with faded stock photos of generic city skylines or ethnically diverse people shaking hands.</p> <p>For EPD, I wanted to develop a distinctive visual style that the company could own, so I proposed graphic, stylised skylines that reflect both EPD’s brand and its global portfolio. I made them using various-sized circles that recall the company’s logo mark.</p> <p><img src="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/14-design-epd.png" /></p> <p>The point of an ambient animation is that it doesn’t dominate. It’s a background element and not a call to action. If someone’s eyes are drawn to it, it’s probably too much, so I dial back the animation until it feels like something you’d only catch if you’re really looking. I created three skyline designs, including Dubai, London, and Manchester.</p> <p><img src="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/15-design-manchester-london.png" /></p> <p>In each of these ambient animations, the wheels rotate and the large circles change colour at random intervals.</p> <p><img src="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/16-manchester-illustration-base-layer.png" /></p> <p>Next, I exported a layer containing the <code>circle</code> elements I want to change colour.</p> <pre><code><g id="banner-dots"> <circle class="data-theme-fill" […]/> <circle class="data-theme-fill" […]/> <circle class="data-theme-fill" […]/> […] </g> </code></pre> <p><img src="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/17-circles-manchester-illustration.png" /></p> <p>Once again, I used GSAP to select groups of circles that flicker like lights across the skyline:</p> <div> <pre><code>function animateRandomDots() { const circles = gsap.utils.toArray("#banner-dots circle") const numberToAnimate = gsap.utils.random(3, 6, 1) const selected = gsap.utils.shuffle(circles).slice(0, numberToAnimate) } </code></pre> </div> <p>Then, at two-second intervals, the <code>fill</code> colour of those circles changes from the teal accent to the same off-white colour as the rest of my illustration:</p> <pre><code>gsap.to(selected, { fill: "color(display-p3 .439 .761 .733)", duration: 0.3, stagger: 0.05, onComplete: () => { gsap.to(selected, { fill: "color(display-p3 .949 .949 .949)", duration: 0.5, delay: 2 }) } }) gsap.delayedCall(gsap.utils.random(1, 3), animateRandomDots) } animateRandomDots() </code></pre> <p>The result is a skyline that gently flickers, as if the city itself is alive. Finally, I rotated the wheel. Here, there was no need to use GSAP as this is possible using CSS <code>rotate</code> alone:</p> <div> <pre><code><g id="banner-wheel"> <path stroke="#F2F2F2" stroke-linecap="round" stroke-width="4" d="[…]"/> <path fill="#D8F76E" d="[…]"/> </g> </code></pre> </div> <p><img src="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/18-rotating-wheel-manchester-illustration.png" /></p> <pre><code> #banner-wheel { transform-box: fill-box; transform-origin: 50% 50%; animation: rotateWheel 30s linear infinite; } @keyframes rotateWheel { to { transform: rotate(360deg); } } </code></pre> <p>CSS animations are lightweight and ideal for simple, repetitive effects, like fades and rotations. They’re easy to implement and don’t require libraries. GSAP, on the other hand, offers far more control as it can handle path morphing and sequence timelines. The choice of which to use depends on whether I need the <strong>precision of GSAP</strong> or the <strong>simplicity of CSS</strong>.</p> <p>By keeping the wheel turning and the circles glowing, the skyline animations stay in the background yet give the design a distinctive feel. They avoid stock photo clichés while reinforcing EPD’s brand identity and are proof that, even in a conservative sector like property investment, ambient animation can add atmosphere without detracting from the message.</p> Wrapping up <p>From Reuven’s musical textures to Mike’s narrative-driven Orango Jones and EPD’s glowing skylines, these projects show how <strong>ambient animation</strong> adapts to context. Sometimes it’s purely atmospheric, like drifting notes or rotating wheels; other times, it blends seamlessly with interaction, rewarding curiosity without getting in the way. </p> <p>Whether it echoes a composer’s improvisation, serves as a playful narrative device, or adds subtle distinction to a conservative industry, the same principles hold true:</p> <p>Keep motion slow, seamless, and purposeful so that it enhances, rather than distracts from, the design.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/10/ambient-animations-web-design-practical-applications-part2/</span> hello@smashingmagazine.com (Andy Clarke) <![CDATA[AI In UX: Achieve More With Less]]> https://smashingmagazine.com/2025/10/ai-ux-achieve-more-with-less/ https://smashingmagazine.com/2025/10/ai-ux-achieve-more-with-less/ Fri, 17 Oct 2025 08:00:00 GMT A simple but powerful mental model for working with AI: treat it like an enthusiastic intern with no real-world experience. Paul Boag shares lessons learned from real client projects across user research, design, development, and content creation. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/10/ai-ux-achieve-more-with-less/</span> <p>I have made a lot of mistakes with AI over the past couple of years. I have wasted hours trying to get it to do things it simply cannot do. I have fed it terrible prompts and received terrible output. And I have definitely spent more time fighting with it than I care to admit.</p> <p>But I have also discovered that when you stop treating AI like magic and start treating it like what it actually is (a very enthusiastic intern with zero life experience), things start to make more sense.</p> <p>Let me share what I have learned from working with AI on real client projects across user research, design, development, and content creation.</p> How To Work With AI <p>Here is the mental model that has been most helpful for me. Treat AI like an <strong>intern with zero experience</strong>.</p> <p>An intern fresh out of university has lots of enthusiasm and qualifications, but no real-world experience. You would not trust them to do anything unsupervised. You would explain tasks in detail. You would expect to review their work multiple times. You would give feedback and ask them to try again.</p> <p>This is exactly how you should work with AI.</p> <h3>The Basics Of Prompting</h3> <p>I am not going to pretend to be an expert. I have just spent way too much time playing with this stuff because I like anything shiny and new. But here is what works for me.</p> <ul> <li><strong>Define the role.</strong><br />Start with something like <em>“Act as a user researcher”</em> or <em>“Act as a copywriter.”</em> This gives the AI context for how to respond.</li> <li><strong>Break it into steps.</strong><br />Do not just say <em>“Analyze these interview transcripts.”</em> Instead, say <em>“I want you to complete the following steps. One, identify recurring themes. Two, look for questions users are trying to answer. Three, note any objections that come up. Four, output a summary of each.”</em></li> <li><strong>Define success.</strong><br />Tell it what good looks like. <em>“I am looking for a report that gives a clear indication of recurring themes and questions in a format I can send to stakeholders. Do not use research terminology because they will not understand it.”</em></li> <li><strong>Make it think.</strong><br />Tell it to think deeply about its approach before responding. Get it to create a way to test for success (known as a rubric) and iterate on its work until it passes that test.</li> </ul> <p>Here is a real prompt I use for online research:</p> <blockquote>Act as a user researcher. I would like you to carry out deep research online into [brand name]. In particular, I would like you to focus on what people are saying about the brand, what the overall sentiment is, what questions people have, and what objections people mention. The goal is to create a detailed report that helps me better understand the brand perception.<br /><br />Think deeply about your approach before carrying out the research. Create a rubric for the report to ensure it is as useful as possible. Keep iterating until the report scores extremely high on the rubric. Only then, output the report.</blockquote> <p>That second paragraph (the bit about thinking deeply and creating a rubric), I basically copy and paste into everything now. It is a universal way to get better output.</p> <h3>Learn When To Trust It</h3> <p>You should never fully trust AI. Just like you would never fully trust an intern you have only just met.</p> <p>To begin with, double-check absolutely everything. Over time, you will get a sense of when it is losing its way. You will spot the patterns. You will know when to start a fresh conversation because the current one has gone off the rails.</p> <p>But even after months of working with it daily, I still check its work. I still challenge it. I still make it <strong>cite sources</strong> and <strong>explain its reasoning</strong>.</p> <p>The key is that even with all that checking, it is still faster than doing it yourself. Much faster.</p> Using AI For User Research <p>This is where AI has genuinely transformed my work. I use it constantly for five main things.</p> <h3>Online Research</h3> <p>I love AI for this. I can ask it to go and research a brand online. What people are saying about it, what questions they have, what they like, and what frustrates them. Then do the same for competitors and compare.</p> <p>This would have taken me days of trawling through social media and review sites. Now it takes minutes.</p> <p>I recently did this for an e-commerce client. I wanted to understand what annoyed people about the brand and what they loved. I got detailed insights that shaped the entire conversion optimization strategy. All from one prompt.</p> <h3>Analyzing Interviews And Surveys</h3> <p>I used to avoid open-ended questions in surveys. They were such a pain to review. Now I use them all the time because AI can analyze hundreds of text responses in seconds.</p> <p>For interviews, I upload the transcripts and ask it to identify recurring themes, questions, and requests. I always get it to quote directly from the transcripts so I can verify it is not making things up.</p> <p>The quality is good. Really good. As long as you give it <strong>clear instructions</strong> about what you want.</p> <h3>Making Sense Of Data</h3> <p>I am terrible with spreadsheets. Put me in front of a person and I can understand them. Put me in front of data, and my eyes glaze over.</p> <p>AI has changed that. I upload spreadsheets to ChatGPT and just ask questions. <em>“What patterns do you see?”</em> <em>“Can you reformat this?”</em> <em>“Show me this data in a different way.”</em></p> <p><a href="https://clarity.microsoft.com/">Microsoft Clarity</a> now has Copilot built in, so you can ask it questions about your analytics data. <a href="https://www.triplewhale.com/">Triple Whale</a> does the same for e-commerce sites. These tools are game changers if you struggle with data like I do.</p> <p><img src="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/1-microsoft-clarity.png" /></p> <h3>Research Projects</h3> <p>This is probably my favorite technique. In ChatGPT and Claude, you can create projects. In other tools, they are called spaces. Think of them as self-contained folders where everything you put in is available to every conversation in that project.</p> <p>When I start working with a new client, I create a project and throw everything in. Old user research. Personas. Survey results. Interview transcripts. Documentation. Background information. Site copy. Anything I can find.</p> <p>Then I give it custom instructions. Here is one I use for my own business:</p> <blockquote>Act as a business consultant and marketing strategy expert with good copywriting skills. Your role is to help me define the future of my <a href="https://boagworld.com/l/ux-consultant/">UX consultant business</a> and better articulate it, especially via my website. When I ask for your help, ask questions to improve your answers and challenge my assumptions where appropriate.</blockquote> <p>I have even uploaded a virtual board of advisors (people I wish I had on my board) and asked AI to research how they think and respond as they would.</p> <p>Now I have this project that knows everything about my business. I can ask it questions. Get it to review my work. <strong>Challenge my thinking.</strong> It is like having a co-worker who never gets tired and has a perfect memory.</p> <p>I do this for every client project now. It is invaluable.</p> <h3>Creating Personas</h3> <p>AI has reinvigorated my interest in personas. I had lost heart in them a bit. They took too long to create, and clients always said they already had marketing personas and did not want to pay to do them again.</p> <p>Now I can create what I call <a href="https://www.smashingmagazine.com/2025/09/functional-personas-ai-lean-practical-workflow/">functional personas</a>. Personas that are actually useful to people who work in UX. Not marketing fluff about what brands people like, but real information about what questions they have and what tasks they are trying to complete.</p> <p>I upload all my research to a project and say:</p> <blockquote>Act as a user researcher. Create a persona for [audience type]. For this persona, research the following information: questions they have, tasks they want to complete, goals, states of mind, influences, and success metrics. It is vital that all six criteria are addressed in depth and with equal vigor.</blockquote> <p>The output is really good. Detailed. Useful. Based on actual data rather than pulled out of thin air.</p> <p><img src="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/2-ai-creating-personas.png" /></p> <p>Here is my challenge to anyone who thinks AI-generated personas are somehow fake. What makes you think your personas are so much better? Every persona is a story of a <strong>hypothetical user</strong>. You make judgment calls when you create personas, too. At least AI can process far more information than you can and is brilliant at pattern recognition.</p> <p>My only concern is that relying too heavily on AI could disconnect us from real users. We still need to talk to people. We still need that empathy. But as a tool to synthesize research and create reference points? It is excellent.</p> Using AI For Design And Development <p>Let me start with a warning. AI is not production-ready. Not yet. Not for the kind of client work I do, anyway.</p> <p>Three reasons why:</p> <ol> <li>It is slow if you want something specific or complicated.</li> <li>It can be frustrating because it gets close but not quite there.</li> <li>And the quality is often subpar. Unpolished code, questionable design choices, that kind of thing.</li> </ol> <p>But that does not mean it is not useful. It absolutely is. Just not for final production work.</p> <h3>Functional Prototypes</h3> <p>If you are not too concerned with matching a specific design, AI can quickly prototype functionality in ways that are hard to match in Figma. Because Figma is terrible at prototyping functionality. You cannot even create an active form field in a Figma prototype. It’s the biggest thing people do online other than click links — and you cannot test it.</p> <p>Tools like <a href="https://www.relume.io/">Relume</a> and <a href="https://bolt.new/">Bolt</a> can create quick functional mockups that show roughly how things work. They are great for non-designers who just need to throw together a prototype quickly. For designers, they can be useful for showing developers how you want something to work.</p> <p>But you can spend ages getting them to put a hamburger menu on the right side of the screen. So use them for quick iteration, not pixel-perfect design.</p> <h3>Small Coding Tasks</h3> <p>I use AI constantly for small, low-risk coding work. I am not a developer anymore. I used to be, back when dinosaurs roamed the earth, but not for years.</p> <p>AI lets me create the little tools I need. <a href="https://boagworld.com/boagworks/convince-the-boss/">A calculator that calculates the ROI of my UX work</a>. An app for running top task analysis. Bits of JavaScript for hiding elements on a page. WordPress plugins for updating dates automatically.</p> <p><img src="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/3-bolt-tool.png" /></p> <p>Just before running my workshop on this topic, I needed a tool to create calendar invites for multiple events. All the online services wanted £16 a month. I asked ChatGPT to build me one. One prompt. It worked. It looked rubbish, but I did not care. It did what I needed.</p> <p>If you are a developer, you should absolutely be using tools like <a href="https://cursor.com/">Cursor</a> by now. They are invaluable for pair programming with AI. But if you are not a developer, just stick with Claude or Bolt for quick throwaway tools.</p> <h3>Reviewing Existing Services</h3> <p>There are some great tools for getting quick feedback on existing websites when budget and time are tight.</p> <p>If you need to conduct a <a href="https://boagworld.com/l/ux-audit/">UX audit</a>, <a href="https://wevo.ai/takeapulse/">Wevo Pulse</a> is an excellent starting point. It automatically reviews a website based on personas and provides visual attention heatmaps, friction scores, and specific improvement recommendations. It generates insights in minutes rather than days.</p> <p>Now, let me be clear. This does not replace having an experienced person conduct a proper UX audit. You still need that human expertise to understand context, make judgment calls, and spot issues that AI might miss. But as a starting point to identify obvious problems quickly? It is a great tool. Particularly when budget or time constraints mean a full audit is not on the table.</p> <p>For e-commerce sites, <a href="https://baymard.com/product/ux-ray">Baymard has UX Ray</a>, which analyzes flaws based on their massive database of user research.</p> <p><img src="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/4-baymard-ux-ray.png" /></p> <h3>Checking Your Designs</h3> <p><a href="https://attentioninsight.com/">Attention Insight</a> has taken thousands of hours of eye-tracking studies and trained AI on it to predict where people will look on a page. It has about 90 to 96 percent accuracy.</p> <p>You upload a screenshot of your design, and it shows you where attention is going. Then you can play around with your imagery and layout to guide attention to the right place.</p> <p>It is great for dealing with stakeholders who say, <em>“People won’t see that.”</em> You can prove they will. Or equally, when stakeholders try to crowd the interface with too much stuff, you can show them attention shooting everywhere.</p> <p>I use this constantly. Here is a real example from a pet insurance company. They had photos of a dog, cat, and rabbit for different types of advice. The dog was far from the camera. The cat was looking directly at the camera, pulling all the attention. The rabbit was half off-frame. Most attention went to the cat’s face.</p> <p><img src="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/5-attention-insight.png" /></p> <p>I redesigned it using AI-generated images, where I could control exactly where each animal looked. Dog looking at the camera. Cat looking right. Rabbit looking left. All the attention drawn into the center. Made a massive difference.</p> <p><img src="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/6-redesigned-ai-version.png" /></p> <h3>Creating The Perfect Image</h3> <p>I use AI all the time for creating images that do a specific job. My preferred tools are <a href="https://www.midjourney.com/">Midjourney</a> and Gemini.</p> <p>I like Midjourney because, visually, it creates stunning imagery. You can dial in the tone and style you want. The downside is that it is not great at following specific instructions.</p> <p>So I produce an image in Midjourney that is close, then upload it to Gemini. Gemini is not as good at visual style, but it is much better at following instructions. <em>“Make the guy reach here”</em> or <em>“Add glasses to this person.”</em> I can get pretty much exactly what I want.</p> <p>The other thing I love about Midjourney is that you can upload a photograph and say, <em>“Replicate this style.”</em> This keeps <strong>consistency</strong> across a website. I have a master image I use as a reference for all my site imagery to keep the style consistent.</p> Using AI For Content <p>Most clients give you terrible copy. Our job is to improve the user experience or conversion rate, and anything we do gets utterly undermined by bad copy.</p> <p>I have completely stopped asking clients for copy since AI came along. Here is my process.</p> <h3>Build Everything Around Questions</h3> <p>Once I have my information architecture, I get AI to generate a massive list of questions users will ask. Then I run a <a href="https://www.smashingmagazine.com/2022/05/top-tasks-focus-what-matters-must-defocus-what-doesnt/">top task analysis</a> where people vote on which questions matter most.</p> <p>I assign those questions to pages on the site. Every page gets a list of the questions it needs to answer.</p> <h3>Get Bullet Point Answers From Stakeholders</h3> <p>I spin up the content management system with a really basic theme. Just HTML with very basic formatting. I go through every page and assign the questions.</p> <p>Then I go to my clients and say: <em>“I do not want you to write copy. Just go through every page and bullet point answers to the questions. If the answer exists on the old site, copy and paste some text or link to it. But just bullet points.”</em></p> <p>That is their job done. Pretty much.</p> <h3>Let AI Draft The Copy</h3> <p>Now I take control. I feed ChatGPT the questions and bullet points and say:</p> <blockquote>Act as an online copywriter. Write copy for a webpage that answers the question [question]. Use the following bullet points to answer that question: [bullet points]. Use the following guidelines: Aim for a ninth-grade reading level or below. Sentences should be short. Use plain language. Avoid jargon. Refer to the reader as you. Refer to the writer as us. Ensure the tone is friendly, approachable, and reassuring. The goal is to [goal]. Think deeply about your approach. Create a rubric and iterate until the copy is excellent. Only then, output it.</blockquote> <p>I often upload a full style guide as well, with details about how I want it to be written.</p> <p>The output is genuinely good. As a first draft, it is excellent. Far better than what most stakeholders would give me.</p> <h3>Stakeholders Review And Provide Feedback</h3> <p>That goes into the website, and stakeholders can comment on it. Once I get their feedback, I take the original copy and all their comments back into ChatGPT and say, <em>“Rewrite using these comments.”</em></p> <p>Job done.</p> <p>The great thing about this approach is that even if stakeholders make loads of changes, they are making changes to a good foundation. The overall quality still comes out better than if they started with a blank sheet.</p> <p>It also makes things go smoother because you are not criticizing their content, where they get defensive. They are criticizing AI content.</p> <h3>Tools That Help</h3> <p>If your stakeholders are still giving you content, <a href="https://hemingwayapp.com/">Hemingway Editor</a> is brilliant. Copy and paste text in, and it tells you how readable and scannable it is. It highlights long sentences and jargon. You can use this to prove to clients that their content is not good web copy.</p> <p><img src="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/7-hemingway-editor.png" /></p> <p>If you pay for the pro version, you get AI tools that will rewrite the copy to be more readable. It is excellent.</p> What This Means for You <p>Let me be clear about something. None of this is perfect. AI makes mistakes. It hallucinates. It produces bland output if you do not push it hard enough. It requires constant checking and challenging.</p> <p>But here is what I know from two years of using this stuff daily. It has made me <strong>faster</strong>. It has made me <strong>better</strong>. It has freed me up to do <strong>more strategic thinking</strong> and <strong>less grunt work</strong>.</p> <p>A report that would have taken me five days now takes three hours. That is not an exaggeration. That is real.</p> <p>Overall, AI probably gives me a 25 to 33 percent increase in what I can do. That is significant.</p> <p>Your value as a UX professional lies in your ideas, your questions, and your thinking. Not your ability to use Figma. Not your ability to manually review transcripts. Not your ability to write reports from scratch.</p> <p>AI cannot innovate. It cannot make creative leaps. It cannot know whether its output is good. It cannot understand what it is like to be human.</p> <p>That is where you come in. That is where you will always come in.</p> <p>Start small. Do not try to learn everything at once. Just ask yourself throughout your day: Could I do this with AI? Try it. See what happens. Double-check everything. Learn what works and what does not.</p> <p>Treat it like an enthusiastic intern with zero life experience. Give it clear instructions. Check its work. Make it try again. Challenge it. Push it further.</p> <p>And remember, it is not going to take your job. It is going to change it. For the better, I think. As long as we learn to work with it rather than against it.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/10/ai-ux-achieve-more-with-less/</span> hello@smashingmagazine.com (Paul Boag) <![CDATA[How To Make Your UX Research Hard To Ignore]]> https://smashingmagazine.com/2025/10/how-make-ux-research-hard-to-ignore/ https://smashingmagazine.com/2025/10/how-make-ux-research-hard-to-ignore/ Thu, 16 Oct 2025 13:00:00 GMT Research isn’t everything. Facts alone don’t win arguments, but powerful stories do. Here’s how to turn your research into narratives that inspire trust and influence decisions. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/10/how-make-ux-research-hard-to-ignore/</span> <p>In the early days of my career, I believed that nothing <strong>wins an argument</strong> more effectively than strong and unbiased research. Surely facts speak for themselves, I thought.</p> <p>If I just get enough data, just enough evidence, just enough clarity on where users struggle — well, once I have it all and I present it all, it alone will surely change people’s minds, hearts, and beliefs. And, most importantly, it will help everyone see, understand, and perhaps even appreciate and commit to <strong>what needs to be done</strong>.</p> <p>Well, it’s not quite like that. In fact, the stronger and louder the data, the more likely it is to be <strong>questioned</strong>. And there is a good reason for that, which is often left between the lines.</p> Research Amplifies Internal Flaws <p>Throughout the years, I’ve often seen data speaking volumes about where the business is failing, where customers are struggling, where the team is faltering — and where an <strong>urgent turnaround</strong> is necessary. It was right there, in plain sight: clear, loud, and obvious.</p> <p><img src="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/1-illustration-jose-torre.jpg" /></p> <p>But because it’s so clear, it reflects back, often amplifying all the sharp edges and all the cut corners in all the wrong places. It reflects internal flaws, <strong>wrong assumptions</strong>, and failing projects — some of them signed off years ago, with secured budgets, big promotions, and approved headcounts. Questioning them means <strong>questioning authority</strong>, and often it’s a tough path to take.</p> <p>As it turns out, strong data is very, very good at raising <strong>uncomfortable truths</strong> that most companies don’t really want to acknowledge. That’s why, at times, research is deemed “unnecessary,” or why we don’t get access to users, or why <strong>loud voices</strong> always win big arguments.</p> <p><img src="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/2-ux-research-b2b.jpg" /></p> <p>So even if data is presented with a lot of eagerness, gravity, and passion in that big meeting, it will get questioned, doubted, and explained away. Not because of its flaws, but because of hope, reluctance to change, and layers of <strong>internal politics</strong>.</p> <p>This shows up most vividly in situations when someone raises concerns about the <strong>validity and accuracy</strong> of research. Frankly, it’s not that somebody is wrong and somebody is right. Both parties just happen to be <strong>right in a different way</strong>.</p> What To Do When Data Disagrees <p>We’ve all heard that data always tells a story. However, it’s <strong>never just a single story</strong>. People are complex, and pointing out a specific truth about them just by looking at numbers is rarely enough.</p> <p>When data disagrees, it doesn’t mean that either is wrong. It’s just that <strong>different perspectives</strong> reveal different parts of a whole story that isn’t completed yet.</p> <p><img src="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/3-qual-quant-data.jpg" /></p> <p>In digital products, most stories have <strong>2 sides</strong>:</p> <ul> <li><strong>Quantitative data</strong> ← What/When: behavior patterns at scale.</li> <li><strong>Qualitative data</strong> ← Why/How: user needs and motivations.</li> <li>↳ Quant usually comes from analytics, surveys, and experiments.</li> <li>↳ Qual comes from tests, observations, and open-ended surveys.</li> </ul> <p>Risk-averse teams overestimate the <strong>weight of big numbers</strong> in quantitative research. Users exaggerate the frequency and severity of issues that are critical for them. As Archana Shah <a href="https://medium.com/lexisnexis-design/what-to-do-when-qual-and-quant-disagree-18a535164ca6">noted</a>, designers get carried away by users’ <strong>confident responses</strong> and often overestimate what people say and do.</p> <p>And so, eventually, data coming from different teams paints a different picture. And when it happens, we need to <strong>reconcile and triangulate</strong>. With the former, we track what’s missing, omitted, or overlooked. With the latter, we <strong>cross-validate data</strong> — e.g., finding pairings of qual/quant streams of data, then clustering them together to see what’s there and what’s missing, and exploring from there.</p> <p>And even with all of it in place and data conflicts resolved, we still need to do one more thing to make a strong argument: we need to tell a <strong>damn good story</strong>.</p> Facts Don’t Win Arguments, Stories Do <p>Research isn’t everything. <a href="https://www.linkedin.com/posts/erikahall_tapping-the-sign-again-every-time-i-see-activity-7360805865051865090-uldg">Facts don’t win arguments</a> — <strong>powerful stories do</strong>. But a story that starts with a spreadsheet isn’t always inspiring or effective. Perhaps it brings a problem into the spotlight, but it doesn’t lead to a resolution.</p> <p><img src="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/4-illustration-jose-torre.png" /></p> <p>The very first thing I try to do in that big boardroom meeting is to emphasize <strong>what unites us</strong> — shared goals, principles, and commitments that are relevant to the topic at hand. Then, I show how new data <strong>confirms or confronts</strong> our commitments, with specific problems we believe we need to address.</p> <p>When a question about the quality of data comes in, I need to show that it has been <strong>reconciled and triangulated</strong> already and discussed with other teams as well.</p> <p>A good story has a poignant ending. People need to see an <strong>alternative future</strong> to trust and accept the data — and a clear and safe path forward to commit to it. So I always try to present options and solutions that we believe will drive change and explain our decision-making behind that.</p> <p><img src="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/5-art-interviewing-stakeholders.png" /></p> <p>They also need to believe that this distant future is <strong>within reach</strong>, and that they can pull it off, albeit under a tough timeline or with limited resources.</p> <p>And: a good story also presents a viable, compelling, <strong>shared goal</strong> that people can rally around and commit to. Ideally, it’s something that has a direct benefit for them and their teams.</p> <p>These are the ingredients of the story that I always try to keep in my mind when working on that big presentation. And in fact, data is a <strong>starting point</strong>, but it does need a story wrapped around it to be effective.</p> Wrapping Up <p>There is nothing more disappointing than finding a real problem that real people struggle with and facing the harsh reality of research <strong>not being trusted</strong> or valued.</p> <p>We’ve all been there before. The best thing you can do is to <strong>be prepared</strong>: have strong data to back you up, include both quantitative and qualitative research — preferably with video clips from real customers — but also paint a <strong>viable future</strong> which seems within reach.</p> <p>And sometimes nothing changes until <strong>something breaks</strong>. And at times, there isn’t much you can do about it unless you are prepared when it happens.</p> <blockquote>“Data doesn’t change minds, and facts don’t settle fights. Having answers isn’t the same as learning, and it for sure isn’t the same as making evidence-based decisions.”<br /><br />— Erika Hall</blockquote> Meet “How To Measure UX And Design Impact” <p>You can find more details on <strong>UX Research</strong> in <a href="https://measure-ux.com/"><strong>Measure UX & Design Impact</strong></a> (8h), a practical guide for designers and UX leads to measure and show your UX impact on business. Use the code 🎟 <code>IMPACT</code> to save 20% off today. <a href="https://measure-ux.com/">Jump to the details</a>.</p> <a href="https://measure-ux.com/"> <img src="https://files.smashing.media/articles/ux-metrics-video-course-release/measure-ux-and-design-impact-course.png" /> </a> <div><div><ul><li><a href="#"> Video + UX Training</a></li><li><a href="#">Video only</a></li></ul><div><h3>Video + UX Training</h3>$ 495.00 $ 799.00 <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3081832?price_id=3951439"> Get Video + UX Training<div></div></a><p>25 video lessons (8h) + <a href="https://smashingconf.com/online-workshops/workshops/vitaly-friedman-impact-design/">Live UX Training</a>.<br />100 days money-back-guarantee.</p></div><div><h3>Video only</h3><div>$ 250.00$ 395.00</div> <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3081832?price_id=3950630"> Get the video course<div></div></a><p>25 video lessons (8h). Updated yearly.<br />Also available as a <a href="https://smart-interface-design-patterns.thinkific.com/enroll/3082557?price_id=3951421">UX Bundle with 2 video courses.</a></p></div></div></div> Useful Resources <ul> <li>“<a href="https://www.dscout.com/people-nerds/present-research-for-stakeholders-tips">How to Present Research So Stakeholders Sit Up and Take Action</a>”, by Nikki Anderson</li> <li>“<a href="https://medium.com/lexisnexis-design/what-to-do-when-qual-and-quant-disagree-18a535164ca6">What To Do When Data Disagrees</a>”, by Subhasree Chatterjee, Archana Shah, Sanket Shukl, and Jason Bressler</li> <li>“<a href="https://medium.com/shopify-ux/how-to-use-mixed-method-research-to-drive-product-decisions-7ff023e5b107">Mixed-Method UX Research</a>”, by Raschin Fatemi</li> <li>“<a href="https://medium.com/@jwill7378/confidently-step-into-mixed-method-ux-research-a-step-by-step-framework-for-mixed-method-research-98f4284b8ebe">A Step-by-Step Framework For Mixed-Method Research</a>”, by Jeremy Williams</li> <li>“<a href="https://dscout.com/people-nerds/mixed-methods-research">The Ultimate Guide To Mixed Methods</a>”, by Ben Wiedmaier</li> <li><a href="https://www.linkedin.com/posts/vitalyfriedman_ux-surveys-activity-7222861773375180800-O0c0">Survey Design Cheatsheet</a>, by yours truly</li> <li><a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-research-activity-7227973209839538177-P3iV">Useful Calculators For UX Research</a>, by yours truly</li> <li><a href="https://vimeo.com/188285898?fl=pl&fe=vl">Beyond Measure</a>, by Erika Hall</li> </ul> <p><strong>Useful Books</strong></p> <ul> <li><em>Just Enough Research</em>, by Erika Hall</li> <li><em>Designing Surveys That Work</em>, by Caroline Jarrett</li> <li><em>Designing Quality Survey Questions</em>, by Sheila B. Robinson</li> </ul> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/10/how-make-ux-research-hard-to-ignore/</span> hello@smashingmagazine.com (Vitaly Friedman) <![CDATA[The Grayscale Problem]]> https://smashingmagazine.com/2025/10/the-grayscale-problem/ https://smashingmagazine.com/2025/10/the-grayscale-problem/ Mon, 13 Oct 2025 10:00:00 GMT From A/B tests to AI slop, the modern web is bleeding out its colour. Standardized, templated, and overoptimized, it’s starting to feel like a digital Levittown. But it doesn’t have to be. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/10/the-grayscale-problem/</span> <p>Last year, a study found that <a href="https://www.forbes.com/sites/kbrauer/2024/07/16/where-have-all-the-colorful-cars-gone-study-shows-them-vanishing/">cars are steadily getting less colourful</a>. In the US, around 80% of cars are now black, white, gray, or silver, up from 60% in 2004. This trend has been attributed to cost savings and consumer preferences. Whatever the reasons, the result is hard to deny: a big part of daily life isn’t as colourful as it used to be.</p> <p><img src="https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png" /></p> <p>The colourfulness of mass consumer products is hardly the bellwether for how vibrant life is as a whole, but the study captures a trend a lot of us recognise — offline and on. From colour to design to public discourse, a lot of life is getting less varied, more grayscale. </p> <p><img src="https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png" /></p> <p>The web is caught in the same current. There is plenty right with it — it retains plenty of its founding principles — but its state is not healthy. From AI slop to shoddy service providers to enshittification, the digital world faces its own <strong>grayscale problem</strong>.</p> <p>This bears talking about. One of life’s great fallacies is that things get better over time on their own. They can, but it’s certainly not a given. I don’t think the moral arc of the universe does not bend towards justice, not on its own; I think it bends wherever it is dragged, kicking and screaming, by those with the will and the means to do so.</p> <p>Much of the modern web, and the forces of optimisation and standardisation that drive it, bear an uncanny resemblance to the trend of car colours. Processes like market research and A/B testing — <a href="https://hbr.org/2017/06/a-refresher-on-ab-testing">the process by which two options are compared to see which ‘performs’ better on clickthrough, engagement, etc.</a> — have their value, but they don’t lend themselves to particularly stimulating design choices.</p> <p>The spirit of free expression that made the formative years of the internet so exciting — think GeoCities, personal blogging, and so on — is on the slide.</p> <p><img src="https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png" /></p> <p>The ongoing transition to a more decentralised, privacy-aware <a href="https://aws.amazon.com/what-is/web3/">Web3</a> holds some promise. Two-thirds of the world’s population now has online access — <a href="https://www.weforum.org/stories/2024/01/digital-divide-internet-access-online-fwa/">though that still leaves plenty of work to do</a> — with a wealth of platforms allowing billions of people to connect. The dream of a digital world that is open, connected, and flat endures, but is tainted.</p> Monopolies <p>One of the main sources of concern for me is that although more people are online than ever, they are concentrating on fewer and fewer sites. A study <a href="https://www.sciencealert.com/we-re-going-to-fewer-and-fewer-websites-and-that-could-be-a-problem">published in 2021</a> found that <strong>activity is concentrated in a handful of websites</strong>. Think Google, Amazon, Facebook, Instagram, and, more recently, ChatGPT: </p> <blockquote>“So, while there is still growth in the functions, features, and applications offered on the web, the number of entities providing these functions is shrinking. [...] The authority, influence, and visibility of the top 1,000 global websites (as measured by network centrality or PageRank) is growing every month, at the expense of all other sites.”</blockquote> <p>Monopolies by nature <strong>reduce variance</strong>, both through their domination of the market and (understandably in fairness) internal preferences for consistency. And, let’s be frank, they have a vested interest in crushing any potential upstarts.</p> <ul> <li>“<a href="https://www.smashingmagazine.com/2020/05/readability-algorithms-tools-targets/">Readability Algorithms Should Be Tools, Not Targets</a>”</li> <li>“<a href="https://www.smashingmagazine.com/2021/01/towards-ad-free-web-diversifying-online-economy/">Towards An Ad-Free Web: Diversifying The Online Economy</a>”</li> </ul> <p>Dominant websites often fall victim to what I like to call <strong>Internet Explorer Syndrome</strong>, where their dominance breeds a certain amount of complacency. Why improve your <a href="https://www.smashingmagazine.com/2025/05/what-zen-art-motorcycle-maintenance-teach-web-design/">quality</a> when you’re sitting on 90% market share? No wonder <a href="https://www.standard.co.uk/news/tech/google-search-worse-quality-spam-study-b1133559.html">the likes of Google are getting worse</a>.</p> <p>The most immediate sign of this is obviously how sites are designed and how they look. A lot of the big players look an awful lot like each other. Even personal websites are built atop third-party website builders. Millions of people wind up using the same handful of templates, and that’s if they have their own website at all. On social media, we are little more than a profile picture and a pithy tagline. The rest is boilerplate.</p> <p><img src="https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png" /></p> <p>Should there be sleek, minimalist, ‘grayscale’ design systems and websites? Absolutely. But there should be colourful, kooky ones too, and if anything, they’re fading away. Do we really want to spend our online lives in the digital equivalent of Levittowns? Even logos are contriving to be less eye-catching. It feels like a matter of time before every major logo is a circle in a pastel colour.</p> <p><img src="https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png" /></p> <p>The arrival of Artificial Intelligence into our everyday lives (and a decent chunk of the digital services we use) has put all of this into overdrive. Amalgamating — and hallucinating from — content that was already trending towards a perfect average, it is grayscale in its purest form.</p> <p>Mix all the colours together, and what do you get? A muddy gray gloop.</p> <p><img src="https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png" /></p> <p>I’m not railing against best practice. A lot of conventions have become the standard for good reason. One could just as easily shake their fist at the sky and wonder why all newspapers look the same, or all books. I hope the difference here is clear, though.</p> <p>The web is a flexible enough domain that I think it belongs in the realm of architecture. A city where all buildings look alike has a soul-crushing quality about it. The same is true, I think, of the web.</p> <p>In the Oscar Wilde play <em><a href="https://www.gutenberg.org/files/790/790-h/790-h.htm">Lady Windermere’s Fan</a></em>, a character quips that a cynic <em>“knows the price of everything and the value of nothing.”</em> In fairness, another quips back that a sentimentalist <em>“sees an absurd value in everything, and doesn’t know the market price of any single thing.”</em></p> <p>The sweet spot is somewhere in between. Structure goes a long way, but life needs a bit of variety too. </p> <p>So, how do we go about bringing that variety? We probably shouldn’t hold our breath on big players to lead the way. They have the most to lose, after all. Why risk being colourful or dynamic if it impacts the bottom line?</p> <p>We, the citizens of the web, have more power than we realise. This is the web, remember, a place where if you can imagine it, odds are you can make it. And at zero cost. No materials to buy and ship, no shareholders to appease. A place as flexible — and limitless — as the web has no business being boring.</p> <p>There are plenty of ways, big and small, of keeping this place colourful. Whether our digital footprints are on third-party websites or ones we build ourselves, we needn’t toe the line.</p> <p><strong>Colour</strong> seems an appropriate place to start. When given the choice, try something audacious rather than safe. The worst that can happen is that it doesn’t work. It’s not like the sunk cost of painting a room; if you don’t like the palette, you simply change the hex codes. The same is true of <a href="https://www.smashingmagazine.com/2023/03/free-fonts-interface-designers/">fonts</a>, <a href="https://www.smashingmagazine.com/2021/08/open-source-icons/">icons</a>, and other building blocks of the web.</p> <p>As an example, a couple of friends and I listen to and review albums occasionally as a hobby. On the website, the palette of each review page reflects the album artwork:</p> <p><img src="https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png" /></p> <p>I couldn’t tell you if reviews ‘perform’ better or worse than if they had a grayscale palette, because I don’t care. I think it’s a lot nicer to look at. And for those wondering, yes, I have tried to make every page meet <a href="https://www.w3.org/WAI/WCAG2AA-Conformance">AA Web Accessibility standards</a>. Vibrant and accessible aren’t mutually exclusive.</p> <p>Another great way of bringing vibrancy to the web is a <strong>degree of randomisation</strong>. Bruno Simon of <a href="https://threejs-journey.com/">Three Journey</a> and <a href="https://bruno-simon.com/">awesome portfolio</a> fame weaves random generation into a lot of his projects, and the results are gorgeous. What’s more, they feel familiar, natural, because life is full of wildcards. </p> <a href="https://files.smashing.media/articles/the-grayscale-problem/7-3d-model.gif"><img src="https://files.smashing.media/articles/the-grayscale-problem/7-3d-model.gif" /></a> <p>This needn’t be in fancy 3D models. You could lightly rotate images to create a more informal, photo album mood, or chuck in the occasional random link in a list of recommended articles, just to shake things up.</p> <p>In a lot of ways, it boils down to an attitude of just trying stuff out. Make your own font, give the site a sepia filter, and add that easter egg you keep thinking about. Just because someone, somewhere has already done it doesn’t mean you can’t do it your own way. And who knows, maybe your way stumbles onto someplace wholly new.</p> <p>I’m wary of being too prescriptive. I don’t have the keys to a colourful web. No one person does. A vibrant community is the sum total of its people. What keeps things interesting is individuals trying wacky ideas and putting them out there. Expression for expression’s sake. Experimentation for experimentation’s sake. Tinkering for tinkering’s sake.</p> <p>As users, there’s also plenty of room to be adventurous and try out <a href="https://openalternative.co/">open source alternatives to the software monopolies</a> that shape so much of today’s Web. Being active in the communities that shape those tools helps to sustain <strong>a more open, collaborative digital world</strong>. </p> <p>Although there are lessons to be taken from it, we won’t get a more colourful web by idealising the past or pining to get back to the ‘90s. Nor is there any point in resisting new technologies. AI is here; the choice is whether we use it or it uses us. We must have the courage to carry forward what still holds true, drop what doesn’t, and explore new ideas with a spirit of play.</p> <p>Here are a few more <em>Smashing</em> articles in that spirit:</p> <ul> <li>“<a href="https://www.smashingmagazine.com/2020/11/playfulness-code-supercharge-fun-learning/">Playfulness In Code: Supercharge Your Learning By Having Fun</a>” by Jhey Tompkins </li> <li>“<a href="https://www.smashingmagazine.com/2025/08/psychology-color-ux-design-digital-products/">The Psychology Of Color In UX And Digital Products</a>” by Rodolpho Henrique</li> <li>“<a href="https://www.smashingmagazine.com/2020/12/creativity-technology/">Creativity In A World Of Technology: Does It Exist?</a>” By Maggie Mackenzie</li> <li>“<a href="https://www.smashingmagazine.com/2025/05/what-zen-art-motorcycle-maintenance-teach-web-design/">What Zen And The Art Of Motorcycle Maintenance Can Teach Us About Web Design</a>” </li> <li>“<a href="https://www.smashingmagazine.com/2025/01/ode-to-side-project-time/">An Ode To Side Project Time</a>”</li> </ul> <p>I do think there’s a broader discussion to be had about the extent to which A/B tests, bottom lines, and focus groups seem to dictate much of how the modern web looks and feels. With sites being squeezed tighter and tighter by dwindling advertising revenues, and <a href="https://www.forbes.com/sites/torconstantino/2025/04/14/the-60-problem---how-ai-search-is-draining-your-traffic/">AI answers muscling in on search traffic</a>, the corporate entities behind larger websites can’t justify doing anything other than what is safe and proven, for fear of shrinking their slice of the pie.</p> <p>Lest we forget, though, most of the web isn’t beholden to those types of pressure. From pet projects to wikis to forums to community news outlets to all manner of other things, there are countless reasons for websites to exist, and they needn’t take design cues from the handful of sites slugging it out at the top. </p> <p>Connected with this is the dire need for <a href="https://tcg.uis.unesco.org/wp-content/uploads/sites/4/2021/08/Metadata-4.4.2.pdf">digital literacy</a> (PDF) — ‘the confident and critical use of a full range of digital technologies for information, communication and basic problem-solving in all aspects of life.’ For as long as using third-party platforms is a necessity rather than a choice, the needle’s only going to move so much.</p> <p>There’s a reason why <a href="https://www.bbc.co.uk/news/technology-67105983">Minecraft is the world’s best-selling game</a>. People are creative. When given the tools — and the opportunity — that creativity will manifest in weird and wonderful ways. That game is a lot of things, but gray ain’t one of them.</p> <p>The web has all of that flexibility and more. It is a <strong>manifestation of imagination</strong>. Imagination trends towards colour, not grayness. It doesn’t always feel like it, but where the internet goes is decided by its citizens. The internet is ours. If we want to, we can make it technicolor. </p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/10/the-grayscale-problem/</span> hello@smashingmagazine.com (Frederick O’Brien) <![CDATA[Smashing Animations Part 5: Building Adaptive SVGs With `<symbol>`, `<use>`, And CSS Media Queries]]> https://smashingmagazine.com/2025/10/smashing-animations-part-5-building-adaptive-svgs/ https://smashingmagazine.com/2025/10/smashing-animations-part-5-building-adaptive-svgs/ Mon, 06 Oct 2025 13:00:00 GMT SVGs, they scale, yes, but how else can you make them adapt even better to several screen sizes? Web design pioneer Andy Clarke explains how he builds what he calls “adaptive SVGs” using `<symbol>`, `<use>`, and CSS Media Queries. <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/10/smashing-animations-part-5-building-adaptive-svgs/</span> <p>I’ve written quite a lot recently about how I <a href="https://www.smashingmagazine.com/2025/06/smashing-animations-part-4-optimising-svgs/">prepare and optimise</a> SVG code to use as static graphics or in <a href="https://www.smashingmagazine.com/2025/05/smashing-animations-part-1-classic-cartoons-inspire-css/">animations</a>. I love working with SVG, but there’s always been something about them that bugs me.</p> <p>To illustrate how I build adaptive SVGs, I’ve selected an episode of <em>The Quick Draw McGraw Show</em> called “<a href="https://yowpyowp.blogspot.com/2012/06/quick-draw-mcgraw-bow-wow-bandit.html">Bow Wow Bandit</a>,” first broadcast in 1959.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/1-quick-draw-mcgraw-show.png" /></p> <p>In it, Quick Draw McGraw enlists his bloodhound Snuffles to rescue his sidekick Baba Looey. Like most Hanna-Barbera title cards of the period, the artwork was made by Lawrence (Art) Goble.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/2-andy-clarke-bow-wow-bandit-toon-title-recreation.png" /></p> <p>Let’s say I’ve designed an SVG scene like that one that’s based on Bow Wow Bandit, which has a 16:9 aspect ratio with a <code>viewBox</code> size of 1920×1080. This SVG scales up and down (the clue’s in the name), so it looks sharp when it’s gigantic and when it’s minute.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/3-svgs-aspect-ratio.png" /></p> <p>But on small screens, the 16:9 aspect ratio (<a href="https://stuffandnonsense.co.uk/toon-titles/quick-draw-3a.html">live demo</a>) might not be the best format, and the image loses its impact. Sometimes, a portrait orientation, like 3:4, would suit the screen size better.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/4-bow-wow-bandit-toon-title-recreation-portrait.png" /></p> <p>But, herein lies the problem, as it’s not easy to reposition internal elements for different screen sizes using just <code>viewBox</code>. That’s because in SVG, internal element positions are locked to the coordinate system from the original <code>viewBox</code>, so you can’t easily change their layout between, say, desktop and mobile. This is a problem because animations and interactivity often rely on element positions, which break when the <code>viewBox</code> changes.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/5-svg-smaller-larger-screens.png" /></p> <p>My challenge was to serve a 1080×1440 version of Bow Wow Bandit to smaller screens and a different one to larger ones. I wanted the position and size of internal elements — like Quick Draw McGraw and his dawg Snuffles — to change to best fit these two layouts. To solve this, I experimented with several alternatives.</p> <p><strong>Note:</strong> Why are we not just using the <code><picture></code> with external SVGs? The <a href="https://www.smashingmagazine.com/2014/05/responsive-images-done-right-guide-picture-srcset/"><code><picture></code> element</a> is brilliant for responsive images, but it only works with raster formats (like JPEG or WebP) and external SVG files treated as images. That means that you can’t animate or style internal elements using CSS.</p> Showing And Hiding SVG <p>The most obvious choice was to include two different SVGs in my markup, one for small screens, the other for larger ones, then show or hide them using <a href="https://www.smashingmagazine.com/2018/02/media-queries-responsive-design-2018/">CSS and Media Queries</a>:</p> <pre><code><svg id="svg-small" viewBox="0 0 1080 1440"> <!-- ... --> </svg> <svg id="svg-large" viewBox="0 0 1920 1080"> <!--... --> </svg> #svg-small { display: block; } #svg-large { display: none; } @media (min-width: 64rem) { #svg-small { display: none; } #svg-mobile { display: block; } } </code></pre> <p>But using this method, both SVG versions are loaded, which, when the graphics are complex, means downloading lots and lots and lots of unnecessary code.</p> Replacing SVGs Using JavaScript <p>I thought about using JavaScript to swap in the larger SVG at a specified breakpoint:</p> <pre><code>if (window.matchMedia('(min-width: 64rem)').matches) { svgContainer.innerHTML = desktopSVG; } else { svgContainer.innerHTML = mobileSVG; } </code></pre> <p>Leaving aside the fact that JavaScript would now be critical to how the design is displayed, both SVGs would usually be loaded anyway, which adds DOM complexity and unnecessary weight. Plus, maintenance becomes a problem as there are now two versions of the artwork to maintain, doubling the time it would take to update something as small as the shape of Quick Draw’s tail.</p> The Solution: One SVG Symbol Library And Multiple Uses <p>Remember, my goal is to:</p> <ul> <li>Serve one version of Bow Wow Bandit to smaller screens,</li> <li>Serve a different version to larger screens,</li> <li>Define my artwork just once (DRY), and</li> <li>Be able to resize and reposition elements.</li> </ul> <p>I don’t read about it enough, but the <code><symbol></code> element lets you define reusable SVG elements that can be hidden and reused to improve maintainability and reduce code bloat. They’re like components for SVG: <a href="https://css-tricks.com/svg-symbol-good-choice-icons/">create once and use wherever you need them</a>:</p> <pre><code><svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <symbol id="quick-draw-body" viewBox="0 0 620 700"> <g class="quick-draw-body">[…]</g> </symbol> <!-- ... --> </svg> <use href="#quick-draw-body" /> </code></pre> <p>A <code><symbol></code> is like storing a character in a library. I can reference it as many times as I need, to keep my code consistent and lightweight. Using <code><use></code> elements, I can insert the same symbol multiple times, at different positions or sizes, and even in different SVGs.</p> <p>Each <code><symbol></code> must have its own <code>viewBox</code>, which defines its internal coordinate system. That means paying special attention to how SVG elements are exported from apps like Sketch.</p> Exporting For Individual Viewboxes <p>I wrote before about <a href="https://www.smashingmagazine.com/2025/06/smashing-animations-part-4-optimising-svgs/">how I export elements</a> in layers to make working with them easier. That process is a little different when creating symbols.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/6-exporting-elements-from-sketch.png" /></p> <p>Ordinarily, I would export all my elements using the same <code>viewBox</code>size. But when I’m creating a <code>symbol</code>, I need it to have its own specific <code>viewBox</code>. </p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/7-exporting-elements-sketch-individual-svgs-files.png" /></p> <p>So I export each element as an individually sized SVG, which gives me the dimensions I need to convert its content into a <code>symbol</code>. Let’s take the SVG of Quick Draw McGraw’s hat, which has a <code>viewBox</code> size of 294×182:</p> <pre><code><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 294 182"> <!-- ... --> </svg> </code></pre> <p>I swap the SVG tags for <code><symbol></code> and add its artwork to my SVG library:</p> <pre><code><svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <symbol id="quick-draw-hat" viewBox="0 0 294 182"> <g class="quick-draw-hat">[…]</g> </symbol> </svg> </code></pre> <p>Then, I repeat the process for all the remaining elements in my artwork. Now, if I ever need to update any of my symbols, the changes will be automatically applied to every instance it’s used.</p> Using A <code><symbol></code> In Multiple SVGs <p>I wanted my elements to appear in both versions of Bow Wow Bandit, one arrangement for smaller screens and an alternative arrangement for larger ones. So, I create both SVGs:</p> <pre><code><svg class="svg-small" viewBox="0 0 1080 1440"> <!-- ... --> </svg> <svg class="svg-large" viewBox="0 0 1920 1080"> <!-- ... --> </svg> </code></pre> <p>…and insert links to my symbols in both:</p> <pre><code><svg class="svg-small" viewBox="0 0 1080 1440"> <use href="#quick-draw-hat" /> </svg> <svg class="svg-large" viewBox="0 0 1920 1080"> <use href="#quick-draw-hat" /> </svg> </code></pre> Positioning Symbols <p>Once I’ve placed symbols into my layout using <code><use></code>, my next step is to position them, which is especially important if I want alternative layouts for different screen sizes. Symbols behave like <code><g></code> groups, so I can scale and move them using attributes like <code>width</code>, <code>height</code>, and <code>transform</code>:</p> <div> <pre><code><svg class="svg-small" viewBox="0 0 1080 1440"> <use href="#quick-draw-hat" width="294" height="182" transform="translate(-30,610)"/> </svg> <svg class="svg-large" viewBox="0 0 1920 1080"> <use href="#quick-draw-hat" width="294" height="182" transform="translate(350,270)"/> </svg> </code></pre> </div> <p>I can place each <code><use></code> element independently using <code>transform</code>. This is powerful because rather than repositioning elements inside my SVGs, I move the <code><use></code> references. My internal layout stays clean, and the file size remains small because I’m not duplicating artwork. A browser only loads it once, which reduces bandwidth and speeds up page rendering. And because I’m always referencing the same <code>symbol</code>, their appearance stays consistent, whatever the screen size.</p> Animating <code><use></code> Elements <p>Here’s where things got tricky. I wanted to animate parts of my characters — like Quick Draw’s hat tilting and his legs kicking. But when I added CSS animations targeting internal elements inside a <code><symbol></code>, nothing happened.</p> <p><strong>Tip:</strong> You can animate the <code><use></code> element itself, but not elements inside the <code><symbol></code>. If you want individual parts to move, make them their own symbols and animate each <code><use></code>.</p> <p>Turns out, you can’t style or animate a <code><symbol></code>, because <code><use></code> creates shadow DOM clones that aren’t easily targetable. So, I had to get sneaky. Inside each <code><symbol></code> in my library SVG, I added a <code><g></code> element around the part I wanted to animate:</p> <pre><code><symbol id="quick-draw-hat" viewBox="0 0 294 182"> <g class="quick-draw-hat"> <!-- ... --> </g> </symbol> </code></pre> <p>…and animated it using an attribute substring selector, targeting the <code>href</code> attribute of the <code>use</code> element:</p> <pre><code>use[href="#quick-draw-hat"] { animation-delay: 0.5s; animation-direction: alternate; animation-duration: 1s; animation-iteration-count: infinite; animation-name: hat-rock; animation-timing-function: ease-in-out; transform-origin: center bottom; } @keyframes hat-rock { from { transform: rotate(-2deg); } to { transform: rotate(2deg); } } </code></pre> Media Queries For Display Control <p>Once I’ve created my two visible SVGs — one for small screens and one for larger ones — the final step is deciding which version to show at which screen size. I use CSS Media Queries to hide one SVG and show the other. I start by showing the small-screen SVG by default:</p> <pre><code>.svg-small { display: block; } .svg-large { display: none; } </code></pre> <p>Then I use a <code>min-width</code> media query to switch to the large-screen SVG at <code>64rem</code> and above:</p> <pre><code>@media (min-width: 64rem) { .svg-small { display: none; } .svg-large { display: block; } } </code></pre> <p>This ensures there’s only ever one SVG visible at a time, keeping my layout simple and the DOM free from unnecessary clutter. And because both visible SVGs reference the same hidden <code><symbol></code> library, the browser only downloads the artwork once, regardless of how many <code><use></code> elements appear across the two layouts.</p> <p><img src="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/8-final-adaptive-svg.png" /></p> Wrapping Up <p>By combining <code><symbol></code>, <code><use></code>, CSS Media Queries, and specific transforms, I can build <strong>adaptive SVGs</strong> that reposition their elements without duplicating content, loading extra assets, or relying on JavaScript. I need to define each graphic only once in a hidden symbol library. Then I can reuse those graphics, as needed, inside several visible SVGs. With CSS doing the layout switching, the <strong>result is fast and flexible</strong>.</p> <p>It’s a reminder that some of the most powerful techniques on the web don’t need big frameworks or complex tooling — just a bit of SVG know-how and a clever use of the basics.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://smashingmagazine.com/2025/10/smashing-animations-part-5-building-adaptive-svgs/</span> hello@smashingmagazine.com (Andy Clarke)