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, 09 Dec 2025 11:03:16 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 2025, Smashing Media AG Development Design UX Mobile Front-end <![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 <img src="https://files.smashing.media/articles/how-ux-professionals-can-lead-ai-strategy/how-ux-professionals-can-lead-ai-strategy.jpg" /><h1>How UX Professionals Can Lead AI Strategy — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>9 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/workflow">Workflow</a>, <a href="http://www.smashingmagazine.com/category/ai">AI</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Lead your organization’s AI strategy before someone else defines it for you. A practical framework for UX professionals to shape AI implementation.</section></p><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><strong>The problem is that</strong> the conversation about how AI gets implemented is happening right now, and if you’re not part of it, someone else will decide how it affects your work. 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><h2 id="why-ux-professionals-must-own-the-ai-conversation">Why UX Professionals Must Own the AI Conversation</h2><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><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h3 id="use-ai-momentum-to-advance-your-priorities">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><h2 id="your-role-isn-t-disappearing-it-s-evolving">Your Role Isn’t Disappearing (It’s Evolving)</h2><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></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></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></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><h2 id="step-1-understand-management-s-ai-motivations">Step 1: Understand Management’s AI Motivations</h2><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> 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> 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> 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><h2 id="step-2-audit-your-current-state-and-opportunities">Step 2: Audit Your Current State and Opportunities</h2><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> 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> 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> AI can help organize and categorize findings.</li><li><strong>Analyzing user behavior data:</strong> AI can process analytics and session recordings to surface patterns you might miss.</li><li><strong>Rapid prototyping:</strong> AI can quickly generate testable prototypes, speeding up your test cycles.</li></ul><h2 id="step-3-define-ai-principles-for-your-ux-practice">Step 3: Define AI Principles for Your UX Practice</h2><p>Before you start forming your strategy, establish principles that will guide every decision.</p><p><strong>Set non-negotiables.</strong> 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> 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> 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> 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><h2 id="step-4-build-your-ai-in-ux-strategy">Step 4: Build Your AI-in-UX Strategy</h2><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> 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> 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> 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> Your team will need training and new skills. Budget time and resources for this.</p><p><strong>Address risks honestly.</strong> 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><h2 id="step-5-pitch-the-strategy-to-leadership">Step 5: Pitch the Strategy to Leadership</h2><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> Put the business case up front.</p><p><strong>Bundle your wish list into the AI strategy.</strong> 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> 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> Be specific. You need a budget for tools, time for pilots, access to data, and support for team training.</p><h2 id="step-6-implement-and-demonstrate-value">Step 6: Implement and Demonstrate Value</h2><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> 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> 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><h2 id="taking-initiative-beats-waiting">Taking Initiative Beats Waiting</h2><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> 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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aYou%20know%20how%20to%20understand%20user%20needs,%20test%20solutions,%20measure%20outcomes,%20and%20iterate%20based%20on%20evidence.%20Those%20skills%20don%e2%80%99t%20change%20just%20because%20AI%20is%20involved.%20You%e2%80%99re%20applying%20your%20existing%20expertise%20to%20a%20new%20tool.%0a&amp;url=https://smashingmagazine.com%2f2025%2f12%2fhow-ux-professionals-can-lead-ai-strategy%2f">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.</a></p></blockquote><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 id="further-reading-on-smashingmag">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 &amp; 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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/how-ux-professionals-can-lead-ai-strategy/how-ux-professionals-can-lead-ai-strategy.jpg" /><h1>How UX Professionals Can Lead AI Strategy — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>9 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/workflow">Workflow</a>, <a href="http://www.smashingmagazine.com/category/ai">AI</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Lead your organization’s AI strategy before someone else defines it for you. A practical framework for UX professionals to shape AI implementation.</section></p><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><strong>The problem is that</strong> the conversation about how AI gets implemented is happening right now, and if you’re not part of it, someone else will decide how it affects your work. 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><h2 id="why-ux-professionals-must-own-the-ai-conversation">Why UX Professionals Must Own the AI Conversation</h2><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><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h3 id="use-ai-momentum-to-advance-your-priorities">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><h2 id="your-role-isn-t-disappearing-it-s-evolving">Your Role Isn’t Disappearing (It’s Evolving)</h2><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></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></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></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><h2 id="step-1-understand-management-s-ai-motivations">Step 1: Understand Management’s AI Motivations</h2><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> 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> 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> 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><h2 id="step-2-audit-your-current-state-and-opportunities">Step 2: Audit Your Current State and Opportunities</h2><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> 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> 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> AI can help organize and categorize findings.</li><li><strong>Analyzing user behavior data:</strong> AI can process analytics and session recordings to surface patterns you might miss.</li><li><strong>Rapid prototyping:</strong> AI can quickly generate testable prototypes, speeding up your test cycles.</li></ul><h2 id="step-3-define-ai-principles-for-your-ux-practice">Step 3: Define AI Principles for Your UX Practice</h2><p>Before you start forming your strategy, establish principles that will guide every decision.</p><p><strong>Set non-negotiables.</strong> 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> 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> 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> 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><h2 id="step-4-build-your-ai-in-ux-strategy">Step 4: Build Your AI-in-UX Strategy</h2><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> 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> 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> 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> Your team will need training and new skills. Budget time and resources for this.</p><p><strong>Address risks honestly.</strong> 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><h2 id="step-5-pitch-the-strategy-to-leadership">Step 5: Pitch the Strategy to Leadership</h2><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> Put the business case up front.</p><p><strong>Bundle your wish list into the AI strategy.</strong> 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> 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> Be specific. You need a budget for tools, time for pilots, access to data, and support for team training.</p><h2 id="step-6-implement-and-demonstrate-value">Step 6: Implement and Demonstrate Value</h2><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> 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> 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><h2 id="taking-initiative-beats-waiting">Taking Initiative Beats Waiting</h2><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> 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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aYou%20know%20how%20to%20understand%20user%20needs,%20test%20solutions,%20measure%20outcomes,%20and%20iterate%20based%20on%20evidence.%20Those%20skills%20don%e2%80%99t%20change%20just%20because%20AI%20is%20involved.%20You%e2%80%99re%20applying%20your%20existing%20expertise%20to%20a%20new%20tool.%0a&amp;url=https://smashingmagazine.com%2f2025%2f12%2fhow-ux-professionals-can-lead-ai-strategy%2f">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.</a></p></blockquote><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 id="further-reading-on-smashingmag">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 &amp; 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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <img src="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/beyond-black-box-practical-xai-ux-practitioners.jpg" /><h1>Practical XAI For UX Practitioners — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>21 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/ai">AI</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><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><h2 id="de-mystifying-xai-core-concepts-for-ux-practitioners">De-mystifying XAI: Core Concepts For UX Practitioners</h2><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 id="feature-importance-and-counterfactuals">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><figure><a href="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/1-example-feature-importance.png"><img alt="A fictional example of feature importance" decoding="async" fetchpriority="low" height="478" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/1-example-feature-importance.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/1-example-feature-importance.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/1-example-feature-importance.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/1-example-feature-importance.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/1-example-feature-importance.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/1-example-feature-importance.png 2000w" width="800"></img></a><figcaption>Figure 1: A fictional example of feature importance where a bank system shows the importance of various features that lead to a model’s decision. Image generated using Google Gemini. (<a href="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/1-example-feature-importance.png">Large preview</a>)</figcaption></figure><h4 id="feature-importance">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 id="counterfactuals">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 id="using-model-data-to-enhance-the-explanation">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><h2 id="xai-and-ethical-ai-unpacking-bias-and-responsibility">XAI And Ethical AI: Unpacking Bias And Responsibility</h2><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><h2 id="from-methods-to-mockups-practical-xai-design-patterns">From Methods To Mockups: Practical XAI Design Patterns</h2><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 id="pattern-1-the-because-statement-for-feature-importance">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.<p><strong>Song Recommendation</strong>: “Velvet Morning”</p><br></br>Because you listen to “The Fuzz” and other psychedelic rock.</blockquote><h3 id="pattern-2-the-what-if-interactive-for-counterfactuals">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><figure><a href="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/2-example-counterfactuals.png"><img alt="An example of Counterfactuals" decoding="async" fetchpriority="low" height="582" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/2-example-counterfactuals.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/2-example-counterfactuals.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/2-example-counterfactuals.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/2-example-counterfactuals.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/2-example-counterfactuals.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/2-example-counterfactuals.png 2000w" width="800"></img></a><figcaption>Figure 2: An example of Counterfactuals using a what-if scenario, letting the user see how changing different values of the model’s features can impact outcomes. Image generated using Google Gemini. (<a href="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/2-example-counterfactuals.png">Large preview</a>)</figcaption></figure><h3 id="pattern-3-the-highlight-reel-for-local-explanations">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.<p><strong>AI-Generated Summary Point</strong>:</p><br></br>Initial research showed a market gap for sustainable products.<p><strong>Source in Document</strong>:</p><br></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 id="pattern-4-the-push-and-pull-visual-for-value-based-explanations">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.<p>Why this candidate is a 75% match:</p><p><strong>Factors pushing the score up</strong>:</p><p><ul><li>5+ Years UX Research Experience</li><li>Proficient in Python</li></ul><strong>Factors pushing the score down</strong>:</p><br></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><h2 id="some-real-world-examples">Some Real-world Examples</h2><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><h2 id="the-ux-researcher-s-role-pinpointing-and-validating-explanations">The UX Researcher’s Role: Pinpointing And Validating Explanations</h2><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 id="informing-the-xai-strategy-what-to-explain">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 id="mental-model-interviews-unpacking-user-perceptions-of-ai-systems">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 id="ai-journey-mapping-a-deep-dive-into-user-trust-and-explainability">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><h2 id="collaborating-on-the-design-how-to-explain-your-ai">Collaborating On The Design (How to Explain Your AI)</h2><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 &amp; Comprehension Testing</strong>: We can design research studies that specifically test the XAI components. We don’t just ask, “*Is this easy to use?*” We ask, “*After seeing this, can you tell me in your own words why the system recommended this product?*” or “*Show me what you would do to see if you could get a different result.*” 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, “*How much do you trust this recommendation?*” 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><h2 id="the-goldilocks-zone-of-explanation">The Goldilocks Zone Of Explanation</h2><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>: “*Your home is currently heated to 72 degrees, which is the optimal temperature for energy savings and comfort.*”</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><figure><a href="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/3-example-progressive-disclosure.png"><img alt="An example of progressive disclosure in three stages" decoding="async" fetchpriority="low" height="449" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/3-example-progressive-disclosure.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/3-example-progressive-disclosure.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/3-example-progressive-disclosure.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/3-example-progressive-disclosure.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/3-example-progressive-disclosure.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/3-example-progressive-disclosure.png 2000w" width="800"></img></a><figcaption>Figure 3: An example of progressive disclosure in three stages: the simple details with an option to click for more details, more details with the option to understand what will happen if the user changes the settings. (<a href="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/3-example-progressive-disclosure.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/4-ai-business-startup-assistant.png"><img alt="An example of a fictitious AI business startup assistant" decoding="async" fetchpriority="low" height="399" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/4-ai-business-startup-assistant.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/4-ai-business-startup-assistant.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/4-ai-business-startup-assistant.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/4-ai-business-startup-assistant.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/4-ai-business-startup-assistant.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/4-ai-business-startup-assistant.png 2000w" width="800"></img></a><figcaption>Figure 4: An example of a fictitious AI business startup assistant. Here, the AI presents the key factor in how the risk level was determined. When the user asks what would change if they manipulate that factor, the counterfactual statement is shown, confirming the impact of that specific factor in the model. (<a href="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/4-ai-business-startup-assistant.png">Large preview</a>)</figcaption></figure><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><h2 id="xai-for-deep-reasoning-agents">XAI for Deep Reasoning Agents</h2><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><h2 id="next-steps-empowering-your-xai-journey">Next Steps: Empowering Your XAI Journey</h2><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/beyond-black-box-practical-xai-ux-practitioners.jpg" /><h1>Practical XAI For UX Practitioners — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>21 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/ai">AI</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><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><h2 id="de-mystifying-xai-core-concepts-for-ux-practitioners">De-mystifying XAI: Core Concepts For UX Practitioners</h2><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 id="feature-importance-and-counterfactuals">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><figure><a href="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/1-example-feature-importance.png"><img alt="A fictional example of feature importance" decoding="async" fetchpriority="low" height="478" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/1-example-feature-importance.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/1-example-feature-importance.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/1-example-feature-importance.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/1-example-feature-importance.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/1-example-feature-importance.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/1-example-feature-importance.png 2000w" width="800"></img></a><figcaption>Figure 1: A fictional example of feature importance where a bank system shows the importance of various features that lead to a model’s decision. Image generated using Google Gemini. (<a href="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/1-example-feature-importance.png">Large preview</a>)</figcaption></figure><h4 id="feature-importance">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 id="counterfactuals">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 id="using-model-data-to-enhance-the-explanation">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><h2 id="xai-and-ethical-ai-unpacking-bias-and-responsibility">XAI And Ethical AI: Unpacking Bias And Responsibility</h2><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><h2 id="from-methods-to-mockups-practical-xai-design-patterns">From Methods To Mockups: Practical XAI Design Patterns</h2><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 id="pattern-1-the-because-statement-for-feature-importance">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.<p><strong>Song Recommendation</strong>: “Velvet Morning”</p><br></br>Because you listen to “The Fuzz” and other psychedelic rock.</blockquote><h3 id="pattern-2-the-what-if-interactive-for-counterfactuals">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><figure><a href="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/2-example-counterfactuals.png"><img alt="An example of Counterfactuals" decoding="async" fetchpriority="low" height="582" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/2-example-counterfactuals.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/2-example-counterfactuals.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/2-example-counterfactuals.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/2-example-counterfactuals.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/2-example-counterfactuals.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/2-example-counterfactuals.png 2000w" width="800"></img></a><figcaption>Figure 2: An example of Counterfactuals using a what-if scenario, letting the user see how changing different values of the model’s features can impact outcomes. Image generated using Google Gemini. (<a href="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/2-example-counterfactuals.png">Large preview</a>)</figcaption></figure><h3 id="pattern-3-the-highlight-reel-for-local-explanations">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.<p><strong>AI-Generated Summary Point</strong>:</p><br></br>Initial research showed a market gap for sustainable products.<p><strong>Source in Document</strong>:</p><br></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 id="pattern-4-the-push-and-pull-visual-for-value-based-explanations">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.<p>Why this candidate is a 75% match:</p><p><strong>Factors pushing the score up</strong>:</p><p><ul><li>5+ Years UX Research Experience</li><li>Proficient in Python</li></ul><strong>Factors pushing the score down</strong>:</p><br></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><h2 id="some-real-world-examples">Some Real-world Examples</h2><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><h2 id="the-ux-researcher-s-role-pinpointing-and-validating-explanations">The UX Researcher’s Role: Pinpointing And Validating Explanations</h2><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 id="informing-the-xai-strategy-what-to-explain">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 id="mental-model-interviews-unpacking-user-perceptions-of-ai-systems">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 id="ai-journey-mapping-a-deep-dive-into-user-trust-and-explainability">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><h2 id="collaborating-on-the-design-how-to-explain-your-ai">Collaborating On The Design (How to Explain Your AI)</h2><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 &amp; Comprehension Testing</strong>: We can design research studies that specifically test the XAI components. We don’t just ask, “*Is this easy to use?*” We ask, “*After seeing this, can you tell me in your own words why the system recommended this product?*” or “*Show me what you would do to see if you could get a different result.*” 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, “*How much do you trust this recommendation?*” 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><h2 id="the-goldilocks-zone-of-explanation">The Goldilocks Zone Of Explanation</h2><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>: “*Your home is currently heated to 72 degrees, which is the optimal temperature for energy savings and comfort.*”</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><figure><a href="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/3-example-progressive-disclosure.png"><img alt="An example of progressive disclosure in three stages" decoding="async" fetchpriority="low" height="449" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/3-example-progressive-disclosure.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/3-example-progressive-disclosure.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/3-example-progressive-disclosure.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/3-example-progressive-disclosure.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/3-example-progressive-disclosure.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/3-example-progressive-disclosure.png 2000w" width="800"></img></a><figcaption>Figure 3: An example of progressive disclosure in three stages: the simple details with an option to click for more details, more details with the option to understand what will happen if the user changes the settings. (<a href="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/3-example-progressive-disclosure.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/4-ai-business-startup-assistant.png"><img alt="An example of a fictitious AI business startup assistant" decoding="async" fetchpriority="low" height="399" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/4-ai-business-startup-assistant.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/4-ai-business-startup-assistant.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/4-ai-business-startup-assistant.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/4-ai-business-startup-assistant.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/4-ai-business-startup-assistant.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/4-ai-business-startup-assistant.png 2000w" width="800"></img></a><figcaption>Figure 4: An example of a fictitious AI business startup assistant. Here, the AI presents the key factor in how the risk level was determined. When the user asks what would change if they manipulate that factor, the counterfactual statement is shown, confirming the impact of that specific factor in the model. (<a href="https://files.smashing.media/articles/beyond-black-box-practical-xai-ux-practitioners/4-ai-business-startup-assistant.png">Large preview</a>)</figcaption></figure><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><h2 id="xai-for-deep-reasoning-agents">XAI for Deep Reasoning Agents</h2><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><h2 id="next-steps-empowering-your-xai-journey">Next Steps: Empowering Your XAI Journey</h2><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/masonry-things-you-wont-need-library-anymore.jpg" /><h1>Things You Won’t Need A Library For Anymore — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>20 min read</li><li><a href="http://www.smashingmagazine.com/category/css">CSS</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/techniques">Techniques</a>, <a href="http://www.smashingmagazine.com/category/css-grid">CSS Grid</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><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><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/1-div-component-example.png"><img alt="Div component, which allows to do rounded corners" decoding="async" fetchpriority="low" height="407" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/1-div-component-example.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/1-div-component-example.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/1-div-component-example.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/1-div-component-example.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/1-div-component-example.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/1-div-component-example.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/1-div-component-example.png">Large preview</a>)</figcaption></figure><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.”<p>— <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></p></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><figure><a href="https://gs.statcounter.com/browser-market-share/all/worldwide/2010"><img alt="" decoding="async" fetchpriority="low" height="492" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/2-browser-market-share.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/2-browser-market-share.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/2-browser-market-share.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/2-browser-market-share.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/2-browser-market-share.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/2-browser-market-share.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://gs.statcounter.com/browser-market-share/all/worldwide/2010">statcounter</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/2-browser-market-share.png">Large preview</a>)</figcaption></figure><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><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="some-things-you-might-not-need-a-library-for-anymore">Some Things You Might Not Need A Library For Anymore</h2><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 id="popovers-and-dialogs">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 id="accordions">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 id="css-syntax">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 id="js-utilities">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 id="container-queries">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 id="layout">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><h2 id="things-you-might-not-need-anymore-in-the-near-future">Things You Might Not Need Anymore In The Near Future</h2><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 id="anchor-positioning">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 id="navigation-api">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 id="view-transitions-api">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 id="scroll-driven-animations">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 id="customizable-selects">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 id="css-masonry">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><h2 id="why-you-should-care">Why You Should Care</h2><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 id="sending-less-code-to-devices">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><figure><a href="https://almanac.httparchive.org/en/2024/page-weight"><img alt="Median page weight" decoding="async" fetchpriority="low" height="462" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/3-median-page-weight.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/3-median-page-weight.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/3-median-page-weight.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/3-median-page-weight.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/3-median-page-weight.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/3-median-page-weight.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://almanac.httparchive.org/en/2024/page-weight">Web Almanac</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/3-median-page-weight.png">Large preview</a>)</figcaption></figure><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 id="running-less-code-on-devices">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><figure><a href="https://infrequently.org/2024/01/performance-inequality-gap-2024/#device-performance"><img alt="Device performance scores" decoding="async" fetchpriority="low" height="452" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/4-device-performance.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/4-device-performance.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/4-device-performance.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/4-device-performance.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/4-device-performance.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/4-device-performance.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://infrequently.org/2024/01/performance-inequality-gap-2024/#device-performance">Infrequently Noted</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/4-device-performance.png">Large preview</a>)</figcaption></figure><h2 id="built-in-masonry-layout">Built-in Masonry Layout</h2><p>One web platform feature that’s coming soon and which I’m very excited about is CSS Masonry.</p><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/5-css-masonry.png"><img alt="CSS Masonry" decoding="async" fetchpriority="low" height="459" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/5-css-masonry.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/5-css-masonry.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/5-css-masonry.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/5-css-masonry.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/5-css-masonry.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/5-css-masonry.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/5-css-masonry.png">Large preview</a>)</figcaption></figure><p>Let me start by explaining what Masonry is.</p><h3 id="what-is-masonry">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><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/6-pinterest-portfolio.png"><img alt="" decoding="async" fetchpriority="low" height="604" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/6-pinterest-portfolio.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/6-pinterest-portfolio.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/6-pinterest-portfolio.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/6-pinterest-portfolio.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/6-pinterest-portfolio.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/6-pinterest-portfolio.png 2000w" width="800"></img></a><figcaption><a href="pinterest.com">Pinterest</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/6-pinterest-portfolio.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/7-layout-columns-rows.png"><img alt="Masonry layout with columns and rows" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/7-layout-columns-rows.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/7-layout-columns-rows.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/7-layout-columns-rows.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/7-layout-columns-rows.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/7-layout-columns-rows.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/7-layout-columns-rows.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/7-layout-columns-rows.png">Large preview</a>)</figcaption></figure><ul><li>Tracks of content don’t all have to be the same size:</li></ul><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/8-layout-different-sizes.png"><img alt="Masonry layout with tracks of different sizes" decoding="async" fetchpriority="low" height="664" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/8-layout-different-sizes.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/8-layout-different-sizes.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/8-layout-different-sizes.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/8-layout-different-sizes.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/8-layout-different-sizes.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/8-layout-different-sizes.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/8-layout-different-sizes.png">Large preview</a>)</figcaption></figure><ul><li>Items can span multiple tracks:</li></ul><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/9-layout-multiple-tracks.png"><img alt="Masonry layout with multiple tracks" decoding="async" fetchpriority="low" height="565" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/9-layout-multiple-tracks.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/9-layout-multiple-tracks.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/9-layout-multiple-tracks.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/9-layout-multiple-tracks.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/9-layout-multiple-tracks.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/9-layout-multiple-tracks.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/9-layout-multiple-tracks.png">Large preview</a>)</figcaption></figure><ul><li>Items can be placed on specific tracks; they don’t have to always follow the automatic placement algorithm:</li></ul><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/10-layout-items-specific-tracks.png"><img alt="Masonry layout with items on specific tracks" decoding="async" fetchpriority="low" height="628" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/10-layout-items-specific-tracks.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/10-layout-items-specific-tracks.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/10-layout-items-specific-tracks.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/10-layout-items-specific-tracks.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/10-layout-items-specific-tracks.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/10-layout-items-specific-tracks.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/10-layout-items-specific-tracks.png">Large preview</a>)</figcaption></figure><h3 id="demos">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><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/11-photo-gallery-different-sizes.png"><img alt="A photo gallery demo, showing items on multiple tracks" decoding="async" fetchpriority="low" height="560" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/11-photo-gallery-different-sizes.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/11-photo-gallery-different-sizes.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/11-photo-gallery-different-sizes.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/11-photo-gallery-different-sizes.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/11-photo-gallery-different-sizes.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/11-photo-gallery-different-sizes.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/11-photo-gallery-different-sizes.png">Large preview</a>)</figcaption></figure><p>Another <a href="https://microsoftedge.github.io/Demos/css-masonry/nature.html">photo gallery showing tracks of different sizes</a>:</p><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/12-photo-gallery-different-tracks.png"><img alt="A photo gallery showing tracks of different sizes" decoding="async" fetchpriority="low" height="437" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/12-photo-gallery-different-tracks.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/12-photo-gallery-different-tracks.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/12-photo-gallery-different-tracks.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/12-photo-gallery-different-tracks.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/12-photo-gallery-different-tracks.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/12-photo-gallery-different-tracks.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/12-photo-gallery-different-tracks.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/13-news-site-layout.png"><img alt="A news site layout with some tracks wider than others" decoding="async" fetchpriority="low" height="607" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/13-news-site-layout.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/13-news-site-layout.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/13-news-site-layout.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/13-news-site-layout.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/13-news-site-layout.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/13-news-site-layout.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/13-news-site-layout.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/14-kanban-board.png"><img alt="A kanban board with items on specific tracks" decoding="async" fetchpriority="low" height="320" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/14-kanban-board.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/14-kanban-board.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/14-kanban-board.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/14-kanban-board.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/14-kanban-board.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/14-kanban-board.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/14-kanban-board.png">Large preview</a>)</figcaption></figure><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 id="sites-using-masonry-today">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><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/15-site-masonry.png"><img alt="Erik Johansson's photography site" decoding="async" fetchpriority="low" height="458" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/15-site-masonry.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/15-site-masonry.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/15-site-masonry.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/15-site-masonry.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/15-site-masonry.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/15-site-masonry.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://www.erikjo.com/work">Erik Johansson</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/15-site-masonry.png">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/16-masonry-site.png"><img alt="Kristian Hammerstad's site" decoding="async" fetchpriority="low" height="456" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/16-masonry-site.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/16-masonry-site.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/16-masonry-site.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/16-masonry-site.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/16-masonry-site.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/16-masonry-site.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://www.kristianhammerstad.com/">Kristian Hammerstad</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/16-masonry-site.png">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/17-masonry-site.png"><img alt="L'usine a Gouzou's catalogue" decoding="async" fetchpriority="low" height="479" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/17-masonry-site.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/17-masonry-site.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/17-masonry-site.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/17-masonry-site.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/17-masonry-site.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/17-masonry-site.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://lusineagouzou.fr/catalogue">L'usine a Gouzou</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/17-masonry-site.png">Large preview</a>)</figcaption></figure><p>And a few more, less obvious, examples:</p><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/18-masonry-layout.png"><img alt="Masonry layout from Agora" decoding="async" fetchpriority="low" height="428" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/18-masonry-layout.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/18-masonry-layout.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/18-masonry-layout.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/18-masonry-layout.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/18-masonry-layout.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/18-masonry-layout.png 2000w" width="800"></img></a><figcaption>A row-direction Masonry layout from <a href="http://agora.io/en/">www.agora.io</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/18-masonry-layout.png">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/19-different-size-tracks.png"><img alt="Different size tracks from The Free Dictionary" decoding="async" fetchpriority="low" height="633" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/19-different-size-tracks.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/19-different-size-tracks.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/19-different-size-tracks.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/19-different-size-tracks.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/19-different-size-tracks.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/19-different-size-tracks.png 2000w" width="800"></img></a><figcaption>Different size tracks from <a href="https://www.thefreedictionary.com/">www.thefreedictionary.com</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/19-different-size-tracks.png">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/20-masonry-layout.png"><img alt="Masonry layout of OneSignal" decoding="async" fetchpriority="low" height="605" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/20-masonry-layout.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/20-masonry-layout.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/20-masonry-layout.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/20-masonry-layout.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/20-masonry-layout.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/20-masonry-layout.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://onesignal.com/">OneSignal</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/20-masonry-layout.png">Large preview</a>)</figcaption></figure><p>So, how were these layouts created?</p><h2 id="workarounds">Workarounds</h2><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><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/21-flexbox-layout.png"><img alt="Flexbox layout" decoding="async" fetchpriority="low" height="578" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/21-flexbox-layout.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/21-flexbox-layout.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/21-flexbox-layout.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/21-flexbox-layout.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/21-flexbox-layout.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/21-flexbox-layout.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/21-flexbox-layout.png">Large preview</a>)</figcaption></figure><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><h2 id="third-party-masonry-libraries">Third-party Masonry Libraries</h2><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><h2 id="built-in-masonry">Built-in Masonry</h2><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 id="better-performance">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><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/22-performance-recording.png"><img alt="A performance recording showing 600ms load time for the Masonry library" decoding="async" fetchpriority="low" height="541" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/22-performance-recording.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/22-performance-recording.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/22-performance-recording.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/22-performance-recording.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/22-performance-recording.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/22-performance-recording.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/22-performance-recording.png">Large preview</a>)</figcaption></figure><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 id="better-responsiveness">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 id="ease-of-use-and-simpler-code">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="https://unpkg.com/masonry-layout@4.2.2/dist/masonry.pkgd.min.js"></script> <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><h2 id="how-to-know-what-s-available-and-when-it-s-available">How To Know What’s Available And When It’s Available?</h2><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><h2 id="my-thing-is-still-not-implemented">My Thing Is Still Not Implemented</h2><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><h2 id="conclusion">Conclusion</h2><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/masonry-things-you-wont-need-library-anymore.jpg" /><h1>Things You Won’t Need A Library For Anymore — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>20 min read</li><li><a href="http://www.smashingmagazine.com/category/css">CSS</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/techniques">Techniques</a>, <a href="http://www.smashingmagazine.com/category/css-grid">CSS Grid</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><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><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/1-div-component-example.png"><img alt="Div component, which allows to do rounded corners" decoding="async" fetchpriority="low" height="407" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/1-div-component-example.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/1-div-component-example.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/1-div-component-example.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/1-div-component-example.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/1-div-component-example.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/1-div-component-example.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/1-div-component-example.png">Large preview</a>)</figcaption></figure><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.”<p>— <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></p></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><figure><a href="https://gs.statcounter.com/browser-market-share/all/worldwide/2010"><img alt="" decoding="async" fetchpriority="low" height="492" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/2-browser-market-share.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/2-browser-market-share.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/2-browser-market-share.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/2-browser-market-share.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/2-browser-market-share.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/2-browser-market-share.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://gs.statcounter.com/browser-market-share/all/worldwide/2010">statcounter</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/2-browser-market-share.png">Large preview</a>)</figcaption></figure><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><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="some-things-you-might-not-need-a-library-for-anymore">Some Things You Might Not Need A Library For Anymore</h2><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 id="popovers-and-dialogs">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 id="accordions">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 id="css-syntax">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 id="js-utilities">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 id="container-queries">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 id="layout">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><h2 id="things-you-might-not-need-anymore-in-the-near-future">Things You Might Not Need Anymore In The Near Future</h2><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 id="anchor-positioning">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 id="navigation-api">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 id="view-transitions-api">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 id="scroll-driven-animations">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 id="customizable-selects">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 id="css-masonry">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><h2 id="why-you-should-care">Why You Should Care</h2><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 id="sending-less-code-to-devices">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><figure><a href="https://almanac.httparchive.org/en/2024/page-weight"><img alt="Median page weight" decoding="async" fetchpriority="low" height="462" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/3-median-page-weight.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/3-median-page-weight.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/3-median-page-weight.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/3-median-page-weight.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/3-median-page-weight.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/3-median-page-weight.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://almanac.httparchive.org/en/2024/page-weight">Web Almanac</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/3-median-page-weight.png">Large preview</a>)</figcaption></figure><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 id="running-less-code-on-devices">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><figure><a href="https://infrequently.org/2024/01/performance-inequality-gap-2024/#device-performance"><img alt="Device performance scores" decoding="async" fetchpriority="low" height="452" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/4-device-performance.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/4-device-performance.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/4-device-performance.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/4-device-performance.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/4-device-performance.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/4-device-performance.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://infrequently.org/2024/01/performance-inequality-gap-2024/#device-performance">Infrequently Noted</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/4-device-performance.png">Large preview</a>)</figcaption></figure><h2 id="built-in-masonry-layout">Built-in Masonry Layout</h2><p>One web platform feature that’s coming soon and which I’m very excited about is CSS Masonry.</p><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/5-css-masonry.png"><img alt="CSS Masonry" decoding="async" fetchpriority="low" height="459" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/5-css-masonry.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/5-css-masonry.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/5-css-masonry.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/5-css-masonry.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/5-css-masonry.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/5-css-masonry.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/5-css-masonry.png">Large preview</a>)</figcaption></figure><p>Let me start by explaining what Masonry is.</p><h3 id="what-is-masonry">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><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/6-pinterest-portfolio.png"><img alt="" decoding="async" fetchpriority="low" height="604" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/6-pinterest-portfolio.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/6-pinterest-portfolio.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/6-pinterest-portfolio.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/6-pinterest-portfolio.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/6-pinterest-portfolio.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/6-pinterest-portfolio.png 2000w" width="800"></img></a><figcaption><a href="pinterest.com">Pinterest</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/6-pinterest-portfolio.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/7-layout-columns-rows.png"><img alt="Masonry layout with columns and rows" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/7-layout-columns-rows.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/7-layout-columns-rows.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/7-layout-columns-rows.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/7-layout-columns-rows.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/7-layout-columns-rows.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/7-layout-columns-rows.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/7-layout-columns-rows.png">Large preview</a>)</figcaption></figure><ul><li>Tracks of content don’t all have to be the same size:</li></ul><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/8-layout-different-sizes.png"><img alt="Masonry layout with tracks of different sizes" decoding="async" fetchpriority="low" height="664" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/8-layout-different-sizes.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/8-layout-different-sizes.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/8-layout-different-sizes.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/8-layout-different-sizes.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/8-layout-different-sizes.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/8-layout-different-sizes.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/8-layout-different-sizes.png">Large preview</a>)</figcaption></figure><ul><li>Items can span multiple tracks:</li></ul><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/9-layout-multiple-tracks.png"><img alt="Masonry layout with multiple tracks" decoding="async" fetchpriority="low" height="565" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/9-layout-multiple-tracks.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/9-layout-multiple-tracks.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/9-layout-multiple-tracks.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/9-layout-multiple-tracks.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/9-layout-multiple-tracks.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/9-layout-multiple-tracks.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/9-layout-multiple-tracks.png">Large preview</a>)</figcaption></figure><ul><li>Items can be placed on specific tracks; they don’t have to always follow the automatic placement algorithm:</li></ul><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/10-layout-items-specific-tracks.png"><img alt="Masonry layout with items on specific tracks" decoding="async" fetchpriority="low" height="628" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/10-layout-items-specific-tracks.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/10-layout-items-specific-tracks.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/10-layout-items-specific-tracks.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/10-layout-items-specific-tracks.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/10-layout-items-specific-tracks.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/10-layout-items-specific-tracks.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/10-layout-items-specific-tracks.png">Large preview</a>)</figcaption></figure><h3 id="demos">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><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/11-photo-gallery-different-sizes.png"><img alt="A photo gallery demo, showing items on multiple tracks" decoding="async" fetchpriority="low" height="560" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/11-photo-gallery-different-sizes.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/11-photo-gallery-different-sizes.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/11-photo-gallery-different-sizes.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/11-photo-gallery-different-sizes.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/11-photo-gallery-different-sizes.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/11-photo-gallery-different-sizes.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/11-photo-gallery-different-sizes.png">Large preview</a>)</figcaption></figure><p>Another <a href="https://microsoftedge.github.io/Demos/css-masonry/nature.html">photo gallery showing tracks of different sizes</a>:</p><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/12-photo-gallery-different-tracks.png"><img alt="A photo gallery showing tracks of different sizes" decoding="async" fetchpriority="low" height="437" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/12-photo-gallery-different-tracks.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/12-photo-gallery-different-tracks.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/12-photo-gallery-different-tracks.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/12-photo-gallery-different-tracks.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/12-photo-gallery-different-tracks.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/12-photo-gallery-different-tracks.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/12-photo-gallery-different-tracks.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/13-news-site-layout.png"><img alt="A news site layout with some tracks wider than others" decoding="async" fetchpriority="low" height="607" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/13-news-site-layout.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/13-news-site-layout.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/13-news-site-layout.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/13-news-site-layout.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/13-news-site-layout.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/13-news-site-layout.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/13-news-site-layout.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/14-kanban-board.png"><img alt="A kanban board with items on specific tracks" decoding="async" fetchpriority="low" height="320" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/14-kanban-board.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/14-kanban-board.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/14-kanban-board.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/14-kanban-board.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/14-kanban-board.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/14-kanban-board.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/14-kanban-board.png">Large preview</a>)</figcaption></figure><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 id="sites-using-masonry-today">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><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/15-site-masonry.png"><img alt="Erik Johansson's photography site" decoding="async" fetchpriority="low" height="458" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/15-site-masonry.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/15-site-masonry.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/15-site-masonry.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/15-site-masonry.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/15-site-masonry.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/15-site-masonry.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://www.erikjo.com/work">Erik Johansson</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/15-site-masonry.png">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/16-masonry-site.png"><img alt="Kristian Hammerstad's site" decoding="async" fetchpriority="low" height="456" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/16-masonry-site.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/16-masonry-site.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/16-masonry-site.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/16-masonry-site.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/16-masonry-site.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/16-masonry-site.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://www.kristianhammerstad.com/">Kristian Hammerstad</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/16-masonry-site.png">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/17-masonry-site.png"><img alt="L'usine a Gouzou's catalogue" decoding="async" fetchpriority="low" height="479" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/17-masonry-site.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/17-masonry-site.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/17-masonry-site.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/17-masonry-site.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/17-masonry-site.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/17-masonry-site.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://lusineagouzou.fr/catalogue">L'usine a Gouzou</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/17-masonry-site.png">Large preview</a>)</figcaption></figure><p>And a few more, less obvious, examples:</p><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/18-masonry-layout.png"><img alt="Masonry layout from Agora" decoding="async" fetchpriority="low" height="428" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/18-masonry-layout.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/18-masonry-layout.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/18-masonry-layout.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/18-masonry-layout.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/18-masonry-layout.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/18-masonry-layout.png 2000w" width="800"></img></a><figcaption>A row-direction Masonry layout from <a href="http://agora.io/en/">www.agora.io</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/18-masonry-layout.png">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/19-different-size-tracks.png"><img alt="Different size tracks from The Free Dictionary" decoding="async" fetchpriority="low" height="633" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/19-different-size-tracks.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/19-different-size-tracks.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/19-different-size-tracks.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/19-different-size-tracks.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/19-different-size-tracks.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/19-different-size-tracks.png 2000w" width="800"></img></a><figcaption>Different size tracks from <a href="https://www.thefreedictionary.com/">www.thefreedictionary.com</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/19-different-size-tracks.png">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/20-masonry-layout.png"><img alt="Masonry layout of OneSignal" decoding="async" fetchpriority="low" height="605" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/20-masonry-layout.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/20-masonry-layout.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/20-masonry-layout.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/20-masonry-layout.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/20-masonry-layout.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/20-masonry-layout.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://onesignal.com/">OneSignal</a>. (<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/20-masonry-layout.png">Large preview</a>)</figcaption></figure><p>So, how were these layouts created?</p><h2 id="workarounds">Workarounds</h2><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><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/21-flexbox-layout.png"><img alt="Flexbox layout" decoding="async" fetchpriority="low" height="578" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/21-flexbox-layout.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/21-flexbox-layout.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/21-flexbox-layout.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/21-flexbox-layout.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/21-flexbox-layout.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/21-flexbox-layout.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/21-flexbox-layout.png">Large preview</a>)</figcaption></figure><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><h2 id="third-party-masonry-libraries">Third-party Masonry Libraries</h2><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><h2 id="built-in-masonry">Built-in Masonry</h2><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 id="better-performance">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><figure><a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/22-performance-recording.png"><img alt="A performance recording showing 600ms load time for the Masonry library" decoding="async" fetchpriority="low" height="541" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/22-performance-recording.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/22-performance-recording.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/22-performance-recording.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/22-performance-recording.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/22-performance-recording.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/22-performance-recording.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/masonry-things-you-wont-need-library-anymore/22-performance-recording.png">Large preview</a>)</figcaption></figure><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 id="better-responsiveness">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 id="ease-of-use-and-simpler-code">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="https://unpkg.com/masonry-layout@4.2.2/dist/masonry.pkgd.min.js"></script> <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><h2 id="how-to-know-what-s-available-and-when-it-s-available">How To Know What’s Available And When It’s Available?</h2><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><h2 id="my-thing-is-still-not-implemented">My Thing Is Still Not Implemented</h2><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><h2 id="conclusion">Conclusion</h2><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <h1>A Sparkle Of December Magic (2025 Wallpapers Edition) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>12 min read</li><li><a href="http://www.smashingmagazine.com/category/wallpapers">Wallpapers</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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!</section></p><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></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><h2 id="zero-gravity-december-12-2025">Zero-Gravity December</h2><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><figure><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/dec-25-zero-gravity-december-full.png" title="Zero-Gravity December"><img alt="Zero-Gravity December" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2025/dec-25-zero-gravity-december-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/dec-25-zero-gravity-december-preview.png" title="Zero-Gravity December - Preview">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" title="Zero-Gravity December - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-640x480.png" title="Zero-Gravity December - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-800x480.png" title="Zero-Gravity December - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-800x600.png" title="Zero-Gravity December - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1024x768.png" title="Zero-Gravity December - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1024x1024.png" title="Zero-Gravity December - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1152x864.png" title="Zero-Gravity December - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1280x720.png" title="Zero-Gravity December - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1280x800.png" title="Zero-Gravity December - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1280x960.png" title="Zero-Gravity December - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1280x1020.png" title="Zero-Gravity December - 1280x1020">1280x1020</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1400x1050.png" title="Zero-Gravity December - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1440x900.png" title="Zero-Gravity December - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1600x1200.png" title="Zero-Gravity December - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1680x1050.png" title="Zero-Gravity December - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1680x1200.png" title="Zero-Gravity December - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1920x1080.png" title="Zero-Gravity December - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1920x1200.png" title="Zero-Gravity December - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1920x1440.png" title="Zero-Gravity December - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-2560x1440.png" title="Zero-Gravity December - 2560x1440">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" title="Zero-Gravity December - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-640x480.png" title="Zero-Gravity December - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-800x480.png" title="Zero-Gravity December - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-800x600.png" title="Zero-Gravity December - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1024x768.png" title="Zero-Gravity December - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1024x1024.png" title="Zero-Gravity December - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1152x864.png" title="Zero-Gravity December - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1280x720.png" title="Zero-Gravity December - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1280x800.png" title="Zero-Gravity December - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1280x960.png" title="Zero-Gravity December - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1280x1020.png" title="Zero-Gravity December - 1280x1020">1280x1020</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1400x1050.png" title="Zero-Gravity December - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1440x900.png" title="Zero-Gravity December - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1600x1200.png" title="Zero-Gravity December - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1680x1050.png" title="Zero-Gravity December - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1680x1200.png" title="Zero-Gravity December - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1920x1080.png" title="Zero-Gravity December - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1920x1200.png" title="Zero-Gravity December - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1920x1440.png" title="Zero-Gravity December - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-2560x1440.png" title="Zero-Gravity December - 2560x1440">2560x1440</a></li></ul><h2 id="a-quiet-december-walk-12-2025">A Quiet December Walk</h2><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><figure><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/dec-25-a-quiet-december-walk-full.png" title="A Quiet December Walk"><img alt="A Quiet December Walk" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2025/dec-25-a-quiet-december-walk-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/dec-25-a-quiet-december-walk-preview.png" title="A Quiet December Walk - Preview">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" title="A Quiet December Walk - 320x480">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" title="A Quiet December Walk - 640x480">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" title="A Quiet December Walk - 800x480">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" title="A Quiet December Walk - 800x600">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" title="A Quiet December Walk - 1024x768">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" title="A Quiet December Walk - 1024x1024">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" title="A Quiet December Walk - 1152x864">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" title="A Quiet December Walk - 1280x720">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" title="A Quiet December Walk - 1280x800">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" title="A Quiet December Walk - 1280x960">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" title="A Quiet December Walk - 1280x1024">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" title="A Quiet December Walk - 1400x1050">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" title="A Quiet December Walk - 1440x900">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" title="A Quiet December Walk - 1600x1200">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" title="A Quiet December Walk - 1680x1050">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" title="A Quiet December Walk - 1680x1200">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" title="A Quiet December Walk - 1920x1080">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" title="A Quiet December Walk - 1920x1200">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" title="A Quiet December Walk - 1920x1440">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" title="A Quiet December Walk - 2560x1440">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" title="A Quiet December Walk - 320x480">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" title="A Quiet December Walk - 640x480">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" title="A Quiet December Walk - 800x480">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" title="A Quiet December Walk - 800x600">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" title="A Quiet December Walk - 1024x768">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" title="A Quiet December Walk - 1024x1024">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" title="A Quiet December Walk - 1152x864">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" title="A Quiet December Walk - 1280x720">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" title="A Quiet December Walk - 1280x800">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" title="A Quiet December Walk - 1280x960">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" title="A Quiet December Walk - 1280x1024">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" title="A Quiet December Walk - 1400x1050">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" title="A Quiet December Walk - 1440x900">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" title="A Quiet December Walk - 1600x1200">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" title="A Quiet December Walk - 1680x1050">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" title="A Quiet December Walk - 1680x1200">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" title="A Quiet December Walk - 1920x1080">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" title="A Quiet December Walk - 1920x1200">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" title="A Quiet December Walk - 1920x1440">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" title="A Quiet December Walk - 2560x1440">2560x1440</a></li></ul><h2 id="quoted-rudolph-12-2025">Quoted Rudolph</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/dec-25-quoted-rudolph-full.png" title="Quoted Rudolph"><img alt="Quoted Rudolph" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2025/dec-25-quoted-rudolph-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/dec-25-quoted-rudolph-preview.png" title="Quoted Rudolph - Preview">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" title="Quoted Rudolph - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-800x480.png" title="Quoted Rudolph - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-800x600.png" title="Quoted Rudolph - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1024x768.png" title="Quoted Rudolph - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1024x1024.png" title="Quoted Rudolph - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1152x864.png" title="Quoted Rudolph - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1280x720.png" title="Quoted Rudolph - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1280x800.png" title="Quoted Rudolph - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1280x960.png" title="Quoted Rudolph - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1280x1024.png" title="Quoted Rudolph - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1366x768.png" title="Quoted Rudolph - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1400x1050.png" title="Quoted Rudolph - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1440x900.png" title="Quoted Rudolph - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1600x1200.png" title="Quoted Rudolph - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1680x1050.png" title="Quoted Rudolph - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1680x1200.png" title="Quoted Rudolph - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1920x1080.png" title="Quoted Rudolph - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1920x1200.png" title="Quoted Rudolph - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1920x1440.png" title="Quoted Rudolph - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-2560x1440.png" title="Quoted Rudolph - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-3840x2160.png" title="Quoted Rudolph - 3840x2160">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" title="Quoted Rudolph - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-800x480.png" title="Quoted Rudolph - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-800x600.png" title="Quoted Rudolph - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1024x768.png" title="Quoted Rudolph - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1024x1024.png" title="Quoted Rudolph - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1152x864.png" title="Quoted Rudolph - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1280x720.png" title="Quoted Rudolph - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1280x800.png" title="Quoted Rudolph - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1280x960.png" title="Quoted Rudolph - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1280x1024.png" title="Quoted Rudolph - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1366x768.png" title="Quoted Rudolph - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1400x1050.png" title="Quoted Rudolph - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1440x900.png" title="Quoted Rudolph - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1600x1200.png" title="Quoted Rudolph - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1680x1050.png" title="Quoted Rudolph - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1680x1200.png" title="Quoted Rudolph - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1920x1080.png" title="Quoted Rudolph - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1920x1200.png" title="Quoted Rudolph - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1920x1440.png" title="Quoted Rudolph - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-2560x1440.png" title="Quoted Rudolph - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-3840x2160.png" title="Quoted Rudolph - 3840x2160">3840x2160</a></li></ul><h2 id="learning-is-an-art-12-2025">Learning Is An Art</h2><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><figure><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/dec-25-learning-is-an-art-full.png" title="Learning Is An Art"><img alt="Learning Is An Art" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2025/dec-25-learning-is-an-art-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/dec-25-learning-is-an-art-preview.png" title="Learning Is An Art - Preview">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" title="Learning Is An Art - 640x480">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" title="Learning Is An Art - 800x480">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" title="Learning Is An Art - 1024x768">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" title="Learning Is An Art - 1280x720">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" title="Learning Is An Art - 1280x800">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" title="Learning Is An Art - 1440x900">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" title="Learning Is An Art - 1600x1200">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" title="Learning Is An Art - 1920x1080">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" title="Learning Is An Art - 1920x1440">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" title="Learning Is An Art - 2560x1440">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" title="Learning Is An Art - 640x480">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" title="Learning Is An Art - 800x480">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" title="Learning Is An Art - 1024x768">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" title="Learning Is An Art - 1280x720">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" title="Learning Is An Art - 1280x800">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" title="Learning Is An Art - 1440x900">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" title="Learning Is An Art - 1600x1200">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" title="Learning Is An Art - 1920x1080">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" title="Learning Is An Art - 1920x1440">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" title="Learning Is An Art - 2560x1440">2560x1440</a></li></ul><h2 id="chilly-dog,-warm-troubles-12-2025">Chilly Dog, Warm Troubles</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/dec-25-chilly-dog-warm-troubles-full.png" title="Chilly Dog, Warm Troubles"><img alt="Chilly Dog, Warm Troubles" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2025/dec-25-chilly-dog-warm-troubles-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/dec-25-chilly-dog-warm-troubles-preview.png" title="Chilly Dog, Warm Troubles - Preview">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" title="Chilly Dog, Warm Troubles - 640x480">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" title="Chilly Dog, Warm Troubles - 800x480">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" title="Chilly Dog, Warm Troubles - 800x600">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" title="Chilly Dog, Warm Troubles - 1024x768">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" title="Chilly Dog, Warm Troubles - 1024x1024">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" title="Chilly Dog, Warm Troubles - 1152x864">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" title="Chilly Dog, Warm Troubles - 1280x720">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" title="Chilly Dog, Warm Troubles - 1280x800">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" title="Chilly Dog, Warm Troubles - 1280x960">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" title="Chilly Dog, Warm Troubles - 1280x1024">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" title="Chilly Dog, Warm Troubles - 1366x768">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" title="Chilly Dog, Warm Troubles - 1400x1050">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" title="Chilly Dog, Warm Troubles - 1440x900">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" title="Chilly Dog, Warm Troubles - 1600x1200">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" title="Chilly Dog, Warm Troubles - 1680x1050">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" title="Chilly Dog, Warm Troubles - 1680x1200">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" title="Chilly Dog, Warm Troubles - 1920x1080">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" title="Chilly Dog, Warm Troubles - 1920x1200">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" title="Chilly Dog, Warm Troubles - 1920x1440">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" title="Chilly Dog, Warm Troubles - 2560x1440">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" title="Chilly Dog, Warm Troubles - 3840x2160">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" title="Chilly Dog, Warm Troubles - 640x480">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" title="Chilly Dog, Warm Troubles - 800x480">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" title="Chilly Dog, Warm Troubles - 800x600">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" title="Chilly Dog, Warm Troubles - 1024x768">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" title="Chilly Dog, Warm Troubles - 1024x1024">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" title="Chilly Dog, Warm Troubles - 1152x864">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" title="Chilly Dog, Warm Troubles - 1280x720">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" title="Chilly Dog, Warm Troubles - 1280x800">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" title="Chilly Dog, Warm Troubles - 1280x960">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" title="Chilly Dog, Warm Troubles - 1280x1024">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" title="Chilly Dog, Warm Troubles - 1366x768">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" title="Chilly Dog, Warm Troubles - 1400x1050">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" title="Chilly Dog, Warm Troubles - 1440x900">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" title="Chilly Dog, Warm Troubles - 1600x1200">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" title="Chilly Dog, Warm Troubles - 1680x1050">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" title="Chilly Dog, Warm Troubles - 1680x1200">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" title="Chilly Dog, Warm Troubles - 1920x1080">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" title="Chilly Dog, Warm Troubles - 1920x1200">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" title="Chilly Dog, Warm Troubles - 1920x1440">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" title="Chilly Dog, Warm Troubles - 2560x1440">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" title="Chilly Dog, Warm Troubles - 3840x2160">3840x2160</a></li></ul><h2 id="modern-christmas-magic-12-2025">Modern Christmas Magic</h2><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><figure><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/dec-25-modern-christmas-magic-full.png" title="Modern Christmas Magic"><img alt="Modern Christmas Magic" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2025/dec-25-modern-christmas-magic-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/dec-25-modern-christmas-magic-preview.png" title="Modern Christmas Magic - Preview">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" title="Modern Christmas Magic - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1024x768.png" title="Modern Christmas Magic - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1400x900.png" title="Modern Christmas Magic - 1400x900">1400x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1400x1050.png" title="Modern Christmas Magic - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1600x1200.png" title="Modern Christmas Magic - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1680x1050.png" title="Modern Christmas Magic - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1920x1080.png" title="Modern Christmas Magic - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1920x1200.png" title="Modern Christmas Magic - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1920x1440.png" title="Modern Christmas Magic - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-2560x1440.png" title="Modern Christmas Magic - 2560x1440">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" title="Modern Christmas Magic - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1024x768.png" title="Modern Christmas Magic - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1400x900.png" title="Modern Christmas Magic - 1400x900">1400x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1400x1050.png" title="Modern Christmas Magic - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1600x1200.png" title="Modern Christmas Magic - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1680x1050.png" title="Modern Christmas Magic - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1920x1080.png" title="Modern Christmas Magic - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1920x1200.png" title="Modern Christmas Magic - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1920x1440.png" title="Modern Christmas Magic - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-2560x1440.png" title="Modern Christmas Magic - 2560x1440">2560x1440</a></li></ul><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://www.smashingmagazine.com/printed-books/image-optimization/"><div><picture><source srcset="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2c669cf1-c6ef-4c87-9901-018b04f7871f/image-optimization-shop-cover-opt.avif" type="image/avif"><img alt="Feature Panel" decoding="async" height="697" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/87fd0cfa-692e-459c-b2f3-15209a1f6aa7/image-optimization-shop-cover-opt.png" width="480"></img></source></picture></div></a></div></aside></div><h2 id="dear-moon-merry-christmas">Dear Moon, Merry Christmas</h2><p>Designed by <a href="https://vlad.studio/">Vlad Gerasimov</a> from Georgia.</p><figure><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" title="Dear Moon, Merry Christmas"><img alt="Dear Moon, Merry Christmas" 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"></img></a></figure><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" title="Dear Moon, Merry Christmas - Preview">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" title="Dear Moon, Merry Christmas - 800x480">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" title="Dear Moon, Merry Christmas - 800x600">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" title="Dear Moon, Merry Christmas - 1024x600">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" title="Dear Moon, Merry Christmas - 1024x768">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" title="Dear Moon, Merry Christmas - 1152x864">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" title="Dear Moon, Merry Christmas - 1280x720">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" title="Dear Moon, Merry Christmas - 1280x800">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" title="Dear Moon, Merry Christmas - 1280x960">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" title="Dear Moon, Merry Christmas - 1280x1024">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" title="Dear Moon, Merry Christmas - 1366x768">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" title="Dear Moon, Merry Christmas - 1400x1050">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" title="Dear Moon, Merry Christmas - 1440x900">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" title="Dear Moon, Merry Christmas - 1440x960">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" title="Dear Moon, Merry Christmas - 1600x900">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" title="Dear Moon, Merry Christmas - 1600x1200">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" title="Dear Moon, Merry Christmas - 1680x1050">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" title="Dear Moon, Merry Christmas - 1680x1200">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" title="Dear Moon, Merry Christmas - 1920x1080">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" title="Dear Moon, Merry Christmas - 1920x1200">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" title="Dear Moon, Merry Christmas - 1920x1440">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" title="Dear Moon, Merry Christmas - 2560x1440">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" title="Dear Moon, Merry Christmas - 2560x1600">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" title="Dear Moon, Merry Christmas - 2880x1800">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" title="Dear Moon, Merry Christmas - 3072x1920">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" title="Dear Moon, Merry Christmas - 3840x2160">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" title="Dear Moon, Merry Christmas - 5120x2880">5120x2880</a></li></ul><h2 id="its-in-the-little-things">It’s In The Little Things</h2><p>Designed by Thaïs Lenglez from Belgium.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2024/dec-13-its-in-the-little-things-full-opt.png" title="It’s In The Little Things"><img alt="It’s In The Little Things" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2024/dec-13-its-in-the-little-things-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2024/dec-13-its-in-the-little-things-preview-opt.png" title="It’s In The Little Things - Preview">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" title="It’s In The Little Things - 640x480">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" title="It’s In The Little Things - 800x600">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" title="It’s In The Little Things - 1024x768">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" title="It’s In The Little Things - 1280x1024">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" title="It’s In The Little Things - 1440x900">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" title="It’s In The Little Things - 1600x1200">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" title="It’s In The Little Things - 1680x1050">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" title="It’s In The Little Things - 1920x1080">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" title="It’s In The Little Things - 1920x1200">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" title="It’s In The Little Things - 2560x1440">2560x1440</a></li></ul><h2 id="the-house-on-the-river-drina">The House On The River Drina</h2><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><figure><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" title="The House On The River Drina"><img alt="Christmas Wallpaper — The House On The River Drina" 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"></img></a></figure><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" title="The House On The River Drina - Preview">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" title="The House On The River Drina - 640x480">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" title="The House On The River Drina - 800x600">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" title="The House On The River Drina - 1024x1024">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" title="The House On The River Drina - 1152x864">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" title="The House On The River Drina - 1280x720">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" title="The House On The River Drina - 1280x960">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" title="The House On The River Drina - 1280x1024">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" title="The House On The River Drina - 1366x768">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" title="The House On The River Drina - 1400x1050">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" title="The House On The River Drina - 1440x900">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" title="The House On The River Drina - 1600x1200">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" title="The House On The River Drina - 1680x1200">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" title="The House On The River Drina - 1920x1080">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" title="The House On The River Drina - 1920x1200">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" title="The House On The River Drina - 1920x1440">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" title="The House On The River Drina - 2560x1440">2560x1440</a></li></ul><h2 id="christmas-cookies">Christmas Cookies</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/57f8e478-f6a2-4eeb-bac0-45d8dd01d7cb/dec-17-christmas-cookies-full.png" title="Christmas Cookies"><img alt="Christmas Cookies" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/251c117b-6e3a-42eb-b274-82af1abf00ed/dec-17-christmas-cookies-preview-opt.png"></img></a></figure><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" title="Christmas Cookies - Preview">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" title="Christmas Cookies - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-640x480.png" title="Christmas Cookies - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-640x1136.png" title="Christmas Cookies - 640x1136">640x1136</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-750x1334.png" title="Christmas Cookies - 750x1334">750x1334</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-800x480.png" title="Christmas Cookies - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-800x600.png" title="Christmas Cookies - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1024x768.png" title="Christmas Cookies - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1024x1024.png" title="Christmas Cookies - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1152x864.png" title="Christmas Cookies - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1242x2208.png" title="Christmas Cookies - 1242x2208">1242x2208</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1280x720.png" title="Christmas Cookies - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1280x800.png" title="Christmas Cookies - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1280x960.png" title="Christmas Cookies - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1280x1024.png" title="Christmas Cookies - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1366x768.png" title="Christmas Cookies - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1400x1050.png" title="Christmas Cookies - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1440x900.png" title="Christmas Cookies - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1600x1200.png" title="Christmas Cookies - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1680x1050.png" title="Christmas Cookies - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1680x1200.png" title="Christmas Cookies - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1920x1080.png" title="Christmas Cookies - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1920x1200.png" title="Christmas Cookies - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1920x1440.png" title="Christmas Cookies - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-2560x1440.png" title="Christmas Cookies - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-2880x1800.png" title="Christmas Cookies - 2880x1800">2880x1800</a></li></ul><h2 id="sweet-snowy-tenderness">Sweet Snowy Tenderness</h2><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><figure><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" title="Sweet Snowy Tenderness"><img alt="Sweet Snowy Tenderness" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6179490e-9ece-4078-8a4b-d37c27f546b4/dec-18-sweet-snowy-tenderness-preview-opt.png"></img></a></figure><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" title="Sweet Snowy Tenderness - Preview">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" title="Sweet Snowy Tenderness - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-640x480.jpg" title="Sweet Snowy Tenderness - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-800x480.jpg" title="Sweet Snowy Tenderness - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-800x600.jpg" title="Sweet Snowy Tenderness - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1024x768.jpg" title="Sweet Snowy Tenderness - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1024x1024.jpg" title="Sweet Snowy Tenderness - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1152x864.jpg" title="Sweet Snowy Tenderness - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1280x720.jpg" title="Sweet Snowy Tenderness - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1280x800.jpg" title="Sweet Snowy Tenderness - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1280x960.jpg" title="Sweet Snowy Tenderness - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1280x1024.jpg" title="Sweet Snowy Tenderness - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1366x768.jpg" title="Sweet Snowy Tenderness - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1400x1050.jpg" title="Sweet Snowy Tenderness - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1440x900.jpg" title="Sweet Snowy Tenderness - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1600x1200.jpg" title="Sweet Snowy Tenderness - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1680x1050.jpg" title="Sweet Snowy Tenderness - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1680x1200.jpg" title="Sweet Snowy Tenderness - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1920x1080.jpg" title="Sweet Snowy Tenderness - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1920x1200.jpg" title="Sweet Snowy Tenderness - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1920x1440.jpg" title="Sweet Snowy Tenderness - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-2560x1440.jpg" title="Sweet Snowy Tenderness - 2560x1440">2560x1440</a></li></ul><h2 id="anonymoose">Anonymoose</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/83743101-3686-4fa1-8527-f43b5298c85f/dec-21-anonymoose-nocal-full-opt.png" title="Anonymoose"><img alt="Anonymoose" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/53276d0a-8060-42fc-adea-e59eed8f78e8/dec-21-anonymoose-nocal-preview-opt.png"></img></a></figure><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" title="Anonymoose - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-640x480.png" title="Anonymoose - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-800x480.png" title="Anonymoose - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-800x600.png" title="Anonymoose - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1024x768.png" title="Anonymoose - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1024x1024.png" title="Anonymoose - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1152x864.png" title="Anonymoose - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1280x720.png" title="Anonymoose - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1280x800.png" title="Anonymoose - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1280x960.png" title="Anonymoose - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1280x1024.png" title="Anonymoose - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1366x768.png" title="Anonymoose - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1400x1050.png" title="Anonymoose - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1440x900.png" title="Anonymoose - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1600x1200.png" title="Anonymoose - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1680x1050.png" title="Anonymoose - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1680x1200.png" title="Anonymoose - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1920x1080.png" title="Anonymoose - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1920x1200.png" title="Anonymoose - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1920x1440.png" title="Anonymoose - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-2560x1440.png" title="Anonymoose - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-3840x2160.png" title="Anonymoose - 3840x2160">3840x2160</a></li></ul><h2 id="cardinals-in-snowfall">Cardinals In Snowfall</h2><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><figure><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" title="Cardinals In Snowfall"><img alt="Cardinals In Snowfall" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0a28051e-b3bc-4eff-a30b-2456c249aed5/dec-18-cardinals-in-snowfall-preview-opt.png"></img></a></figure><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" title="Cardinals In Snowfall - Preview">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" title="Cardinals In Snowfall - 640x960">640x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-768x1024.jpg" title="Cardinals In Snowfall - 768x1024">768x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-1280x720.jpg" title="Cardinals In Snowfall - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-1280x1024.jpg" title="Cardinals In Snowfall - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-1366x768.jpg" title="Cardinals In Snowfall - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-1920x1080.jpg" title="Cardinals In Snowfall - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-2560x1440.jpg" title="Cardinals In Snowfall - 2560x1440">2560x1440</a></li></ul><h2 id="getting-hygge">Getting Hygge</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ad2c8c59-c9c4-4153-a57e-8602ff6e09d7/dec-17-getting-hygge-full-opt.png" title="Getting Hygge"><img alt="Getting Hygge" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1145e84f-229d-4f9e-82b6-370c707e695c/dec-17-getting-hygge-preview-opt.png"></img></a></figure><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" title="Getting Hygge - Preview">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" title="Getting Hygge - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-640x480.png" title="Getting Hygge - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-800x600.png" title="Getting Hygge - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1024x768.png" title="Getting Hygge - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1280x960.png" title="Getting Hygge - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1440x900.png" title="Getting Hygge - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1600x1200.png" title="Getting Hygge - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1680x1050.png" title="Getting Hygge - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1680x1200.png" title="Getting Hygge - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1920x1080.png" title="Getting Hygge - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1920x1440.png" title="Getting Hygge - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-2560x1440.png" title="Getting Hygge - 2560x1440">2560x1440</a></li></ul><h2 id="christmas-woodland">Christmas Woodland</h2><p>Designed by <a href="https://melarmstrongdesign.com">Mel Armstrong</a> from Australia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3ebce7f3-b902-49e1-8c71-59f7ebffe370/dec-17-christmas-woodland-full.png" title="Christmas Woodland"><img alt="Christmas Woodland" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2ef5c205-d211-4776-ad9e-f69626f25b88/dec-17-christmas-woodland-preview-opt.png"></img></a></figure><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" title="Christmas Woodland - Preview">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" title="Christmas Woodland - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-640x480.png" title="Christmas Woodland - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-800x480.png" title="Christmas Woodland - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-800x600.png" title="Christmas Woodland - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1024x768.png" title="Christmas Woodland - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1024x1024.png" title="Christmas Woodland - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1152x864.png" title="Christmas Woodland - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1280x720.png" title="Christmas Woodland - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1280x800.png" title="Christmas Woodland - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1280x960.png" title="Christmas Woodland - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1280x1024.png" title="Christmas Woodland - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1366x768.png" title="Christmas Woodland - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1400x1050.png" title="Christmas Woodland - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1440x900.png" title="Christmas Woodland - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1600x1200.png" title="Christmas Woodland - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1680x1050.png" title="Christmas Woodland - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1680x1200.png" title="Christmas Woodland - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1920x1080.png" title="Christmas Woodland - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1920x1200.png" title="Christmas Woodland - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1920x1440.png" title="Christmas Woodland - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-2560x1440.png" title="Christmas Woodland - 2560x1440">2560x1440</a></li></ul><h2 id="joy-to-the-world">Joy To The World</h2><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><figure><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" title="Joy To The World"><img alt="Joy To The World" 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"></img></a></figure><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" title="Joy To The World - Preview">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" title="Joy To The World - 320x480">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" title="Joy To The World - 640x480">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" title="Joy To The World - 800x480">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" title="Joy To The World - 800x600">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" title="Joy To The World - 1024x768">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" title="Joy To The World - 1024x1024">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" title="Joy To The World - 1152x864">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" title="Joy To The World - 1280x720">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" title="Joy To The World - 1280x800">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" title="Joy To The World - 1280x960">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" title="Joy To The World - 1280x1024">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" title="Joy To The World - 1400x1050">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" title="Joy To The World - 1440x900">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" title="Joy To The World - 1600x1200">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" title="Joy To The World - 1680x1050">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" title="Joy To The World - 1680x1200">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" title="Joy To The World - 1920x1080">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" title="Joy To The World - 1920x1200">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" title="Joy To The World - 1920x1440">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" title="Joy To The World - 2560x1440">2560x1440</a></li></ul><h2 id="gifts-lover">Gifts Lover</h2><p>Designed by <a href="https://www.doud.be">Elise Vanoorbeek</a> from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/25b69dac-5d0b-4e0a-bf39-b2554ec557db/dec-14-gifts-lover-full.png" title="Gifts Lover"><img alt="Gifts Lover" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3c9e03e4-efa6-4fb8-8a0d-69f1edd9479a/dec-14-gifts-lover-preview-opt.png"></img></a></figure><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" title="Gifts Lover - Preview">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" title="Gifts Lover - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-800x600.jpg" title="Gifts Lover - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1024x768.jpg" title="Gifts Lover - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1024x1024.jpg" title="Gifts Lover - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1152x864.jpg" title="Gifts Lover - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1280x800.jpg" title="Gifts Lover - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1280x960.jpg" title="Gifts Lover - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1280x1024.jpg" title="Gifts Lover - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1366x768.jpg" title="Gifts Lover - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1400x1050.jpg" title="Gifts Lover - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1440x900.jpg" title="Gifts Lover - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1600x1200.jpg" title="Gifts Lover - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1680x1050.jpg" title="Gifts Lover - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1680x1200.jpg" title="Gifts Lover - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1920x1080.jpg" title="Gifts Lover - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1920x1200.jpg" title="Gifts Lover - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1920x1440.jpg" title="Gifts Lover - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-2560x1440.jpg" title="Gifts Lover - 2560x1440">2560x1440</a></li></ul><h2 id="king-of-pop">King Of Pop</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><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" title="King Of Pop"><img alt="King Of Pop" 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"></img></a></figure><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" title="King Of Pop - Preview">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" title="King Of Pop - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-800x480.png" title="King Of Pop - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-800x600.png" title="King Of Pop - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1024x768.png" title="King Of Pop - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1024x1024.png" title="King Of Pop - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1152x864.png" title="King Of Pop - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1280x720.png" title="King Of Pop - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1280x800.png" title="King Of Pop - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1280x960.png" title="King Of Pop - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1280x1024.png" title="King Of Pop - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1366x768.png" title="King Of Pop - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1400x1050.png" title="King Of Pop - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1440x900.png" title="King Of Pop - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1600x1200.png" title="King Of Pop - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1680x1050.png" title="King Of Pop - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1680x1200.png" title="King Of Pop - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1920x1080.png" title="King Of Pop - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1920x1200.png" title="King Of Pop - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1920x1440.png" title="King Of Pop - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-2560x1440.png" title="King Of Pop - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-3840x2160.png" title="King Of Pop - 3840x2160">3840x2160</a></li></ul><h2 id="the-matterhorn">The Matterhorn</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/94e4bf3b-1ef4-4679-80ab-00c831c2be80/dec-16-the-matterhorn-full-opt.png" title="The Matterhorn"><img alt="Christmas Wallpaper — The Matterhorn" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/25937464-9e3c-4bf5-9fc3-611b54699aa6/dec-16-the-matterhorn-preview-opt.png"></img></a></figure><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" title="The Matterhorn - Preview">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" title="The Matterhorn - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-800x600.png" title="The Matterhorn - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1024x768.png" title="The Matterhorn - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1280x720.png" title="The Matterhorn - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1400x1050.png" title="The Matterhorn - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1680x1200.png" title="The Matterhorn - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1920x1080.png" title="The Matterhorn - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1920x1200.png" title="The Matterhorn - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1920x1440.png" title="The Matterhorn - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-2560x1440.png" title="The Matterhorn - 2560x1440">2560x1440</a></li></ul><h2 id="ninja-santa">Ninja Santa</h2><p>Designed by Elise Vanoorbeek from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/caf4e170-afb2-458a-af83-b67925f3ea7e/dec-13-ninja-santa-full-opt.png" title="Ninja Santa"><img alt="Ninja Santa" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/72db2dde-7f71-4aac-88c3-f17b540e8343/dec-13-ninja-santa-preview-opt.png"></img></a></figure><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" title="Ninja Santa — Preview">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" title="Ninja Santa - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1366x768.jpg" title="Ninja Santa - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1400x1050.jpg" title="Ninja Santa - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1440x900.jpg" title="Ninja Santa - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1600x1200.jpg" title="Ninja Santa - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1680x1050.jpg" title="Ninja Santa - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1680x1200.jpg" title="Ninja Santa - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1920x1080.jpg" title="Ninja Santa - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1920x1440.jpg" title="Ninja Santa - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-2560x1440.jpg" title="Ninja Santa - 2560x1440">2560x1440</a></li></ul><h2 id="ice-flowers">Ice Flowers</h2><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><figure><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 alt="Ice Flowers" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7b4a5499-4254-4d4f-a460-0f0964721a55/january-10-ice-flowers-preview-opt.png"></img></a></figure><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><h2 id="christmas-selfie">Christmas Selfie</h2><p>Designed by <a href="https://www.elacarta.com">Emanuela Carta</a> from Italy.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3eac541a-4c0e-45a9-ab06-7ec0fee72084/dec-16-christmas-selfie-full-opt.png" title="Christmas Selfie"><img alt="Christmas Wallpaper — Christmas Selfie" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3df98b9f-310f-4a63-b885-6b97ba4edccf/dec-16-christmas-selfie-preview-opt.png"></img></a></figure><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" title="Christmas Selfie - Preview">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" title="Christmas Selfie - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-800x600.png" title="Christmas Selfie - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-1280x800.png" title="Christmas Selfie - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-1280x1024.png" title="Christmas Selfie - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-1440x900.png" title="Christmas Selfie - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-1680x1050.png" title="Christmas Selfie - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-2560x1440.png" title="Christmas Selfie - 2560x1440">2560x1440</a></li></ul><h2 id="winter-wonderland">Winter Wonderland</h2><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><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-dec-2023/dec-16-winter-wonderland-full-opt.png" title="Winter Wonderland"><img alt="Christmas Wallpaper — Winter Wonderland" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-dec-2023/dec-16-winter-wonderland-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-dec-2023/dec-16-winter-wonderland-preview-opt.png" title="Winter Wonderland - Preview">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" title="Winter Wonderland - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1280x800.jpg" title="Winter Wonderland - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1280x960.jpg" title="Winter Wonderland - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1280x1024.jpg" title="Winter Wonderland - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1366x768.jpg" title="Winter Wonderland - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1400x1050.jpg" title="Winter Wonderland - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1440x900.jpg" title="Winter Wonderland - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1600x1200.jpg" title="Winter Wonderland - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1680x1050.jpg" title="Winter Wonderland - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1680x1200.jpg" title="Winter Wonderland - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1920x1080.jpg" title="Winter Wonderland - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1920x1440.jpg" title="Winter Wonderland - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-2560x1440.jpg" title="Winter Wonderland - 2560x1440">2560x1440</a></li></ul><h2 id="winter-coziness-at-home">Winter Coziness At Home</h2><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><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-dec-2023/dec-22-winter-coziness-at-home-full-opt.png" title="Winter Coziness At Home"><img alt="Winter Coziness At Home" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-dec-2023/dec-22-winter-coziness-at-home-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-dec-2023/dec-22-winter-coziness-at-home-preview-opt.png" title="Winter Coziness At Home - Preview">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" title="Winter Coziness At Home - 320x480">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" title="Winter Coziness At Home - 640x480">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" title="Winter Coziness At Home - 800x480">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" title="Winter Coziness At Home - 800x600">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" title="Winter Coziness At Home - 1024x768">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" title="Winter Coziness At Home - 1024x1024">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" title="Winter Coziness At Home - 1152x864">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" title="Winter Coziness At Home - 1280x720">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" title="Winter Coziness At Home - 1280x800">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" title="Winter Coziness At Home - 1280x960">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" title="Winter Coziness At Home - 1280x1024">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" title="Winter Coziness At Home - 1366x768">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" title="Winter Coziness At Home - 1400x1050">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" title="Winter Coziness At Home - 1440x900">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" title="Winter Coziness At Home - 1600x1200">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" title="Winter Coziness At Home - 1680x1050">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" title="Winter Coziness At Home - 1680x1200">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" title="Winter Coziness At Home - 1920x1080">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" title="Winter Coziness At Home - 1920x1200">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" title="Winter Coziness At Home - 1920x1440">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" title="Winter Coziness At Home - 2560x1440">2560x1440</a></li></ul><h2 id="enchanted-blizzard">Enchanted Blizzard</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/913ccea9-595b-4aff-9550-0afec57203cc/dec-17-enchanted-blizzard-full-opt.png" title="Enchanted Blizzard"><img alt="Enchanted Blizzard" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/21da6af5-5de8-44c2-9a02-d0e17a1425fa/dec-17-enchanted-blizzard-preview-opt.png"></img></a></figure><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" title="Enchanted Blizzard - Preview">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" title="Enchanted Blizzard - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-640x480.png" title="Enchanted Blizzard - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-800x480.png" title="Enchanted Blizzard - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-800x600.png" title="Enchanted Blizzard - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1024x768.png" title="Enchanted Blizzard - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1024x1024.png" title="Enchanted Blizzard - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1152x864.png" title="Enchanted Blizzard - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1280x720.png" title="Enchanted Blizzard - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1280x800.png" title="Enchanted Blizzard - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1280x960.png" title="Enchanted Blizzard - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1280x1024.png" title="Enchanted Blizzard - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1400x1050.png" title="Enchanted Blizzard - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1440x900.png" title="Enchanted Blizzard - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1600x1200.png" title="Enchanted Blizzard - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1680x1050.png" title="Enchanted Blizzard - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1680x1200.png" title="Enchanted Blizzard - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1920x1080.png" title="Enchanted Blizzard - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1920x1200.png" title="Enchanted Blizzard - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1920x1440.png" title="Enchanted Blizzard - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-2560x1440.png" title="Enchanted Blizzard - 2560x1440">2560x1440</a></li></ul><h2 id="all-that-belongs-to-the-past">All That Belongs To The Past</h2><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><figure><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" title="All That Belongs To The Past"><img alt="All That Belongs To The Past" 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"></img></a></figure><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" title="All That Belongs To The Past - 800x480">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" title="All That Belongs To The Past - 800x600">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" title="All That Belongs To The Past - 1024x1024">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" title="All That Belongs To The Past - 1152x864">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" title="All That Belongs To The Past - 1280x720">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" title="All That Belongs To The Past - 1280x800">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" title="All That Belongs To The Past - 1280x960">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" title="All That Belongs To The Past - 1280x1024">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" title="All That Belongs To The Past - 1366x768">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" title="All That Belongs To The Past - 1400x1050">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" title="All That Belongs To The Past - 1440x900">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" title="All That Belongs To The Past - 1600x1200">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" title="All That Belongs To The Past - 1680x1050">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" title="All That Belongs To The Past - 1680x1200">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" title="All That Belongs To The Past - 1920x1080">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" title="All That Belongs To The Past - 1920x1200">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" title="All That Belongs To The Past - 1920x1440">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" title="All That Belongs To The Past - 2560x1440">2560x1440</a></li></ul><h2 id="december-through-different-eyes">December Through Different Eyes</h2><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><figure><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" title="December Through Different Eyes"><img alt="Christmas Wallpaper — December Through Different Eyes" 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"></img></a></figure><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" title="December Through Different Eyes - Preview">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" title="December Through Different Eyes - 320x480">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" title="December Through Different Eyes - 800x480">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" title="December Through Different Eyes - 1280x800">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" title="December Through Different Eyes - 1280x1024">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" title="December Through Different Eyes - 1920x1080">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" title="December Through Different Eyes - 2560x1440">2560x1440</a></li></ul><h2 id="silver-winter">Silver Winter</h2><p>Designed by <a href="https://www.violetadabija.com">Violeta Dabija</a> from Moldova.</p><figure><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 alt="Silver Winter" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/00c28b2f-a996-41f4-a7f4-34c602e7bfd0/january-11-silver-winter-preview-opt.png"></img></a></figure><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><h2 id="cozy">Cozy</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/066c8801-c795-4511-a131-3bf9ac7fa84d/dec-18-cosy-nocal-full-opt.png" title="Cozy"><img alt="Cozy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0d1eb07b-e179-42ba-9770-2ed95ca02a44/dec-18-cosy-nocal-preview-opt.png"></img></a></figure><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" title="Cozy - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-320x480.png" title="Cozy - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-640x480.png" title="Cozy - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-960x560.png" title="Cozy - 960x560">960x560</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-1024x768.png" title="Cozy - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-1280x960.png" title="Cozy - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-1440x900.png" title="Cozy - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-1600x1200.png" title="Cozy - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-1920x1080.png" title="Cozy - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-1920x1200.png" title="Cozy - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-2560x1440.png" title="Cozy - 2560x1440">2560x1440</a></li></ul><h2 id="tongue-stuck-on-lamppost">Tongue Stuck On Lamppost</h2><p>Designed by <a href="https://www.joshcleland.com">Josh Cleland</a> from the United States.</p><figure><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 alt="Tongue Stuck On Lamppost" 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"></img></a></figure><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><h2 id="on-to-the-next-one">On To The Next One</h2><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><figure><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" title="On To The Next One"><img alt="On To The Next One" 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"></img></a></figure><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" title="On To The Next One - Preview">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" title="On To The Next One - 320x480">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" title="On To The Next One - 640x480">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" title="On To The Next One - 800x480">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" title="On To The Next One - 800x600">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" title="On To The Next One - 1024x768">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" title="On To The Next One - 1024x1024">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" title="On To The Next One - 1152x864">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" title="On To The Next One - 1280x720">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" title="On To The Next One - 1280x800">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" title="On To The Next One - 1280x960">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" title="On To The Next One - 1280x1024">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" title="On To The Next One - 1366x768">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" title="On To The Next One - 1400x1050">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" title="On To The Next One - 1440x900">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" title="On To The Next One - 1600x1200">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" title="On To The Next One - 1680x1050">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" title="On To The Next One - 1680x1200">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" title="On To The Next One - 1920x1080">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" title="On To The Next One - 1920x1200">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" title="On To The Next One - 1920x1440">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" title="On To The Next One - 2560x1440">2560x1440</a></li></ul><h2 id="christmas-owl">Christmas Owl</h2><p>“Christmas waves a magic wand over this world, and behold, everything is softer and more beautiful.” — Designed by Suman Sil from India.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0f4c81c4-baa1-4ce1-9757-0d5d6e485eb2/dec-17-christmas-owl-full-opt.png" title="Christmas Owl"><img alt="Christmas Owl" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b68a038c-82d8-4c8d-acaa-1038bccaf8e0/dec-17-christmas-owl-preview-opt.png"></img></a></figure><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" title="Christmas Owl - Preview">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" title="Christmas Owl - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1280x800.jpg" title="Christmas Owl - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1280x960.jpg" title="Christmas Owl - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1366x768.jpg" title="Christmas Owl - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1400x1050.jpg" title="Christmas Owl - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1440x900.jpg" title="Christmas Owl - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1600x1200.jpg" title="Christmas Owl - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1680x1050.jpg" title="Christmas Owl - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1680x1200.jpg" title="Christmas Owl - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1920x1080.jpg" title="Christmas Owl - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1920x1200.jpg" title="Christmas Owl - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1920x1440.jpg" title="Christmas Owl - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-2560x1440.jpg" title="Christmas Owl - 2560x1440">2560x1440</a></li></ul><h2 id="catch-your-perfect-snowflake">Catch Your Perfect Snowflake</h2><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><figure><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" title="Catch Your Perfect Snowflake"><img alt="Catch Your Perfect Snowflake" 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"></img></a></figure><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" title="Catch Your Perfect Snowflake - 800x480">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" title="Catch Your Perfect Snowflake - 800x600">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" title="Catch Your Perfect Snowflake - 1024x768">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" title="Catch Your Perfect Snowflake - 1024x1024">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" title="Catch Your Perfect Snowflake - 1152x864">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" title="Catch Your Perfect Snowflake - 1280x720">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" title="Catch Your Perfect Snowflake - 1280x800">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" title="Catch Your Perfect Snowflake - 1280x960">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" title="Catch Your Perfect Snowflake - 1280x1024">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" title="Catch Your Perfect Snowflake - 1400x1050">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" title="Catch Your Perfect Snowflake - 1440x900">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" title="Catch Your Perfect Snowflake - 1600x1200">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" title="Catch Your Perfect Snowflake - 1680x1050">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" title="Catch Your Perfect Snowflake - 1680x1200">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" title="Catch Your Perfect Snowflake - 1920x1080">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" title="Catch Your Perfect Snowflake - 1920x1200">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" title="Catch Your Perfect Snowflake - 1920x1440">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" title="Catch Your Perfect Snowflake - 2560x1440">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" title="Catch Your Perfect Snowflake - 2560x1600">2560x1600</a></li></ul><h2 id="winter-garphee">Winter Garphee</h2><p>“Garphee’s flufiness glowing in the snow.” Designed by Razvan Garofeanu from Romania.</p><figure><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 alt="Winter Garphee" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/158e76da-934e-4e62-bdb1-32616ccd9e84/december-12-winter-garphee-81-preview-opt.png"></img></a></figure><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><h2 id="trailer-santa">Trailer Santa</h2><p>“A mid-century modern Christmas scene outside the norm of snowflakes and winter landscapes.” Designed by Houndstooth from the United States.</p><figure><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 alt="Trailer Santa" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1d3703c2-593a-4ff4-a08a-52cb237ddb64/december-12-trailer-santa-21-preview-opt.png"></img></a></figure><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" title="Trailer Santa">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><h2 id="winter-solstice">Winter Solstice</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/eaf114e2-475a-4945-9185-ce491e025194/dec-15-winter-solstice-full-opt.png" title="Winter Solstice"><img alt="Winter Solstice" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c31b7a20-902c-4956-a266-a88bd5a4b7cb/dec-15-winter-solstice-preview-opt.png"></img></a></figure><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" title="Winter Solstice - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-640x480.jpg" title="Winter Solstice - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-800x480.jpg" title="Winter Solstice - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-800x600.jpg" title="Winter Solstice - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1024x768.jpg" title="Winter Solstice - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1024x1024.jpg" title="Winter Solstice - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1152x864.jpg" title="Winter Solstice - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1280x720.jpg" title="Winter Solstice - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1280x800.jpg" title="Winter Solstice - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1280x960.jpg" title="Winter Solstice - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1280x1024.jpg" title="Winter Solstice - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1366x768.jpg" title="Winter Solstice - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1400x1050.jpg" title="Winter Solstice - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1440x900.jpg" title="Winter Solstice - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1600x1200.jpg" title="Winter Solstice - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1680x1050.jpg" title="Winter Solstice - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1680x1200.jpg" title="Winter Solstice - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1920x1080.jpg" title="Winter Solstice - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1920x1200.jpg" title="Winter Solstice - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1920x1440.jpg" title="Winter Solstice - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-2560x1440.jpg" title="Winter Solstice - 2560x1440">2560x1440</a></li></ul><h2 id="christmas-time">Christmas Time</h2><p>Designed by Sofie Keirsmaekers from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a9988e43-6ee8-414c-8136-ac6939c5182e/dec-13-christmas-time-full-opt.png" title="Christmas Time!"><img alt="Christmas Time!" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cf1ce792-3363-4899-9714-fd569b53452b/dec-13-christmas-time-preview-opt.png"></img></a></figure><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" title="Christmas Time! — Preview">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" title="Christmas Time! - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/christmas-time-/nocal/dec-13-christmas-time--nocal-1024x1024.png" title="Christmas Time! - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/christmas-time-/nocal/dec-13-christmas-time--nocal-1280x1024.png" title="Christmas Time! - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/christmas-time-/nocal/dec-13-christmas-time--nocal-1440x900.png" title="Christmas Time! - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/christmas-time-/nocal/dec-13-christmas-time--nocal-1920x1200.png" title="Christmas Time! - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/christmas-time-/nocal/dec-13-christmas-time--nocal-2560x1440.png" title="Christmas Time! - 2560x1440">2560x1440</a></li></ul><h2 id="happy-holidays">Happy Holidays</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e16c6728-d3a1-4800-8a6e-e3c45d2512ac/dec-20-happy-holidays-full-opt.png" title="Happy Holidays"><img alt="Happy Holidays" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/56b7fbec-60c7-4776-96d0-028c06c5a552/dec-20-happy-holidays-preview-opt.png"></img></a></figure><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" title="Happy Holidays - Preview">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" title="Happy Holidays - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-800x480.png" title="Happy Holidays - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-800x600.png" title="Happy Holidays - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1024x768.png" title="Happy Holidays - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1024x1024.png" title="Happy Holidays - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1152x864.png" title="Happy Holidays - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1280x720.png" title="Happy Holidays - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1280x800.png" title="Happy Holidays - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1280x960.png" title="Happy Holidays - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1280x1024.png" title="Happy Holidays - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1366x768.png" title="Happy Holidays - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1400x1050.png" title="Happy Holidays - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1440x900.png" title="Happy Holidays - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1600x1200.png" title="Happy Holidays - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1680x1050.png" title="Happy Holidays - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1680x1200.png" title="Happy Holidays - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1920x1080.png" title="Happy Holidays - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1920x1200.png" title="Happy Holidays - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1920x1440.png" title="Happy Holidays - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-2560x1440.png" title="Happy Holidays - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-3840x2160.png" title="Happy Holidays - 3840x2160">3840x2160</a></li></ul><h2 id="get-featured-next-month">Get Featured Next Month</h2><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></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <h1>A Sparkle Of December Magic (2025 Wallpapers Edition) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>12 min read</li><li><a href="http://www.smashingmagazine.com/category/wallpapers">Wallpapers</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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!</section></p><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></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><h2 id="zero-gravity-december-12-2025">Zero-Gravity December</h2><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><figure><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/dec-25-zero-gravity-december-full.png" title="Zero-Gravity December"><img alt="Zero-Gravity December" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2025/dec-25-zero-gravity-december-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/dec-25-zero-gravity-december-preview.png" title="Zero-Gravity December - Preview">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" title="Zero-Gravity December - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-640x480.png" title="Zero-Gravity December - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-800x480.png" title="Zero-Gravity December - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-800x600.png" title="Zero-Gravity December - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1024x768.png" title="Zero-Gravity December - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1024x1024.png" title="Zero-Gravity December - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1152x864.png" title="Zero-Gravity December - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1280x720.png" title="Zero-Gravity December - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1280x800.png" title="Zero-Gravity December - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1280x960.png" title="Zero-Gravity December - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1280x1020.png" title="Zero-Gravity December - 1280x1020">1280x1020</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1400x1050.png" title="Zero-Gravity December - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1440x900.png" title="Zero-Gravity December - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1600x1200.png" title="Zero-Gravity December - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1680x1050.png" title="Zero-Gravity December - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1680x1200.png" title="Zero-Gravity December - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1920x1080.png" title="Zero-Gravity December - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1920x1200.png" title="Zero-Gravity December - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-1920x1440.png" title="Zero-Gravity December - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/cal/dec-25-zero-gravity-december-cal-2560x1440.png" title="Zero-Gravity December - 2560x1440">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" title="Zero-Gravity December - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-640x480.png" title="Zero-Gravity December - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-800x480.png" title="Zero-Gravity December - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-800x600.png" title="Zero-Gravity December - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1024x768.png" title="Zero-Gravity December - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1024x1024.png" title="Zero-Gravity December - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1152x864.png" title="Zero-Gravity December - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1280x720.png" title="Zero-Gravity December - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1280x800.png" title="Zero-Gravity December - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1280x960.png" title="Zero-Gravity December - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1280x1020.png" title="Zero-Gravity December - 1280x1020">1280x1020</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1400x1050.png" title="Zero-Gravity December - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1440x900.png" title="Zero-Gravity December - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1600x1200.png" title="Zero-Gravity December - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1680x1050.png" title="Zero-Gravity December - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1680x1200.png" title="Zero-Gravity December - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1920x1080.png" title="Zero-Gravity December - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1920x1200.png" title="Zero-Gravity December - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-1920x1440.png" title="Zero-Gravity December - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/zero-gravity-december/nocal/dec-25-zero-gravity-december-nocal-2560x1440.png" title="Zero-Gravity December - 2560x1440">2560x1440</a></li></ul><h2 id="a-quiet-december-walk-12-2025">A Quiet December Walk</h2><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><figure><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/dec-25-a-quiet-december-walk-full.png" title="A Quiet December Walk"><img alt="A Quiet December Walk" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2025/dec-25-a-quiet-december-walk-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/a-quiet-december-walk/dec-25-a-quiet-december-walk-preview.png" title="A Quiet December Walk - Preview">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" title="A Quiet December Walk - 320x480">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" title="A Quiet December Walk - 640x480">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" title="A Quiet December Walk - 800x480">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" title="A Quiet December Walk - 800x600">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" title="A Quiet December Walk - 1024x768">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" title="A Quiet December Walk - 1024x1024">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" title="A Quiet December Walk - 1152x864">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" title="A Quiet December Walk - 1280x720">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" title="A Quiet December Walk - 1280x800">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" title="A Quiet December Walk - 1280x960">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" title="A Quiet December Walk - 1280x1024">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" title="A Quiet December Walk - 1400x1050">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" title="A Quiet December Walk - 1440x900">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" title="A Quiet December Walk - 1600x1200">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" title="A Quiet December Walk - 1680x1050">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" title="A Quiet December Walk - 1680x1200">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" title="A Quiet December Walk - 1920x1080">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" title="A Quiet December Walk - 1920x1200">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" title="A Quiet December Walk - 1920x1440">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" title="A Quiet December Walk - 2560x1440">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" title="A Quiet December Walk - 320x480">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" title="A Quiet December Walk - 640x480">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" title="A Quiet December Walk - 800x480">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" title="A Quiet December Walk - 800x600">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" title="A Quiet December Walk - 1024x768">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" title="A Quiet December Walk - 1024x1024">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" title="A Quiet December Walk - 1152x864">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" title="A Quiet December Walk - 1280x720">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" title="A Quiet December Walk - 1280x800">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" title="A Quiet December Walk - 1280x960">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" title="A Quiet December Walk - 1280x1024">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" title="A Quiet December Walk - 1400x1050">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" title="A Quiet December Walk - 1440x900">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" title="A Quiet December Walk - 1600x1200">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" title="A Quiet December Walk - 1680x1050">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" title="A Quiet December Walk - 1680x1200">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" title="A Quiet December Walk - 1920x1080">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" title="A Quiet December Walk - 1920x1200">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" title="A Quiet December Walk - 1920x1440">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" title="A Quiet December Walk - 2560x1440">2560x1440</a></li></ul><h2 id="quoted-rudolph-12-2025">Quoted Rudolph</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/dec-25-quoted-rudolph-full.png" title="Quoted Rudolph"><img alt="Quoted Rudolph" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2025/dec-25-quoted-rudolph-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/dec-25-quoted-rudolph-preview.png" title="Quoted Rudolph - Preview">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" title="Quoted Rudolph - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-800x480.png" title="Quoted Rudolph - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-800x600.png" title="Quoted Rudolph - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1024x768.png" title="Quoted Rudolph - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1024x1024.png" title="Quoted Rudolph - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1152x864.png" title="Quoted Rudolph - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1280x720.png" title="Quoted Rudolph - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1280x800.png" title="Quoted Rudolph - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1280x960.png" title="Quoted Rudolph - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1280x1024.png" title="Quoted Rudolph - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1366x768.png" title="Quoted Rudolph - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1400x1050.png" title="Quoted Rudolph - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1440x900.png" title="Quoted Rudolph - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1600x1200.png" title="Quoted Rudolph - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1680x1050.png" title="Quoted Rudolph - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1680x1200.png" title="Quoted Rudolph - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1920x1080.png" title="Quoted Rudolph - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1920x1200.png" title="Quoted Rudolph - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-1920x1440.png" title="Quoted Rudolph - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-2560x1440.png" title="Quoted Rudolph - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/cal/dec-25-quoted-rudolph-cal-3840x2160.png" title="Quoted Rudolph - 3840x2160">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" title="Quoted Rudolph - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-800x480.png" title="Quoted Rudolph - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-800x600.png" title="Quoted Rudolph - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1024x768.png" title="Quoted Rudolph - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1024x1024.png" title="Quoted Rudolph - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1152x864.png" title="Quoted Rudolph - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1280x720.png" title="Quoted Rudolph - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1280x800.png" title="Quoted Rudolph - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1280x960.png" title="Quoted Rudolph - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1280x1024.png" title="Quoted Rudolph - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1366x768.png" title="Quoted Rudolph - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1400x1050.png" title="Quoted Rudolph - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1440x900.png" title="Quoted Rudolph - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1600x1200.png" title="Quoted Rudolph - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1680x1050.png" title="Quoted Rudolph - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1680x1200.png" title="Quoted Rudolph - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1920x1080.png" title="Quoted Rudolph - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1920x1200.png" title="Quoted Rudolph - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-1920x1440.png" title="Quoted Rudolph - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-2560x1440.png" title="Quoted Rudolph - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/quoted-rudolph/nocal/dec-25-quoted-rudolph-nocal-3840x2160.png" title="Quoted Rudolph - 3840x2160">3840x2160</a></li></ul><h2 id="learning-is-an-art-12-2025">Learning Is An Art</h2><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><figure><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/dec-25-learning-is-an-art-full.png" title="Learning Is An Art"><img alt="Learning Is An Art" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2025/dec-25-learning-is-an-art-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/learning-is-an-art/dec-25-learning-is-an-art-preview.png" title="Learning Is An Art - Preview">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" title="Learning Is An Art - 640x480">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" title="Learning Is An Art - 800x480">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" title="Learning Is An Art - 1024x768">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" title="Learning Is An Art - 1280x720">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" title="Learning Is An Art - 1280x800">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" title="Learning Is An Art - 1440x900">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" title="Learning Is An Art - 1600x1200">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" title="Learning Is An Art - 1920x1080">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" title="Learning Is An Art - 1920x1440">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" title="Learning Is An Art - 2560x1440">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" title="Learning Is An Art - 640x480">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" title="Learning Is An Art - 800x480">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" title="Learning Is An Art - 1024x768">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" title="Learning Is An Art - 1280x720">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" title="Learning Is An Art - 1280x800">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" title="Learning Is An Art - 1440x900">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" title="Learning Is An Art - 1600x1200">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" title="Learning Is An Art - 1920x1080">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" title="Learning Is An Art - 1920x1440">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" title="Learning Is An Art - 2560x1440">2560x1440</a></li></ul><h2 id="chilly-dog,-warm-troubles-12-2025">Chilly Dog, Warm Troubles</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/dec-25-chilly-dog-warm-troubles-full.png" title="Chilly Dog, Warm Troubles"><img alt="Chilly Dog, Warm Troubles" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2025/dec-25-chilly-dog-warm-troubles-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/chilly-dog-warm-troubles/dec-25-chilly-dog-warm-troubles-preview.png" title="Chilly Dog, Warm Troubles - Preview">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" title="Chilly Dog, Warm Troubles - 640x480">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" title="Chilly Dog, Warm Troubles - 800x480">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" title="Chilly Dog, Warm Troubles - 800x600">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" title="Chilly Dog, Warm Troubles - 1024x768">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" title="Chilly Dog, Warm Troubles - 1024x1024">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" title="Chilly Dog, Warm Troubles - 1152x864">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" title="Chilly Dog, Warm Troubles - 1280x720">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" title="Chilly Dog, Warm Troubles - 1280x800">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" title="Chilly Dog, Warm Troubles - 1280x960">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" title="Chilly Dog, Warm Troubles - 1280x1024">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" title="Chilly Dog, Warm Troubles - 1366x768">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" title="Chilly Dog, Warm Troubles - 1400x1050">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" title="Chilly Dog, Warm Troubles - 1440x900">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" title="Chilly Dog, Warm Troubles - 1600x1200">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" title="Chilly Dog, Warm Troubles - 1680x1050">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" title="Chilly Dog, Warm Troubles - 1680x1200">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" title="Chilly Dog, Warm Troubles - 1920x1080">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" title="Chilly Dog, Warm Troubles - 1920x1200">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" title="Chilly Dog, Warm Troubles - 1920x1440">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" title="Chilly Dog, Warm Troubles - 2560x1440">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" title="Chilly Dog, Warm Troubles - 3840x2160">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" title="Chilly Dog, Warm Troubles - 640x480">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" title="Chilly Dog, Warm Troubles - 800x480">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" title="Chilly Dog, Warm Troubles - 800x600">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" title="Chilly Dog, Warm Troubles - 1024x768">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" title="Chilly Dog, Warm Troubles - 1024x1024">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" title="Chilly Dog, Warm Troubles - 1152x864">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" title="Chilly Dog, Warm Troubles - 1280x720">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" title="Chilly Dog, Warm Troubles - 1280x800">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" title="Chilly Dog, Warm Troubles - 1280x960">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" title="Chilly Dog, Warm Troubles - 1280x1024">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" title="Chilly Dog, Warm Troubles - 1366x768">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" title="Chilly Dog, Warm Troubles - 1400x1050">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" title="Chilly Dog, Warm Troubles - 1440x900">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" title="Chilly Dog, Warm Troubles - 1600x1200">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" title="Chilly Dog, Warm Troubles - 1680x1050">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" title="Chilly Dog, Warm Troubles - 1680x1200">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" title="Chilly Dog, Warm Troubles - 1920x1080">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" title="Chilly Dog, Warm Troubles - 1920x1200">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" title="Chilly Dog, Warm Troubles - 1920x1440">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" title="Chilly Dog, Warm Troubles - 2560x1440">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" title="Chilly Dog, Warm Troubles - 3840x2160">3840x2160</a></li></ul><h2 id="modern-christmas-magic-12-2025">Modern Christmas Magic</h2><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><figure><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/dec-25-modern-christmas-magic-full.png" title="Modern Christmas Magic"><img alt="Modern Christmas Magic" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2025/dec-25-modern-christmas-magic-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/dec-25-modern-christmas-magic-preview.png" title="Modern Christmas Magic - Preview">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" title="Modern Christmas Magic - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1024x768.png" title="Modern Christmas Magic - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1400x900.png" title="Modern Christmas Magic - 1400x900">1400x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1400x1050.png" title="Modern Christmas Magic - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1600x1200.png" title="Modern Christmas Magic - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1680x1050.png" title="Modern Christmas Magic - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1920x1080.png" title="Modern Christmas Magic - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1920x1200.png" title="Modern Christmas Magic - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-1920x1440.png" title="Modern Christmas Magic - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/cal/dec-25-modern-christmas-magic-cal-2560x1440.png" title="Modern Christmas Magic - 2560x1440">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" title="Modern Christmas Magic - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1024x768.png" title="Modern Christmas Magic - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1400x900.png" title="Modern Christmas Magic - 1400x900">1400x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1400x1050.png" title="Modern Christmas Magic - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1600x1200.png" title="Modern Christmas Magic - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1680x1050.png" title="Modern Christmas Magic - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1920x1080.png" title="Modern Christmas Magic - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1920x1200.png" title="Modern Christmas Magic - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-1920x1440.png" title="Modern Christmas Magic - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/dec-25/modern-christmas-magic/nocal/dec-25-modern-christmas-magic-nocal-2560x1440.png" title="Modern Christmas Magic - 2560x1440">2560x1440</a></li></ul><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://www.smashingmagazine.com/printed-books/image-optimization/"><div><picture><source srcset="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2c669cf1-c6ef-4c87-9901-018b04f7871f/image-optimization-shop-cover-opt.avif" type="image/avif"><img alt="Feature Panel" decoding="async" height="697" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/87fd0cfa-692e-459c-b2f3-15209a1f6aa7/image-optimization-shop-cover-opt.png" width="480"></img></source></picture></div></a></div></aside></div><h2 id="dear-moon-merry-christmas">Dear Moon, Merry Christmas</h2><p>Designed by <a href="https://vlad.studio/">Vlad Gerasimov</a> from Georgia.</p><figure><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" title="Dear Moon, Merry Christmas"><img alt="Dear Moon, Merry Christmas" 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"></img></a></figure><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" title="Dear Moon, Merry Christmas - Preview">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" title="Dear Moon, Merry Christmas - 800x480">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" title="Dear Moon, Merry Christmas - 800x600">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" title="Dear Moon, Merry Christmas - 1024x600">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" title="Dear Moon, Merry Christmas - 1024x768">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" title="Dear Moon, Merry Christmas - 1152x864">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" title="Dear Moon, Merry Christmas - 1280x720">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" title="Dear Moon, Merry Christmas - 1280x800">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" title="Dear Moon, Merry Christmas - 1280x960">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" title="Dear Moon, Merry Christmas - 1280x1024">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" title="Dear Moon, Merry Christmas - 1366x768">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" title="Dear Moon, Merry Christmas - 1400x1050">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" title="Dear Moon, Merry Christmas - 1440x900">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" title="Dear Moon, Merry Christmas - 1440x960">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" title="Dear Moon, Merry Christmas - 1600x900">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" title="Dear Moon, Merry Christmas - 1600x1200">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" title="Dear Moon, Merry Christmas - 1680x1050">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" title="Dear Moon, Merry Christmas - 1680x1200">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" title="Dear Moon, Merry Christmas - 1920x1080">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" title="Dear Moon, Merry Christmas - 1920x1200">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" title="Dear Moon, Merry Christmas - 1920x1440">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" title="Dear Moon, Merry Christmas - 2560x1440">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" title="Dear Moon, Merry Christmas - 2560x1600">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" title="Dear Moon, Merry Christmas - 2880x1800">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" title="Dear Moon, Merry Christmas - 3072x1920">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" title="Dear Moon, Merry Christmas - 3840x2160">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" title="Dear Moon, Merry Christmas - 5120x2880">5120x2880</a></li></ul><h2 id="its-in-the-little-things">It’s In The Little Things</h2><p>Designed by Thaïs Lenglez from Belgium.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2024/dec-13-its-in-the-little-things-full-opt.png" title="It’s In The Little Things"><img alt="It’s In The Little Things" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2024/dec-13-its-in-the-little-things-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-december-2024/dec-13-its-in-the-little-things-preview-opt.png" title="It’s In The Little Things - Preview">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" title="It’s In The Little Things - 640x480">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" title="It’s In The Little Things - 800x600">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" title="It’s In The Little Things - 1024x768">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" title="It’s In The Little Things - 1280x1024">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" title="It’s In The Little Things - 1440x900">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" title="It’s In The Little Things - 1600x1200">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" title="It’s In The Little Things - 1680x1050">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" title="It’s In The Little Things - 1920x1080">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" title="It’s In The Little Things - 1920x1200">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" title="It’s In The Little Things - 2560x1440">2560x1440</a></li></ul><h2 id="the-house-on-the-river-drina">The House On The River Drina</h2><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><figure><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" title="The House On The River Drina"><img alt="Christmas Wallpaper — The House On The River Drina" 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"></img></a></figure><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" title="The House On The River Drina - Preview">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" title="The House On The River Drina - 640x480">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" title="The House On The River Drina - 800x600">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" title="The House On The River Drina - 1024x1024">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" title="The House On The River Drina - 1152x864">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" title="The House On The River Drina - 1280x720">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" title="The House On The River Drina - 1280x960">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" title="The House On The River Drina - 1280x1024">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" title="The House On The River Drina - 1366x768">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" title="The House On The River Drina - 1400x1050">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" title="The House On The River Drina - 1440x900">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" title="The House On The River Drina - 1600x1200">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" title="The House On The River Drina - 1680x1200">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" title="The House On The River Drina - 1920x1080">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" title="The House On The River Drina - 1920x1200">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" title="The House On The River Drina - 1920x1440">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" title="The House On The River Drina - 2560x1440">2560x1440</a></li></ul><h2 id="christmas-cookies">Christmas Cookies</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/57f8e478-f6a2-4eeb-bac0-45d8dd01d7cb/dec-17-christmas-cookies-full.png" title="Christmas Cookies"><img alt="Christmas Cookies" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/251c117b-6e3a-42eb-b274-82af1abf00ed/dec-17-christmas-cookies-preview-opt.png"></img></a></figure><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" title="Christmas Cookies - Preview">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" title="Christmas Cookies - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-640x480.png" title="Christmas Cookies - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-640x1136.png" title="Christmas Cookies - 640x1136">640x1136</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-750x1334.png" title="Christmas Cookies - 750x1334">750x1334</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-800x480.png" title="Christmas Cookies - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-800x600.png" title="Christmas Cookies - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1024x768.png" title="Christmas Cookies - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1024x1024.png" title="Christmas Cookies - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1152x864.png" title="Christmas Cookies - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1242x2208.png" title="Christmas Cookies - 1242x2208">1242x2208</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1280x720.png" title="Christmas Cookies - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1280x800.png" title="Christmas Cookies - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1280x960.png" title="Christmas Cookies - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1280x1024.png" title="Christmas Cookies - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1366x768.png" title="Christmas Cookies - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1400x1050.png" title="Christmas Cookies - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1440x900.png" title="Christmas Cookies - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1600x1200.png" title="Christmas Cookies - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1680x1050.png" title="Christmas Cookies - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1680x1200.png" title="Christmas Cookies - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1920x1080.png" title="Christmas Cookies - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1920x1200.png" title="Christmas Cookies - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-1920x1440.png" title="Christmas Cookies - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-2560x1440.png" title="Christmas Cookies - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-cookies/nocal/dec-17-christmas-cookies-nocal-2880x1800.png" title="Christmas Cookies - 2880x1800">2880x1800</a></li></ul><h2 id="sweet-snowy-tenderness">Sweet Snowy Tenderness</h2><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><figure><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" title="Sweet Snowy Tenderness"><img alt="Sweet Snowy Tenderness" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6179490e-9ece-4078-8a4b-d37c27f546b4/dec-18-sweet-snowy-tenderness-preview-opt.png"></img></a></figure><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" title="Sweet Snowy Tenderness - Preview">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" title="Sweet Snowy Tenderness - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-640x480.jpg" title="Sweet Snowy Tenderness - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-800x480.jpg" title="Sweet Snowy Tenderness - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-800x600.jpg" title="Sweet Snowy Tenderness - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1024x768.jpg" title="Sweet Snowy Tenderness - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1024x1024.jpg" title="Sweet Snowy Tenderness - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1152x864.jpg" title="Sweet Snowy Tenderness - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1280x720.jpg" title="Sweet Snowy Tenderness - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1280x800.jpg" title="Sweet Snowy Tenderness - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1280x960.jpg" title="Sweet Snowy Tenderness - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1280x1024.jpg" title="Sweet Snowy Tenderness - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1366x768.jpg" title="Sweet Snowy Tenderness - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1400x1050.jpg" title="Sweet Snowy Tenderness - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1440x900.jpg" title="Sweet Snowy Tenderness - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1600x1200.jpg" title="Sweet Snowy Tenderness - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1680x1050.jpg" title="Sweet Snowy Tenderness - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1680x1200.jpg" title="Sweet Snowy Tenderness - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1920x1080.jpg" title="Sweet Snowy Tenderness - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1920x1200.jpg" title="Sweet Snowy Tenderness - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-1920x1440.jpg" title="Sweet Snowy Tenderness - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/sweet-snowy-tenderness/nocal/dec-18-sweet-snowy-tenderness-nocal-2560x1440.jpg" title="Sweet Snowy Tenderness - 2560x1440">2560x1440</a></li></ul><h2 id="anonymoose">Anonymoose</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/83743101-3686-4fa1-8527-f43b5298c85f/dec-21-anonymoose-nocal-full-opt.png" title="Anonymoose"><img alt="Anonymoose" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/53276d0a-8060-42fc-adea-e59eed8f78e8/dec-21-anonymoose-nocal-preview-opt.png"></img></a></figure><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" title="Anonymoose - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-640x480.png" title="Anonymoose - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-800x480.png" title="Anonymoose - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-800x600.png" title="Anonymoose - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1024x768.png" title="Anonymoose - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1024x1024.png" title="Anonymoose - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1152x864.png" title="Anonymoose - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1280x720.png" title="Anonymoose - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1280x800.png" title="Anonymoose - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1280x960.png" title="Anonymoose - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1280x1024.png" title="Anonymoose - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1366x768.png" title="Anonymoose - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1400x1050.png" title="Anonymoose - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1440x900.png" title="Anonymoose - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1600x1200.png" title="Anonymoose - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1680x1050.png" title="Anonymoose - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1680x1200.png" title="Anonymoose - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1920x1080.png" title="Anonymoose - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1920x1200.png" title="Anonymoose - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-1920x1440.png" title="Anonymoose - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-2560x1440.png" title="Anonymoose - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/anonymoose/nocal/dec-21-anonymoose-nocal-3840x2160.png" title="Anonymoose - 3840x2160">3840x2160</a></li></ul><h2 id="cardinals-in-snowfall">Cardinals In Snowfall</h2><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><figure><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" title="Cardinals In Snowfall"><img alt="Cardinals In Snowfall" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0a28051e-b3bc-4eff-a30b-2456c249aed5/dec-18-cardinals-in-snowfall-preview-opt.png"></img></a></figure><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" title="Cardinals In Snowfall - Preview">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" title="Cardinals In Snowfall - 640x960">640x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-768x1024.jpg" title="Cardinals In Snowfall - 768x1024">768x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-1280x720.jpg" title="Cardinals In Snowfall - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-1280x1024.jpg" title="Cardinals In Snowfall - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-1366x768.jpg" title="Cardinals In Snowfall - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-1920x1080.jpg" title="Cardinals In Snowfall - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cardinals-in-snowfall/nocal/dec-18-cardinals-in-snowfall-nocal-2560x1440.jpg" title="Cardinals In Snowfall - 2560x1440">2560x1440</a></li></ul><h2 id="getting-hygge">Getting Hygge</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ad2c8c59-c9c4-4153-a57e-8602ff6e09d7/dec-17-getting-hygge-full-opt.png" title="Getting Hygge"><img alt="Getting Hygge" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1145e84f-229d-4f9e-82b6-370c707e695c/dec-17-getting-hygge-preview-opt.png"></img></a></figure><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" title="Getting Hygge - Preview">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" title="Getting Hygge - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-640x480.png" title="Getting Hygge - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-800x600.png" title="Getting Hygge - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1024x768.png" title="Getting Hygge - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1280x960.png" title="Getting Hygge - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1440x900.png" title="Getting Hygge - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1600x1200.png" title="Getting Hygge - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1680x1050.png" title="Getting Hygge - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1680x1200.png" title="Getting Hygge - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1920x1080.png" title="Getting Hygge - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-1920x1440.png" title="Getting Hygge - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/getting-hygge/nocal/dec-17-getting-hygge-nocal-2560x1440.png" title="Getting Hygge - 2560x1440">2560x1440</a></li></ul><h2 id="christmas-woodland">Christmas Woodland</h2><p>Designed by <a href="https://melarmstrongdesign.com">Mel Armstrong</a> from Australia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3ebce7f3-b902-49e1-8c71-59f7ebffe370/dec-17-christmas-woodland-full.png" title="Christmas Woodland"><img alt="Christmas Woodland" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2ef5c205-d211-4776-ad9e-f69626f25b88/dec-17-christmas-woodland-preview-opt.png"></img></a></figure><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" title="Christmas Woodland - Preview">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" title="Christmas Woodland - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-640x480.png" title="Christmas Woodland - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-800x480.png" title="Christmas Woodland - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-800x600.png" title="Christmas Woodland - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1024x768.png" title="Christmas Woodland - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1024x1024.png" title="Christmas Woodland - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1152x864.png" title="Christmas Woodland - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1280x720.png" title="Christmas Woodland - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1280x800.png" title="Christmas Woodland - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1280x960.png" title="Christmas Woodland - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1280x1024.png" title="Christmas Woodland - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1366x768.png" title="Christmas Woodland - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1400x1050.png" title="Christmas Woodland - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1440x900.png" title="Christmas Woodland - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1600x1200.png" title="Christmas Woodland - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1680x1050.png" title="Christmas Woodland - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1680x1200.png" title="Christmas Woodland - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1920x1080.png" title="Christmas Woodland - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1920x1200.png" title="Christmas Woodland - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-1920x1440.png" title="Christmas Woodland - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-woodland/nocal/dec-17-christmas-woodland-nocal-2560x1440.png" title="Christmas Woodland - 2560x1440">2560x1440</a></li></ul><h2 id="joy-to-the-world">Joy To The World</h2><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><figure><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" title="Joy To The World"><img alt="Joy To The World" 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"></img></a></figure><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" title="Joy To The World - Preview">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" title="Joy To The World - 320x480">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" title="Joy To The World - 640x480">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" title="Joy To The World - 800x480">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" title="Joy To The World - 800x600">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" title="Joy To The World - 1024x768">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" title="Joy To The World - 1024x1024">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" title="Joy To The World - 1152x864">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" title="Joy To The World - 1280x720">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" title="Joy To The World - 1280x800">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" title="Joy To The World - 1280x960">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" title="Joy To The World - 1280x1024">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" title="Joy To The World - 1400x1050">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" title="Joy To The World - 1440x900">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" title="Joy To The World - 1600x1200">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" title="Joy To The World - 1680x1050">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" title="Joy To The World - 1680x1200">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" title="Joy To The World - 1920x1080">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" title="Joy To The World - 1920x1200">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" title="Joy To The World - 1920x1440">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" title="Joy To The World - 2560x1440">2560x1440</a></li></ul><h2 id="gifts-lover">Gifts Lover</h2><p>Designed by <a href="https://www.doud.be">Elise Vanoorbeek</a> from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/25b69dac-5d0b-4e0a-bf39-b2554ec557db/dec-14-gifts-lover-full.png" title="Gifts Lover"><img alt="Gifts Lover" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3c9e03e4-efa6-4fb8-8a0d-69f1edd9479a/dec-14-gifts-lover-preview-opt.png"></img></a></figure><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" title="Gifts Lover - Preview">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" title="Gifts Lover - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-800x600.jpg" title="Gifts Lover - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1024x768.jpg" title="Gifts Lover - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1024x1024.jpg" title="Gifts Lover - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1152x864.jpg" title="Gifts Lover - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1280x800.jpg" title="Gifts Lover - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1280x960.jpg" title="Gifts Lover - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1280x1024.jpg" title="Gifts Lover - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1366x768.jpg" title="Gifts Lover - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1400x1050.jpg" title="Gifts Lover - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1440x900.jpg" title="Gifts Lover - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1600x1200.jpg" title="Gifts Lover - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1680x1050.jpg" title="Gifts Lover - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1680x1200.jpg" title="Gifts Lover - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1920x1080.jpg" title="Gifts Lover - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1920x1200.jpg" title="Gifts Lover - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-1920x1440.jpg" title="Gifts Lover - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-14/gifts-lover/nocal/dec-14-gifts-lover-nocal-2560x1440.jpg" title="Gifts Lover - 2560x1440">2560x1440</a></li></ul><h2 id="king-of-pop">King Of Pop</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><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" title="King Of Pop"><img alt="King Of Pop" 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"></img></a></figure><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" title="King Of Pop - Preview">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" title="King Of Pop - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-800x480.png" title="King Of Pop - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-800x600.png" title="King Of Pop - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1024x768.png" title="King Of Pop - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1024x1024.png" title="King Of Pop - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1152x864.png" title="King Of Pop - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1280x720.png" title="King Of Pop - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1280x800.png" title="King Of Pop - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1280x960.png" title="King Of Pop - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1280x1024.png" title="King Of Pop - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1366x768.png" title="King Of Pop - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1400x1050.png" title="King Of Pop - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1440x900.png" title="King Of Pop - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1600x1200.png" title="King Of Pop - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1680x1050.png" title="King Of Pop - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1680x1200.png" title="King Of Pop - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1920x1080.png" title="King Of Pop - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1920x1200.png" title="King Of Pop - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-1920x1440.png" title="King Of Pop - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-2560x1440.png" title="King Of Pop - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-21/king-of-pop/nocal/dec-21-king-of-pop-nocal-3840x2160.png" title="King Of Pop - 3840x2160">3840x2160</a></li></ul><h2 id="the-matterhorn">The Matterhorn</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/94e4bf3b-1ef4-4679-80ab-00c831c2be80/dec-16-the-matterhorn-full-opt.png" title="The Matterhorn"><img alt="Christmas Wallpaper — The Matterhorn" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/25937464-9e3c-4bf5-9fc3-611b54699aa6/dec-16-the-matterhorn-preview-opt.png"></img></a></figure><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" title="The Matterhorn - Preview">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" title="The Matterhorn - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-800x600.png" title="The Matterhorn - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1024x768.png" title="The Matterhorn - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1280x720.png" title="The Matterhorn - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1400x1050.png" title="The Matterhorn - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1680x1200.png" title="The Matterhorn - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1920x1080.png" title="The Matterhorn - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1920x1200.png" title="The Matterhorn - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-1920x1440.png" title="The Matterhorn - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/the-matterhorn/nocal/dec-16-the-matterhorn-nocal-2560x1440.png" title="The Matterhorn - 2560x1440">2560x1440</a></li></ul><h2 id="ninja-santa">Ninja Santa</h2><p>Designed by Elise Vanoorbeek from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/caf4e170-afb2-458a-af83-b67925f3ea7e/dec-13-ninja-santa-full-opt.png" title="Ninja Santa"><img alt="Ninja Santa" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/72db2dde-7f71-4aac-88c3-f17b540e8343/dec-13-ninja-santa-preview-opt.png"></img></a></figure><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" title="Ninja Santa — Preview">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" title="Ninja Santa - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1366x768.jpg" title="Ninja Santa - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1400x1050.jpg" title="Ninja Santa - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1440x900.jpg" title="Ninja Santa - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1600x1200.jpg" title="Ninja Santa - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1680x1050.jpg" title="Ninja Santa - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1680x1200.jpg" title="Ninja Santa - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1920x1080.jpg" title="Ninja Santa - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-1920x1440.jpg" title="Ninja Santa - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/ninja-santa/nocal/dec-13-ninja-santa-nocal-2560x1440.jpg" title="Ninja Santa - 2560x1440">2560x1440</a></li></ul><h2 id="ice-flowers">Ice Flowers</h2><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><figure><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 alt="Ice Flowers" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7b4a5499-4254-4d4f-a460-0f0964721a55/january-10-ice-flowers-preview-opt.png"></img></a></figure><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><h2 id="christmas-selfie">Christmas Selfie</h2><p>Designed by <a href="https://www.elacarta.com">Emanuela Carta</a> from Italy.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3eac541a-4c0e-45a9-ab06-7ec0fee72084/dec-16-christmas-selfie-full-opt.png" title="Christmas Selfie"><img alt="Christmas Wallpaper — Christmas Selfie" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3df98b9f-310f-4a63-b885-6b97ba4edccf/dec-16-christmas-selfie-preview-opt.png"></img></a></figure><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" title="Christmas Selfie - Preview">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" title="Christmas Selfie - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-800x600.png" title="Christmas Selfie - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-1280x800.png" title="Christmas Selfie - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-1280x1024.png" title="Christmas Selfie - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-1440x900.png" title="Christmas Selfie - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-1680x1050.png" title="Christmas Selfie - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/christmas-selfie/nocal/dec-16-christmas-selfie-nocal-2560x1440.png" title="Christmas Selfie - 2560x1440">2560x1440</a></li></ul><h2 id="winter-wonderland">Winter Wonderland</h2><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><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-dec-2023/dec-16-winter-wonderland-full-opt.png" title="Winter Wonderland"><img alt="Christmas Wallpaper — Winter Wonderland" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-dec-2023/dec-16-winter-wonderland-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-dec-2023/dec-16-winter-wonderland-preview-opt.png" title="Winter Wonderland - Preview">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" title="Winter Wonderland - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1280x800.jpg" title="Winter Wonderland - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1280x960.jpg" title="Winter Wonderland - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1280x1024.jpg" title="Winter Wonderland - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1366x768.jpg" title="Winter Wonderland - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1400x1050.jpg" title="Winter Wonderland - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1440x900.jpg" title="Winter Wonderland - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1600x1200.jpg" title="Winter Wonderland - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1680x1050.jpg" title="Winter Wonderland - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1680x1200.jpg" title="Winter Wonderland - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1920x1080.jpg" title="Winter Wonderland - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-1920x1440.jpg" title="Winter Wonderland - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-16/winter-wonderland/nocal/dec-16-winter-wonderland-nocal-2560x1440.jpg" title="Winter Wonderland - 2560x1440">2560x1440</a></li></ul><h2 id="winter-coziness-at-home">Winter Coziness At Home</h2><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><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-dec-2023/dec-22-winter-coziness-at-home-full-opt.png" title="Winter Coziness At Home"><img alt="Winter Coziness At Home" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-dec-2023/dec-22-winter-coziness-at-home-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-dec-2023/dec-22-winter-coziness-at-home-preview-opt.png" title="Winter Coziness At Home - Preview">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" title="Winter Coziness At Home - 320x480">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" title="Winter Coziness At Home - 640x480">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" title="Winter Coziness At Home - 800x480">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" title="Winter Coziness At Home - 800x600">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" title="Winter Coziness At Home - 1024x768">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" title="Winter Coziness At Home - 1024x1024">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" title="Winter Coziness At Home - 1152x864">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" title="Winter Coziness At Home - 1280x720">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" title="Winter Coziness At Home - 1280x800">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" title="Winter Coziness At Home - 1280x960">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" title="Winter Coziness At Home - 1280x1024">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" title="Winter Coziness At Home - 1366x768">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" title="Winter Coziness At Home - 1400x1050">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" title="Winter Coziness At Home - 1440x900">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" title="Winter Coziness At Home - 1600x1200">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" title="Winter Coziness At Home - 1680x1050">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" title="Winter Coziness At Home - 1680x1200">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" title="Winter Coziness At Home - 1920x1080">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" title="Winter Coziness At Home - 1920x1200">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" title="Winter Coziness At Home - 1920x1440">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" title="Winter Coziness At Home - 2560x1440">2560x1440</a></li></ul><h2 id="enchanted-blizzard">Enchanted Blizzard</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/913ccea9-595b-4aff-9550-0afec57203cc/dec-17-enchanted-blizzard-full-opt.png" title="Enchanted Blizzard"><img alt="Enchanted Blizzard" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/21da6af5-5de8-44c2-9a02-d0e17a1425fa/dec-17-enchanted-blizzard-preview-opt.png"></img></a></figure><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" title="Enchanted Blizzard - Preview">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" title="Enchanted Blizzard - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-640x480.png" title="Enchanted Blizzard - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-800x480.png" title="Enchanted Blizzard - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-800x600.png" title="Enchanted Blizzard - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1024x768.png" title="Enchanted Blizzard - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1024x1024.png" title="Enchanted Blizzard - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1152x864.png" title="Enchanted Blizzard - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1280x720.png" title="Enchanted Blizzard - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1280x800.png" title="Enchanted Blizzard - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1280x960.png" title="Enchanted Blizzard - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1280x1024.png" title="Enchanted Blizzard - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1400x1050.png" title="Enchanted Blizzard - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1440x900.png" title="Enchanted Blizzard - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1600x1200.png" title="Enchanted Blizzard - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1680x1050.png" title="Enchanted Blizzard - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1680x1200.png" title="Enchanted Blizzard - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1920x1080.png" title="Enchanted Blizzard - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1920x1200.png" title="Enchanted Blizzard - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-1920x1440.png" title="Enchanted Blizzard - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/enchanted-blizzard/nocal/dec-17-enchanted-blizzard-nocal-2560x1440.png" title="Enchanted Blizzard - 2560x1440">2560x1440</a></li></ul><h2 id="all-that-belongs-to-the-past">All That Belongs To The Past</h2><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><figure><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" title="All That Belongs To The Past"><img alt="All That Belongs To The Past" 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"></img></a></figure><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" title="All That Belongs To The Past - 800x480">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" title="All That Belongs To The Past - 800x600">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" title="All That Belongs To The Past - 1024x1024">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" title="All That Belongs To The Past - 1152x864">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" title="All That Belongs To The Past - 1280x720">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" title="All That Belongs To The Past - 1280x800">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" title="All That Belongs To The Past - 1280x960">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" title="All That Belongs To The Past - 1280x1024">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" title="All That Belongs To The Past - 1366x768">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" title="All That Belongs To The Past - 1400x1050">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" title="All That Belongs To The Past - 1440x900">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" title="All That Belongs To The Past - 1600x1200">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" title="All That Belongs To The Past - 1680x1050">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" title="All That Belongs To The Past - 1680x1200">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" title="All That Belongs To The Past - 1920x1080">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" title="All That Belongs To The Past - 1920x1200">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" title="All That Belongs To The Past - 1920x1440">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" title="All That Belongs To The Past - 2560x1440">2560x1440</a></li></ul><h2 id="december-through-different-eyes">December Through Different Eyes</h2><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><figure><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" title="December Through Different Eyes"><img alt="Christmas Wallpaper — December Through Different Eyes" 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"></img></a></figure><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" title="December Through Different Eyes - Preview">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" title="December Through Different Eyes - 320x480">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" title="December Through Different Eyes - 800x480">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" title="December Through Different Eyes - 1280x800">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" title="December Through Different Eyes - 1280x1024">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" title="December Through Different Eyes - 1920x1080">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" title="December Through Different Eyes - 2560x1440">2560x1440</a></li></ul><h2 id="silver-winter">Silver Winter</h2><p>Designed by <a href="https://www.violetadabija.com">Violeta Dabija</a> from Moldova.</p><figure><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 alt="Silver Winter" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/00c28b2f-a996-41f4-a7f4-34c602e7bfd0/january-11-silver-winter-preview-opt.png"></img></a></figure><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><h2 id="cozy">Cozy</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/066c8801-c795-4511-a131-3bf9ac7fa84d/dec-18-cosy-nocal-full-opt.png" title="Cozy"><img alt="Cozy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0d1eb07b-e179-42ba-9770-2ed95ca02a44/dec-18-cosy-nocal-preview-opt.png"></img></a></figure><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" title="Cozy - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-320x480.png" title="Cozy - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-640x480.png" title="Cozy - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-960x560.png" title="Cozy - 960x560">960x560</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-1024x768.png" title="Cozy - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-1280x960.png" title="Cozy - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-1440x900.png" title="Cozy - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-1600x1200.png" title="Cozy - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-1920x1080.png" title="Cozy - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-1920x1200.png" title="Cozy - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-18/cosy/nocal/dec-18-cosy-nocal-2560x1440.png" title="Cozy - 2560x1440">2560x1440</a></li></ul><h2 id="tongue-stuck-on-lamppost">Tongue Stuck On Lamppost</h2><p>Designed by <a href="https://www.joshcleland.com">Josh Cleland</a> from the United States.</p><figure><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 alt="Tongue Stuck On Lamppost" 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"></img></a></figure><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><h2 id="on-to-the-next-one">On To The Next One</h2><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><figure><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" title="On To The Next One"><img alt="On To The Next One" 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"></img></a></figure><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" title="On To The Next One - Preview">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" title="On To The Next One - 320x480">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" title="On To The Next One - 640x480">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" title="On To The Next One - 800x480">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" title="On To The Next One - 800x600">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" title="On To The Next One - 1024x768">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" title="On To The Next One - 1024x1024">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" title="On To The Next One - 1152x864">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" title="On To The Next One - 1280x720">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" title="On To The Next One - 1280x800">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" title="On To The Next One - 1280x960">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" title="On To The Next One - 1280x1024">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" title="On To The Next One - 1366x768">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" title="On To The Next One - 1400x1050">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" title="On To The Next One - 1440x900">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" title="On To The Next One - 1600x1200">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" title="On To The Next One - 1680x1050">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" title="On To The Next One - 1680x1200">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" title="On To The Next One - 1920x1080">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" title="On To The Next One - 1920x1200">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" title="On To The Next One - 1920x1440">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" title="On To The Next One - 2560x1440">2560x1440</a></li></ul><h2 id="christmas-owl">Christmas Owl</h2><p>“Christmas waves a magic wand over this world, and behold, everything is softer and more beautiful.” — Designed by Suman Sil from India.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0f4c81c4-baa1-4ce1-9757-0d5d6e485eb2/dec-17-christmas-owl-full-opt.png" title="Christmas Owl"><img alt="Christmas Owl" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b68a038c-82d8-4c8d-acaa-1038bccaf8e0/dec-17-christmas-owl-preview-opt.png"></img></a></figure><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" title="Christmas Owl - Preview">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" title="Christmas Owl - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1280x800.jpg" title="Christmas Owl - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1280x960.jpg" title="Christmas Owl - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1366x768.jpg" title="Christmas Owl - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1400x1050.jpg" title="Christmas Owl - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1440x900.jpg" title="Christmas Owl - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1600x1200.jpg" title="Christmas Owl - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1680x1050.jpg" title="Christmas Owl - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1680x1200.jpg" title="Christmas Owl - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1920x1080.jpg" title="Christmas Owl - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1920x1200.jpg" title="Christmas Owl - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-1920x1440.jpg" title="Christmas Owl - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-17/christmas-owl/nocal/dec-17-christmas-owl-nocal-2560x1440.jpg" title="Christmas Owl - 2560x1440">2560x1440</a></li></ul><h2 id="catch-your-perfect-snowflake">Catch Your Perfect Snowflake</h2><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><figure><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" title="Catch Your Perfect Snowflake"><img alt="Catch Your Perfect Snowflake" 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"></img></a></figure><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" title="Catch Your Perfect Snowflake - 800x480">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" title="Catch Your Perfect Snowflake - 800x600">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" title="Catch Your Perfect Snowflake - 1024x768">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" title="Catch Your Perfect Snowflake - 1024x1024">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" title="Catch Your Perfect Snowflake - 1152x864">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" title="Catch Your Perfect Snowflake - 1280x720">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" title="Catch Your Perfect Snowflake - 1280x800">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" title="Catch Your Perfect Snowflake - 1280x960">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" title="Catch Your Perfect Snowflake - 1280x1024">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" title="Catch Your Perfect Snowflake - 1400x1050">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" title="Catch Your Perfect Snowflake - 1440x900">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" title="Catch Your Perfect Snowflake - 1600x1200">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" title="Catch Your Perfect Snowflake - 1680x1050">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" title="Catch Your Perfect Snowflake - 1680x1200">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" title="Catch Your Perfect Snowflake - 1920x1080">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" title="Catch Your Perfect Snowflake - 1920x1200">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" title="Catch Your Perfect Snowflake - 1920x1440">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" title="Catch Your Perfect Snowflake - 2560x1440">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" title="Catch Your Perfect Snowflake - 2560x1600">2560x1600</a></li></ul><h2 id="winter-garphee">Winter Garphee</h2><p>“Garphee’s flufiness glowing in the snow.” Designed by Razvan Garofeanu from Romania.</p><figure><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 alt="Winter Garphee" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/158e76da-934e-4e62-bdb1-32616ccd9e84/december-12-winter-garphee-81-preview-opt.png"></img></a></figure><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><h2 id="trailer-santa">Trailer Santa</h2><p>“A mid-century modern Christmas scene outside the norm of snowflakes and winter landscapes.” Designed by Houndstooth from the United States.</p><figure><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 alt="Trailer Santa" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1d3703c2-593a-4ff4-a08a-52cb237ddb64/december-12-trailer-santa-21-preview-opt.png"></img></a></figure><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" title="Trailer Santa">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><h2 id="winter-solstice">Winter Solstice</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/eaf114e2-475a-4945-9185-ce491e025194/dec-15-winter-solstice-full-opt.png" title="Winter Solstice"><img alt="Winter Solstice" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c31b7a20-902c-4956-a266-a88bd5a4b7cb/dec-15-winter-solstice-preview-opt.png"></img></a></figure><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" title="Winter Solstice - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-640x480.jpg" title="Winter Solstice - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-800x480.jpg" title="Winter Solstice - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-800x600.jpg" title="Winter Solstice - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1024x768.jpg" title="Winter Solstice - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1024x1024.jpg" title="Winter Solstice - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1152x864.jpg" title="Winter Solstice - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1280x720.jpg" title="Winter Solstice - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1280x800.jpg" title="Winter Solstice - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1280x960.jpg" title="Winter Solstice - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1280x1024.jpg" title="Winter Solstice - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1366x768.jpg" title="Winter Solstice - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1400x1050.jpg" title="Winter Solstice - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1440x900.jpg" title="Winter Solstice - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1600x1200.jpg" title="Winter Solstice - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1680x1050.jpg" title="Winter Solstice - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1680x1200.jpg" title="Winter Solstice - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1920x1080.jpg" title="Winter Solstice - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1920x1200.jpg" title="Winter Solstice - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-1920x1440.jpg" title="Winter Solstice - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-15/winter-solstice/nocal/dec-15-winter-solstice-nocal-2560x1440.jpg" title="Winter Solstice - 2560x1440">2560x1440</a></li></ul><h2 id="christmas-time">Christmas Time</h2><p>Designed by Sofie Keirsmaekers from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a9988e43-6ee8-414c-8136-ac6939c5182e/dec-13-christmas-time-full-opt.png" title="Christmas Time!"><img alt="Christmas Time!" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cf1ce792-3363-4899-9714-fd569b53452b/dec-13-christmas-time-preview-opt.png"></img></a></figure><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" title="Christmas Time! — Preview">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" title="Christmas Time! - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/christmas-time-/nocal/dec-13-christmas-time--nocal-1024x1024.png" title="Christmas Time! - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/christmas-time-/nocal/dec-13-christmas-time--nocal-1280x1024.png" title="Christmas Time! - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/christmas-time-/nocal/dec-13-christmas-time--nocal-1440x900.png" title="Christmas Time! - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/christmas-time-/nocal/dec-13-christmas-time--nocal-1920x1200.png" title="Christmas Time! - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-13/christmas-time-/nocal/dec-13-christmas-time--nocal-2560x1440.png" title="Christmas Time! - 2560x1440">2560x1440</a></li></ul><h2 id="happy-holidays">Happy Holidays</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e16c6728-d3a1-4800-8a6e-e3c45d2512ac/dec-20-happy-holidays-full-opt.png" title="Happy Holidays"><img alt="Happy Holidays" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/56b7fbec-60c7-4776-96d0-028c06c5a552/dec-20-happy-holidays-preview-opt.png"></img></a></figure><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" title="Happy Holidays - Preview">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" title="Happy Holidays - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-800x480.png" title="Happy Holidays - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-800x600.png" title="Happy Holidays - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1024x768.png" title="Happy Holidays - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1024x1024.png" title="Happy Holidays - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1152x864.png" title="Happy Holidays - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1280x720.png" title="Happy Holidays - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1280x800.png" title="Happy Holidays - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1280x960.png" title="Happy Holidays - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1280x1024.png" title="Happy Holidays - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1366x768.png" title="Happy Holidays - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1400x1050.png" title="Happy Holidays - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1440x900.png" title="Happy Holidays - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1600x1200.png" title="Happy Holidays - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1680x1050.png" title="Happy Holidays - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1680x1200.png" title="Happy Holidays - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1920x1080.png" title="Happy Holidays - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1920x1200.png" title="Happy Holidays - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-1920x1440.png" title="Happy Holidays - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-2560x1440.png" title="Happy Holidays - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/dec-20/happy-holidays/nocal/dec-20-happy-holidays-nocal-3840x2160.png" title="Happy Holidays - 3840x2160">3840x2160</a></li></ul><h2 id="get-featured-next-month">Get Featured Next Month</h2><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></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <img src="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/accessibility-problem-authentication-methods-captcha.jpg" /><h1>The Accessibility Problem With Authentication Methods Like CAPTCHA — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>10 min read</li><li><a href="http://www.smashingmagazine.com/category/accessibility">Accessibility</a>, <a href="http://www.smashingmagazine.com/category/captcha">Captcha</a>, <a href="http://www.smashingmagazine.com/category/usability">Usability</a>, <a href="http://www.smashingmagazine.com/category/ux">UX</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><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><figure><a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/1-authentication-failed.jpg"><img alt="Authentication failed’ error message" decoding="async" fetchpriority="low" height="533" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/1-authentication-failed.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/1-authentication-failed.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/1-authentication-failed.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/1-authentication-failed.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/1-authentication-failed.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/1-authentication-failed.jpg 2000w" width="800"></img></a><figcaption>Image source: <a href="https://unsplash.com/photos/black-flat-screen-computer-monitor-bMvuh0YQQ68">unsplash.com</a>. (<a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/1-authentication-failed.jpg">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/2-recaptcha.png"><img alt="reCAPTCHA" decoding="async" fetchpriority="low" height="547" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/2-recaptcha.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/2-recaptcha.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/2-recaptcha.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/2-recaptcha.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/2-recaptcha.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/2-recaptcha.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://support.google.com/recaptcha/?hl=en">Google</a>. (<a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/2-recaptcha.png">Large preview</a>)</figcaption></figure><h2 id="what-is-captcha">What Is CAPTCHA?</h2><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><figure><a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/3-captcha-picture.png"><img alt="Image-based CAPTCHA showing traffic lights" decoding="async" fetchpriority="low" height="549" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/3-captcha-picture.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/3-captcha-picture.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/3-captcha-picture.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/3-captcha-picture.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/3-captcha-picture.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/3-captcha-picture.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://onezero.medium.com/why-captcha-pictures-are-so-unbearably-depressing-20679b8cf84a">Medium</a>. (<a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/3-captcha-picture.png">Large preview</a>)</figcaption></figure><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><h2 id="why-do-teams-use-captcha-and-similar-authentication-methods">Why Do Teams Use CAPTCHA And Similar Authentication Methods?</h2><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><h2 id="why-should-web-developers-stop-using-captcha">Why Should Web Developers Stop Using CAPTCHA?</h2><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><h2 id="authentication-issues-with-captcha">Authentication Issues With CAPTCHA</h2><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 id="issues-related-to-visuals-and-screen-reader-use">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 id="issues-related-to-hearing-and-audio-processing">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 id="issues-related-to-motor-and-dexterity">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 id="issues-related-to-cognition-and-language">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><h2 id="why-assistive-technology-won-t-bridge-the-gap">Why Assistive Technology Won’t Bridge The Gap</h2><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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aCAPTCHA%e2%80%99s%20accessibility%20issues%20could%20be%20forgiven%20if%20it%20were%20an%20effective%20security%20tool,%20but%20it%20is%20far%20from%20foolproof%20since%20bots%20get%20it%20right%20more%20than%20humans%20do.%20Why%20keep%20using%20a%20method%20that%20is%20ineffective%20and%20creates%20barriers%20for%20people%20with%20disabilities?%0a&amp;url=https://smashingmagazine.com%2f2025%2f11%2faccessibility-problem-authentication-methods-captcha%2f">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?</a></p></blockquote><p>There are better alternatives.</p><h2 id="principles-for-accessible-authentication">Principles For Accessible Authentication</h2><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><figure><a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/4-multifactor-authentication.jpg"><img alt="Multifactor authentication" decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/4-multifactor-authentication.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/4-multifactor-authentication.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/4-multifactor-authentication.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/4-multifactor-authentication.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/4-multifactor-authentication.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/4-multifactor-authentication.jpg 2000w" width="800"></img></a><figcaption>Image source: <a href="https://unsplash.com/photos/a-screenshot-of-a-phone-RMIsZlv8qv4">unsplash.com</a>. (<a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/4-multifactor-authentication.jpg">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/5-apple-two-factor-authentication.png"><img alt="" decoding="async" fetchpriority="low" height="546" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/5-apple-two-factor-authentication.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/5-apple-two-factor-authentication.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/5-apple-two-factor-authentication.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/5-apple-two-factor-authentication.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/5-apple-two-factor-authentication.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/5-apple-two-factor-authentication.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://support.apple.com/en-us/102660">Apple</a>. (<a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/5-apple-two-factor-authentication.png">Large preview</a>)</figcaption></figure><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><h2 id="testing-and-evaluation-of-accessible-authentication-designs">Testing And Evaluation Of Accessible Authentication Designs</h2><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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aRegardless%20of%20the%20authentication%20technique%20you%20use,%20you%20should%20present%20users%20with%20multiple%20authentication%20options%20upfront.%20They%20know%20their%20capabilities%20best,%20so%20let%20them%20decide%20what%20to%20use%20instead%20of%20trying%20to%20over-engineer%20a%20solution%20that%20works%20for%20every%20edge%20case.%0a&amp;url=https://smashingmagazine.com%2f2025%2f11%2faccessibility-problem-authentication-methods-captcha%2f">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.</a></p></blockquote><h2 id="address-the-accessibility-problem-with-design-changes">Address The Accessibility Problem With Design Changes</h2><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 id="further-reading">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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/accessibility-problem-authentication-methods-captcha.jpg" /><h1>The Accessibility Problem With Authentication Methods Like CAPTCHA — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>10 min read</li><li><a href="http://www.smashingmagazine.com/category/accessibility">Accessibility</a>, <a href="http://www.smashingmagazine.com/category/captcha">Captcha</a>, <a href="http://www.smashingmagazine.com/category/usability">Usability</a>, <a href="http://www.smashingmagazine.com/category/ux">UX</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><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><figure><a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/1-authentication-failed.jpg"><img alt="Authentication failed’ error message" decoding="async" fetchpriority="low" height="533" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/1-authentication-failed.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/1-authentication-failed.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/1-authentication-failed.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/1-authentication-failed.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/1-authentication-failed.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/1-authentication-failed.jpg 2000w" width="800"></img></a><figcaption>Image source: <a href="https://unsplash.com/photos/black-flat-screen-computer-monitor-bMvuh0YQQ68">unsplash.com</a>. (<a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/1-authentication-failed.jpg">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/2-recaptcha.png"><img alt="reCAPTCHA" decoding="async" fetchpriority="low" height="547" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/2-recaptcha.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/2-recaptcha.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/2-recaptcha.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/2-recaptcha.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/2-recaptcha.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/2-recaptcha.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://support.google.com/recaptcha/?hl=en">Google</a>. (<a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/2-recaptcha.png">Large preview</a>)</figcaption></figure><h2 id="what-is-captcha">What Is CAPTCHA?</h2><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><figure><a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/3-captcha-picture.png"><img alt="Image-based CAPTCHA showing traffic lights" decoding="async" fetchpriority="low" height="549" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/3-captcha-picture.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/3-captcha-picture.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/3-captcha-picture.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/3-captcha-picture.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/3-captcha-picture.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/3-captcha-picture.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://onezero.medium.com/why-captcha-pictures-are-so-unbearably-depressing-20679b8cf84a">Medium</a>. (<a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/3-captcha-picture.png">Large preview</a>)</figcaption></figure><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><h2 id="why-do-teams-use-captcha-and-similar-authentication-methods">Why Do Teams Use CAPTCHA And Similar Authentication Methods?</h2><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><h2 id="why-should-web-developers-stop-using-captcha">Why Should Web Developers Stop Using CAPTCHA?</h2><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><h2 id="authentication-issues-with-captcha">Authentication Issues With CAPTCHA</h2><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 id="issues-related-to-visuals-and-screen-reader-use">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 id="issues-related-to-hearing-and-audio-processing">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 id="issues-related-to-motor-and-dexterity">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 id="issues-related-to-cognition-and-language">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><h2 id="why-assistive-technology-won-t-bridge-the-gap">Why Assistive Technology Won’t Bridge The Gap</h2><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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aCAPTCHA%e2%80%99s%20accessibility%20issues%20could%20be%20forgiven%20if%20it%20were%20an%20effective%20security%20tool,%20but%20it%20is%20far%20from%20foolproof%20since%20bots%20get%20it%20right%20more%20than%20humans%20do.%20Why%20keep%20using%20a%20method%20that%20is%20ineffective%20and%20creates%20barriers%20for%20people%20with%20disabilities?%0a&amp;url=https://smashingmagazine.com%2f2025%2f11%2faccessibility-problem-authentication-methods-captcha%2f">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?</a></p></blockquote><p>There are better alternatives.</p><h2 id="principles-for-accessible-authentication">Principles For Accessible Authentication</h2><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><figure><a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/4-multifactor-authentication.jpg"><img alt="Multifactor authentication" decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/4-multifactor-authentication.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/4-multifactor-authentication.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/4-multifactor-authentication.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/4-multifactor-authentication.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/4-multifactor-authentication.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/4-multifactor-authentication.jpg 2000w" width="800"></img></a><figcaption>Image source: <a href="https://unsplash.com/photos/a-screenshot-of-a-phone-RMIsZlv8qv4">unsplash.com</a>. (<a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/4-multifactor-authentication.jpg">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/5-apple-two-factor-authentication.png"><img alt="" decoding="async" fetchpriority="low" height="546" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/5-apple-two-factor-authentication.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/5-apple-two-factor-authentication.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/5-apple-two-factor-authentication.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/5-apple-two-factor-authentication.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/5-apple-two-factor-authentication.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/5-apple-two-factor-authentication.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://support.apple.com/en-us/102660">Apple</a>. (<a href="https://files.smashing.media/articles/accessibility-problem-authentication-methods-captcha/5-apple-two-factor-authentication.png">Large preview</a>)</figcaption></figure><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><h2 id="testing-and-evaluation-of-accessible-authentication-designs">Testing And Evaluation Of Accessible Authentication Designs</h2><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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aRegardless%20of%20the%20authentication%20technique%20you%20use,%20you%20should%20present%20users%20with%20multiple%20authentication%20options%20upfront.%20They%20know%20their%20capabilities%20best,%20so%20let%20them%20decide%20what%20to%20use%20instead%20of%20trying%20to%20over-engineer%20a%20solution%20that%20works%20for%20every%20edge%20case.%0a&amp;url=https://smashingmagazine.com%2f2025%2f11%2faccessibility-problem-authentication-methods-captcha%2f">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.</a></p></blockquote><h2 id="address-the-accessibility-problem-with-design-changes">Address The Accessibility Problem With Design Changes</h2><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 id="further-reading">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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <h1>What It Is And Why It Matters (Excerpt) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>14 min read</li><li><a href="http://www.smashingmagazine.com/category/smashing-books">Smashing Books</a>, <a href="http://www.smashingmagazine.com/category/design-systems">Design Systems</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></div><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><figure><img alt="Maturing Design Systems" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/maturing-design-systems.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/maturing-design-systems.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/maturing-design-systems.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/maturing-design-systems.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/maturing-design-systems.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/maturing-design-systems.png 2000w" width="800"></img><figcaption>Enter “Maturing Design Systems,” a very welcome addition to our Smashing Library of books. Ben Callahan pulls from years of experience building and consulting on design systems to create a framework for growth and stability.</figcaption></figure><h2 id="excerpt-design-system-culture">Excerpt: Design System Culture</h2><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 id="why-culture">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 id="what-is-culture">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><figure><img alt="Schein’s model of organization culture" decoding="async" fetchpriority="low" height="507" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/design-system-culture/schein-model-organization-culture.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/design-system-culture/schein-model-organization-culture.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/design-system-culture/schein-model-organization-culture.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/design-system-culture/schein-model-organization-culture.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/design-system-culture/schein-model-organization-culture.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/design-system-culture/schein-model-organization-culture.png 2000w" width="800"></img><figcaption>Schein’s model of organization culture</figcaption></figure><h3 id="artifacts">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 id="espoused-values-and-beliefs">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 id="basic-underlying-assumptions">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 id="it-starts-at-the-bottom">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 id="strength-and-weakness">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><h2 id="editor-s-note">Editor’s Note</h2><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 id="table-of-contents">Table of Contents</h3><ul><li><strong>Context</strong><br></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></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></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></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></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></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></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></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 id="about-the-author">About The Author</h3><div><a href="https://bencallahan.com"><img alt="Photo of Ben Callahan" src="https://files.smashing.media/design-system-culture/ben-callahan.jpg" width="220"></img></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 id="reviewers-testimonials">Reviewers’ Testimonials</h3><blockquote><img alt="Lenora Porter" decoding="async" height="150" loading="lazy" src="https://files.smashing.media/design-system-culture/lenora-porter.jpg" width="150"></img>“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.”<p>— <em>Lenora Porter, Product Designer</em></p></blockquote><blockquote><img alt="Tarunya Varma" decoding="async" height="150" loading="lazy" src="https://files.smashing.media/design-system-culture/tarunya-varma.jpg" width="150"></img>“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.”<p>— <em>Tarunya Varma, Product Design Manager, Tide</em></p></blockquote><blockquote><img alt="Ness Grixti" decoding="async" height="150" loading="lazy" src="https://files.smashing.media/design-system-culture/ness-grixti.jpg" width="150"></img>“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.”<p>— <em>Ness Grixti, Design Lead, Wise, and Author of “A Practical Guide to Design System Components”</em></p></blockquote><h2 id="don-t-miss-out">Don’t Miss Out!</h2><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><h2 id="spread-the-word">Spread The Word</h2><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><p>.nl-box<strong>form .nl-box</strong>form–button,.nl-box<strong>form .nl-box</strong>form–email{flex-grow:1;flex-shrink:0;box-sizing:border-box;width:auto;margin:0;padding:.75em 1em;border:0;border-radius:11px;background:#fff;font-size:1em}</p><p>input.nl-box<strong>form–email:active,input.nl-box</strong>form–email:focus,.nl-box<strong>form–button:active,.nl-box</strong>form–button:focus{box-shadow:0 1px 1px rgba(0,0,0,.3)}</p><p>.nl-box<strong>form–button:-ms-input-placeholder,.nl-box</strong>form–email:-ms-input-placeholder{color:#777;font-style:italic}</p><p>.nl-box<strong>form–email::placeholder,.nl-box</strong>form–button::placeholder{color:#777;font-style:italic}</p><p>.nl-box<strong>form .nl-box</strong>form–button{transition:all .2s ease-in-out;color:#fff;background-color:#0168b8;font-family:Mija,-apple-system,Arial,BlinkMacSystemFont,“roboto Slab”, “droid Serif”, “segoe UI”, Ubuntu, Cantarell, Georgia, serif;font-weight:700;box-shadow:0 1px 1px rgba(0,0,0,.3);width:100%;border:0;border-left:1px solid #ddd;flex:2;border-top-left-radius:0;border-bottom-left-radius:0}</p><p>.nl-box<strong>form .nl-box</strong>form–email{border-top-right-radius:0;border-bottom-right-radius:0;width:100%;flex:4}</p><p>.nl-box__img{height:auto;width:100%}</p><p>@media all and (max-width: 650px){.nl-box<strong>form .nl-box</strong>group { flex-wrap: wrap; box-shadow: none; } .nl-box<strong>form .nl-box</strong>form–email, .nl-box<strong>form .nl-box</strong>form–button { border-radius: 11px; border-left: none; }</p> <p>.cards<strong>grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); } .nl-box</strong>form .nl-box<strong>form–email { box-shadow: 0 13px 27px -5px rgba(50, 50, 93, 0.25), 0 8px 16px -8px rgba(0, 0, 0, 0.3), 0 -6px 16px -6px rgba(0, 0, 0, 0.025); min-width: 100%; } .nl-box</strong>form .nl-box__form–button { margin-top: 1em; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); }}</p><p>.nl-box<strong>form .nl-box</strong>form–button:active,.nl-box<strong>form .nl-box</strong>form–button:focus,.nl-box<strong>form .nl-box</strong>form–button:hover{cursor:pointer;color:#fff;background-color:#0168b8;border-color:#dadada;box-shadow:0 1px 1px rgba(0,0,0,.3)}</p><p>.nl-box<strong>form .nl-box</strong>form–button:focus,.nl-box<strong>form .nl-box</strong>form–button:active{outline:none!important;text-shadow:1px 1px 1px rgba(0,0,0,.3);box-shadow:inset 0 3px 3px rgba(0,0,0,.3)}</p><p>.nl-box__group{display:flex;box-shadow:0 13px 27px -5px rgba(50,50,93,.25),0 8px 16px -8px rgba(0,0,0,.3),0 -6px 16px -6px rgba(0,0,0,.025);border-radius:11px}</p><p>.nl-box__wrapper{display:flex;flex-direction:column;justify-content:center}</p><p>.nl-box__form form{width:100%}</p><p>.nl-box<strong>form .nl-box</strong>group{margin:0}</p><p>.nl-box__caption{font-size:.9em;line-height:1.5em;color:#fff;border-radius:11px;padding:.5em 1em;display:inline-block;background-color:#0067b859;text-shadow:1px 1px 1px rgba(0,0,0,.3)}</p><p>.nl-box{margin:1.5em 0;padding:1em 0;box-shadow:none;max-width:750px;justify-self:center}</p><p>.nl-box__blue{background-color:#1b71bb;background-image:linear-gradient(#1b71bb 60%,#01a6c1 100%)}</p><p>.nl-box__desc{padding:.5rem 2rem 1rem}</p><p>.nl-box__image{width:100%;height:auto}</p><p>@media screen and (min-width: 48em){.nl-box__desc { padding: 0.5rem calc(2rem + 0.5vw) 1rem calc(2rem + 0.5vw); }}</p><p>.nl-box__desc–heading-link{color:#fff;text-shadow:1px 1px 1px rgba(0,0,0,.9)}</p><p>.nl-box__summary{border-bottom:0;color:#fff;font-style:normal;text-shadow:1px 1px 1px rgba(0,0,0,.4)}</p><p>.promo-box–blue{–promo-background:#e7f8ff;–promo-text:#000;–promo-highlight-text:#e7f8ff;–promo-highlight:#006fc6;–promo-highlight–hover:#006fc6}</p><p>.promo-box{background:var(–promo-background);color:var(–promo-text);position:relative;padding:125px 1.5em 2em;margin-top:125px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:11px;width:100%}</p><p>.promo-box__image-link{position:absolute;display:block;top:0;padding:0;left:50%;transform:translate(-50%,-50%);width:250px;height:250px;text-decoration:none;background:0 0}</p><p>.promo-box__image{width:100%;height:100%}</p><p>.promo-box__cta{background:#fff;color:#d33a2c;text-decoration:none;padding:.5em .8em;border-radius:11px;box-shadow:0 0 1px 1px rgba(0,0,0,.15);background-image:none;font-weight:700;font-size:1.2em;margin:0;position:relative;box-shadow:0 2px 6px rgba(0,0,0,.12);transition:background .4s ease-in-out,color .4s ease-in-out}</p><p>.promo-box<strong>cta:active,.promo-box</strong>cta:focus{outline:0!important;background:#fff;text-shadow:none;box-shadow:inset 0 3px 3px rgba(0,0,0,.3)}</p><p>.promo-box__heading{line-height:1.2;font-size:1.5em;font-weight:700;margin:1.25em 0 0}</p><p>.promo-box__button{background:var(–promo-highlight);border-radius:11px;padding:.8em 1em;font-size:1.15em;text-shadow:1px 1px 1px rgba(0,0,0,.3);text-decoration:none;color:#fff;font-weight:700;display:flex;width:100%;justify-content:center;transition:all .2s ease-in-out}</p><p>.promo-box<strong>button:active,.promo-box</strong>button:focus,.promo-box__button:hover{border-bottom:none;cursor:pointer;border-color:#dadada}</p><p>.promo-box<strong>button:active,.promo-box</strong>button:focus{outline:0!important;box-shadow:inset 0 3px 3px rgba(0,0,0,.3)}</p><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(as, il, vf)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <h1>What It Is And Why It Matters (Excerpt) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>14 min read</li><li><a href="http://www.smashingmagazine.com/category/smashing-books">Smashing Books</a>, <a href="http://www.smashingmagazine.com/category/design-systems">Design Systems</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></div><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><figure><img alt="Maturing Design Systems" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/maturing-design-systems.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/maturing-design-systems.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/maturing-design-systems.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/maturing-design-systems.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/maturing-design-systems.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/maturing-design-systems.png 2000w" width="800"></img><figcaption>Enter “Maturing Design Systems,” a very welcome addition to our Smashing Library of books. Ben Callahan pulls from years of experience building and consulting on design systems to create a framework for growth and stability.</figcaption></figure><h2 id="excerpt-design-system-culture">Excerpt: Design System Culture</h2><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 id="why-culture">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 id="what-is-culture">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><figure><img alt="Schein’s model of organization culture" decoding="async" fetchpriority="low" height="507" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/design-system-culture/schein-model-organization-culture.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/design-system-culture/schein-model-organization-culture.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/design-system-culture/schein-model-organization-culture.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/design-system-culture/schein-model-organization-culture.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/design-system-culture/schein-model-organization-culture.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/design-system-culture/schein-model-organization-culture.png 2000w" width="800"></img><figcaption>Schein’s model of organization culture</figcaption></figure><h3 id="artifacts">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 id="espoused-values-and-beliefs">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 id="basic-underlying-assumptions">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 id="it-starts-at-the-bottom">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 id="strength-and-weakness">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><h2 id="editor-s-note">Editor’s Note</h2><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 id="table-of-contents">Table of Contents</h3><ul><li><strong>Context</strong><br></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></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></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></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></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></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></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></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 id="about-the-author">About The Author</h3><div><a href="https://bencallahan.com"><img alt="Photo of Ben Callahan" src="https://files.smashing.media/design-system-culture/ben-callahan.jpg" width="220"></img></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 id="reviewers-testimonials">Reviewers’ Testimonials</h3><blockquote><img alt="Lenora Porter" decoding="async" height="150" loading="lazy" src="https://files.smashing.media/design-system-culture/lenora-porter.jpg" width="150"></img>“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.”<p>— <em>Lenora Porter, Product Designer</em></p></blockquote><blockquote><img alt="Tarunya Varma" decoding="async" height="150" loading="lazy" src="https://files.smashing.media/design-system-culture/tarunya-varma.jpg" width="150"></img>“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.”<p>— <em>Tarunya Varma, Product Design Manager, Tide</em></p></blockquote><blockquote><img alt="Ness Grixti" decoding="async" height="150" loading="lazy" src="https://files.smashing.media/design-system-culture/ness-grixti.jpg" width="150"></img>“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.”<p>— <em>Ness Grixti, Design Lead, Wise, and Author of “A Practical Guide to Design System Components”</em></p></blockquote><h2 id="don-t-miss-out">Don’t Miss Out!</h2><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><h2 id="spread-the-word">Spread The Word</h2><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><p>.nl-box<strong>form .nl-box</strong>form–button,.nl-box<strong>form .nl-box</strong>form–email{flex-grow:1;flex-shrink:0;box-sizing:border-box;width:auto;margin:0;padding:.75em 1em;border:0;border-radius:11px;background:#fff;font-size:1em}</p><p>input.nl-box<strong>form–email:active,input.nl-box</strong>form–email:focus,.nl-box<strong>form–button:active,.nl-box</strong>form–button:focus{box-shadow:0 1px 1px rgba(0,0,0,.3)}</p><p>.nl-box<strong>form–button:-ms-input-placeholder,.nl-box</strong>form–email:-ms-input-placeholder{color:#777;font-style:italic}</p><p>.nl-box<strong>form–email::placeholder,.nl-box</strong>form–button::placeholder{color:#777;font-style:italic}</p><p>.nl-box<strong>form .nl-box</strong>form–button{transition:all .2s ease-in-out;color:#fff;background-color:#0168b8;font-family:Mija,-apple-system,Arial,BlinkMacSystemFont,“roboto Slab”, “droid Serif”, “segoe UI”, Ubuntu, Cantarell, Georgia, serif;font-weight:700;box-shadow:0 1px 1px rgba(0,0,0,.3);width:100%;border:0;border-left:1px solid #ddd;flex:2;border-top-left-radius:0;border-bottom-left-radius:0}</p><p>.nl-box<strong>form .nl-box</strong>form–email{border-top-right-radius:0;border-bottom-right-radius:0;width:100%;flex:4}</p><p>.nl-box__img{height:auto;width:100%}</p><p>@media all and (max-width: 650px){.nl-box<strong>form .nl-box</strong>group { flex-wrap: wrap; box-shadow: none; } .nl-box<strong>form .nl-box</strong>form–email, .nl-box<strong>form .nl-box</strong>form–button { border-radius: 11px; border-left: none; }</p> <p>.cards<strong>grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); } .nl-box</strong>form .nl-box<strong>form–email { box-shadow: 0 13px 27px -5px rgba(50, 50, 93, 0.25), 0 8px 16px -8px rgba(0, 0, 0, 0.3), 0 -6px 16px -6px rgba(0, 0, 0, 0.025); min-width: 100%; } .nl-box</strong>form .nl-box__form–button { margin-top: 1em; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); }}</p><p>.nl-box<strong>form .nl-box</strong>form–button:active,.nl-box<strong>form .nl-box</strong>form–button:focus,.nl-box<strong>form .nl-box</strong>form–button:hover{cursor:pointer;color:#fff;background-color:#0168b8;border-color:#dadada;box-shadow:0 1px 1px rgba(0,0,0,.3)}</p><p>.nl-box<strong>form .nl-box</strong>form–button:focus,.nl-box<strong>form .nl-box</strong>form–button:active{outline:none!important;text-shadow:1px 1px 1px rgba(0,0,0,.3);box-shadow:inset 0 3px 3px rgba(0,0,0,.3)}</p><p>.nl-box__group{display:flex;box-shadow:0 13px 27px -5px rgba(50,50,93,.25),0 8px 16px -8px rgba(0,0,0,.3),0 -6px 16px -6px rgba(0,0,0,.025);border-radius:11px}</p><p>.nl-box__wrapper{display:flex;flex-direction:column;justify-content:center}</p><p>.nl-box__form form{width:100%}</p><p>.nl-box<strong>form .nl-box</strong>group{margin:0}</p><p>.nl-box__caption{font-size:.9em;line-height:1.5em;color:#fff;border-radius:11px;padding:.5em 1em;display:inline-block;background-color:#0067b859;text-shadow:1px 1px 1px rgba(0,0,0,.3)}</p><p>.nl-box{margin:1.5em 0;padding:1em 0;box-shadow:none;max-width:750px;justify-self:center}</p><p>.nl-box__blue{background-color:#1b71bb;background-image:linear-gradient(#1b71bb 60%,#01a6c1 100%)}</p><p>.nl-box__desc{padding:.5rem 2rem 1rem}</p><p>.nl-box__image{width:100%;height:auto}</p><p>@media screen and (min-width: 48em){.nl-box__desc { padding: 0.5rem calc(2rem + 0.5vw) 1rem calc(2rem + 0.5vw); }}</p><p>.nl-box__desc–heading-link{color:#fff;text-shadow:1px 1px 1px rgba(0,0,0,.9)}</p><p>.nl-box__summary{border-bottom:0;color:#fff;font-style:normal;text-shadow:1px 1px 1px rgba(0,0,0,.4)}</p><p>.promo-box–blue{–promo-background:#e7f8ff;–promo-text:#000;–promo-highlight-text:#e7f8ff;–promo-highlight:#006fc6;–promo-highlight–hover:#006fc6}</p><p>.promo-box{background:var(–promo-background);color:var(–promo-text);position:relative;padding:125px 1.5em 2em;margin-top:125px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:11px;width:100%}</p><p>.promo-box__image-link{position:absolute;display:block;top:0;padding:0;left:50%;transform:translate(-50%,-50%);width:250px;height:250px;text-decoration:none;background:0 0}</p><p>.promo-box__image{width:100%;height:100%}</p><p>.promo-box__cta{background:#fff;color:#d33a2c;text-decoration:none;padding:.5em .8em;border-radius:11px;box-shadow:0 0 1px 1px rgba(0,0,0,.15);background-image:none;font-weight:700;font-size:1.2em;margin:0;position:relative;box-shadow:0 2px 6px rgba(0,0,0,.12);transition:background .4s ease-in-out,color .4s ease-in-out}</p><p>.promo-box<strong>cta:active,.promo-box</strong>cta:focus{outline:0!important;background:#fff;text-shadow:none;box-shadow:inset 0 3px 3px rgba(0,0,0,.3)}</p><p>.promo-box__heading{line-height:1.2;font-size:1.5em;font-weight:700;margin:1.25em 0 0}</p><p>.promo-box__button{background:var(–promo-highlight);border-radius:11px;padding:.8em 1em;font-size:1.15em;text-shadow:1px 1px 1px rgba(0,0,0,.3);text-decoration:none;color:#fff;font-weight:700;display:flex;width:100%;justify-content:center;transition:all .2s ease-in-out}</p><p>.promo-box<strong>button:active,.promo-box</strong>button:focus,.promo-box__button:hover{border-bottom:none;cursor:pointer;border-color:#dadada}</p><p>.promo-box<strong>button:active,.promo-box</strong>button:focus{outline:0!important;box-shadow:inset 0 3px 3px rgba(0,0,0,.3)}</p><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(as, il, vf)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <img src="https://files.smashing.media/articles/designing-for-stress-and-emergency/designing-for-stress-emergency.jpg" /><h1>Designing For Stress And Emergency — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>7 min read</li><li><a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/design-patterns">Design Patterns</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Practical guidelines on designing time-critical products that prevent errors and improve accuracy. Part of the <a href="https://measure-ux.com/">Measure UX &amp; 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.</section></div><p>No design exists in isolation. As designers, we often imagine specific situations in which people will use our product. It might be indeed quite common — but there will also be other — <strong>urgent, frustrating, stressful situations</strong>. And they are the ones that we rarely account for.</p><p>So how do we account for such situations? How can we help people <strong>use our products while coping with stress</strong> — without adding to their cognitive load? Let’s take a closer look.</p><h2 id="study-where-your-product-fits-into-people-s-lives">Study Where Your Product Fits Into People’s Lives</h2><p>When designing digital products, sometimes we get a bit too attached to our <strong>shiny new features and flows</strong> — often forgetting the messy reality in which these features and flows have to neatly fit. And often it means 10s of other products, 100s of other tabs, and 1000s of other emails.</p><figure><a href="https://files.smashing.media/articles/designing-for-stress-and-emergency/1-designing-for-stress-and-emergency.jpg"><img alt="An example of a split screen with two power consumption dashboards on a 22-inch screen." decoding="async" fetchpriority="low" height="600" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/1-designing-for-stress-and-emergency.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/1-designing-for-stress-and-emergency.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-for-stress-and-emergency/1-designing-for-stress-and-emergency.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-for-stress-and-emergency/1-designing-for-stress-and-emergency.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-for-stress-and-emergency/1-designing-for-stress-and-emergency.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-for-stress-and-emergency/1-designing-for-stress-and-emergency.jpg 2000w" width="800"></img></a><figcaption>Design never exists in isolation. It must fit the user’s context and their expectations to do its job. (Image source: <a href="https://seabits.com/engine-and-power-dashboards/">Engine And Power Dashboard</a>) (<a href="https://files.smashing.media/articles/designing-for-stress-and-emergency/1-designing-for-stress-and-emergency.jpg">Large preview</a>)</figcaption></figure><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><h2 id="what-is-stress">What Is Stress?</h2><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><figure><a href="https://alypain.com/5-apps-to-reduce-stress-in-teens/"><img alt="SOS Emergency System" decoding="async" fetchpriority="low" height="804" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/2-designing-for-stress-and-emergency.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/2-designing-for-stress-and-emergency.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-for-stress-and-emergency/2-designing-for-stress-and-emergency.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-for-stress-and-emergency/2-designing-for-stress-and-emergency.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-for-stress-and-emergency/2-designing-for-stress-and-emergency.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-for-stress-and-emergency/2-designing-for-stress-and-emergency.jpg 2000w" width="800"></img></a><figcaption>Stress has many levels. The key is not to let it spiral into dangerous zones. (Image source: <a href="https://alypain.com/5-apps-to-reduce-stress-in-teens/">Alypain</a>) (<a href="https://files.smashing.media/articles/designing-for-stress-and-emergency/2-designing-for-stress-and-emergency.jpg">Large preview</a>)</figcaption></figure><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><h2 id="how-stress-influences-user-interactions">How Stress Influences User Interactions</h2><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><figure><a href="https://files.smashing.media/articles/designing-for-stress-and-emergency/3-designing-for-stress-and-emergency.png"><img alt="Designing For Stress And Emergency" decoding="async" fetchpriority="low" height="535" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/3-designing-for-stress-and-emergency.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/3-designing-for-stress-and-emergency.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-for-stress-and-emergency/3-designing-for-stress-and-emergency.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-for-stress-and-emergency/3-designing-for-stress-and-emergency.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-for-stress-and-emergency/3-designing-for-stress-and-emergency.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-for-stress-and-emergency/3-designing-for-stress-and-emergency.png 2000w" width="800"></img></a><figcaption>Overwhelming products can add to the cognitive load and lead to mistakes. However, people also get used to any products once they’ve used them long enough. (<a href="https://files.smashing.media/articles/designing-for-stress-and-emergency/3-designing-for-stress-and-emergency.png">Large preview</a>)</figcaption></figure><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><h2 id="single-tasking-instead-of-multi-tasking">Single-Tasking Instead Of Multi-Tasking</h2><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><figure><a href="https://designnotes.blog.gov.uk/2017/04/04/weve-published-the-task-list-pattern/"><img alt="Task list pattern by Gov UK" decoding="async" fetchpriority="low" height="607" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/4-designing-for-stress-and-emergency.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/4-designing-for-stress-and-emergency.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-for-stress-and-emergency/4-designing-for-stress-and-emergency.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-for-stress-and-emergency/4-designing-for-stress-and-emergency.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-for-stress-and-emergency/4-designing-for-stress-and-emergency.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-for-stress-and-emergency/4-designing-for-stress-and-emergency.png 2000w" width="800"></img></a><figcaption>Poorly designed products can add to the cognitive load and lead to mistakes. (<a href="https://files.smashing.media/articles/designing-for-stress-and-emergency/4-designing-for-stress-and-emergency.png">Large preview</a>)</figcaption></figure><p>An example of the plan is the <a href="https://designnotes.blog.gov.uk/2017/04/04/weve-published-the-task-list-pattern/">Task List Pattern</a>, invented by fine folks at Gov.uk. We break a task into a <strong>sequence of sub-tasks</strong>, describe them with actionable labels, assign statuses, and track progress.</p><p>To support accuracy, we revise <strong>default settings</strong>, values, presets, and actions. Also, the <strong>order of actions</strong> and buttons matters, so we put high-priority things first to make them easier to find. Then we add built-in safeguards (e.g., Undo feature) to prevent irreversible errors.</p><h2 id="supporting-in-emergencies">Supporting In Emergencies</h2><p>The most effective help during emergencies is to help people deal with the situation in a well-defined and effective way. That means being prepared for and designing an <strong>emergency mode</strong>, e.g., to activate instant alerts on emergency contacts, distribute pre-assigned tasks, and establish a line of communication.</p><figure><a href="https://www.redcross.org.au/emergencies/prepare/get-prepared-app/"><img alt="Emergency plan by Rediplan App" decoding="async" fetchpriority="low" height="851" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/5-designing-for-stress-and-emergency.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/5-designing-for-stress-and-emergency.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-for-stress-and-emergency/5-designing-for-stress-and-emergency.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-for-stress-and-emergency/5-designing-for-stress-and-emergency.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-for-stress-and-emergency/5-designing-for-stress-and-emergency.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-for-stress-and-emergency/5-designing-for-stress-and-emergency.jpg 2000w" width="800"></img></a><figcaption><a href="https://www.redcross.org.au/emergencies/prepare/get-prepared-app/">Rediplan App</a> to prepare and act in case of emergencies. (<a href="https://files.smashing.media/articles/designing-for-stress-and-emergency/5-designing-for-stress-and-emergency.jpg">Large preview</a>)</figcaption></figure><p><a href="https://www.redcross.org.au/emergencies/prepare/get-prepared-app/">Rediplan App</a> by Australian Red Cross is an emergency plan companion that encourages citizens to <strong>prepare their documents and belongings</strong> with a few checklists and actions — including key contracts, meeting places, and medical information, all in one place.</p><h2 id="just-enough-friction">Just Enough Friction</h2><p>Not all stress is equally harmful, though. As <a href="https://www.kryshiggins.com/optimal-onboarding-zone/">Krystal Higgins points out</a>, if there is not enough friction when onboarding new users and the experience is <strong>too passive</strong> or users are hand-held even through the most basic tasks, you risk that they won’t realize the <strong>personal value</strong> they gain from the experience and, ultimately, lose interest.</p><figure><a href="https://www.kryshiggins.com/optimal-onboarding-zone/"><img alt="Bell Curve For Optimal User Onboarding" decoding="async" fetchpriority="low" height="459" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/6-designing-for-stress-and-emergency.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/6-designing-for-stress-and-emergency.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-for-stress-and-emergency/6-designing-for-stress-and-emergency.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-for-stress-and-emergency/6-designing-for-stress-and-emergency.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-for-stress-and-emergency/6-designing-for-stress-and-emergency.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-for-stress-and-emergency/6-designing-for-stress-and-emergency.png 2000w" width="800"></img></a><figcaption>We need to find the sweet spot between value realization and friction to create experiences that keep users engaged. (Image source: <a href="https://www.kryshiggins.com/optimal-onboarding-zone/">Krystal Higgins</a>) (<a href="https://files.smashing.media/articles/designing-for-stress-and-emergency/6-designing-for-stress-and-emergency.png">Large preview</a>)</figcaption></figure><h2 id="design-and-test-for-stress-cases">Design And Test For Stress Cases</h2><p><strong>Stress cases aren’t edge cases</strong>. We can’t predict the emotional state in which a user comes to our site or uses our product. A person looking for specific information on a hospital website or visiting a debt management website, for example, is most likely already stressed. Now, if the interface is overwhelming, it will only add to their cognitive load.</p><p>Stress-testing your product is 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><h2 id="wrapping-up">Wrapping Up</h2><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><h2 id="key-takeaways">Key Takeaways</h2><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><h2 id="meet-how-to-measure-ux-and-design-impact">Meet “How To Measure UX And Design Impact”</h2><p>You can find more details on <strong>UX Strategy</strong> in 🪴 <a href="https://measure-ux.com/"><strong>Measure UX &amp; 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><figure><a href="https://measure-ux.com/" title="How To Measure UX and Design Impact, with Vitaly Friedman"><img alt="How to Measure UX and Design Impact, with Vitaly Friedman." height="466" src="https://files.smashing.media/articles/ux-metrics-video-course-release/measure-ux-and-design-impact-course.png" width="900"></img></a></figure><h2 id="useful-resources">Useful Resources</h2><ul><li>“<a href="https://medium.com/design-bootcamp/ux-case-study-standby-17000867133c">Designing The SOS Emergency System</a>”, by Ritik Jayy</li><li>“<a href="https://medium.com/net-magazine/designing-for-crisis-9cab10b4c519">Designing For Crisis</a>”, by Eric Meyer</li><li>“<a href="https://medium.com/designing-services/designing-for-stressed-out-users-part-1-4489793dbe41">Designing For Stressed Out Users</a>” (Series), by H Locke</li><li><a href="https://uxpodcast.com/293-life-death-design-katie-swindler/">Designing For Stress</a> (Podcast), by Katie Swindler</li><li><a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-activity-7167433494200066048-trWE">Designing For Edge Cases and Exceptions</a>, by yours truly</li><li><a href="https://dfrlbook.com/"><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 id="further-reading">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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/designing-for-stress-and-emergency/designing-for-stress-emergency.jpg" /><h1>Designing For Stress And Emergency — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>7 min read</li><li><a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/design-patterns">Design Patterns</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Practical guidelines on designing time-critical products that prevent errors and improve accuracy. Part of the <a href="https://measure-ux.com/">Measure UX &amp; 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.</section></div><p>No design exists in isolation. As designers, we often imagine specific situations in which people will use our product. It might be indeed quite common — but there will also be other — <strong>urgent, frustrating, stressful situations</strong>. And they are the ones that we rarely account for.</p><p>So how do we account for such situations? How can we help people <strong>use our products while coping with stress</strong> — without adding to their cognitive load? Let’s take a closer look.</p><h2 id="study-where-your-product-fits-into-people-s-lives">Study Where Your Product Fits Into People’s Lives</h2><p>When designing digital products, sometimes we get a bit too attached to our <strong>shiny new features and flows</strong> — often forgetting the messy reality in which these features and flows have to neatly fit. And often it means 10s of other products, 100s of other tabs, and 1000s of other emails.</p><figure><a href="https://files.smashing.media/articles/designing-for-stress-and-emergency/1-designing-for-stress-and-emergency.jpg"><img alt="An example of a split screen with two power consumption dashboards on a 22-inch screen." decoding="async" fetchpriority="low" height="600" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/1-designing-for-stress-and-emergency.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/1-designing-for-stress-and-emergency.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-for-stress-and-emergency/1-designing-for-stress-and-emergency.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-for-stress-and-emergency/1-designing-for-stress-and-emergency.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-for-stress-and-emergency/1-designing-for-stress-and-emergency.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-for-stress-and-emergency/1-designing-for-stress-and-emergency.jpg 2000w" width="800"></img></a><figcaption>Design never exists in isolation. It must fit the user’s context and their expectations to do its job. (Image source: <a href="https://seabits.com/engine-and-power-dashboards/">Engine And Power Dashboard</a>) (<a href="https://files.smashing.media/articles/designing-for-stress-and-emergency/1-designing-for-stress-and-emergency.jpg">Large preview</a>)</figcaption></figure><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><h2 id="what-is-stress">What Is Stress?</h2><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><figure><a href="https://alypain.com/5-apps-to-reduce-stress-in-teens/"><img alt="SOS Emergency System" decoding="async" fetchpriority="low" height="804" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/2-designing-for-stress-and-emergency.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/2-designing-for-stress-and-emergency.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-for-stress-and-emergency/2-designing-for-stress-and-emergency.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-for-stress-and-emergency/2-designing-for-stress-and-emergency.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-for-stress-and-emergency/2-designing-for-stress-and-emergency.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-for-stress-and-emergency/2-designing-for-stress-and-emergency.jpg 2000w" width="800"></img></a><figcaption>Stress has many levels. The key is not to let it spiral into dangerous zones. (Image source: <a href="https://alypain.com/5-apps-to-reduce-stress-in-teens/">Alypain</a>) (<a href="https://files.smashing.media/articles/designing-for-stress-and-emergency/2-designing-for-stress-and-emergency.jpg">Large preview</a>)</figcaption></figure><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><h2 id="how-stress-influences-user-interactions">How Stress Influences User Interactions</h2><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><figure><a href="https://files.smashing.media/articles/designing-for-stress-and-emergency/3-designing-for-stress-and-emergency.png"><img alt="Designing For Stress And Emergency" decoding="async" fetchpriority="low" height="535" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/3-designing-for-stress-and-emergency.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/3-designing-for-stress-and-emergency.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-for-stress-and-emergency/3-designing-for-stress-and-emergency.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-for-stress-and-emergency/3-designing-for-stress-and-emergency.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-for-stress-and-emergency/3-designing-for-stress-and-emergency.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-for-stress-and-emergency/3-designing-for-stress-and-emergency.png 2000w" width="800"></img></a><figcaption>Overwhelming products can add to the cognitive load and lead to mistakes. However, people also get used to any products once they’ve used them long enough. (<a href="https://files.smashing.media/articles/designing-for-stress-and-emergency/3-designing-for-stress-and-emergency.png">Large preview</a>)</figcaption></figure><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><h2 id="single-tasking-instead-of-multi-tasking">Single-Tasking Instead Of Multi-Tasking</h2><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><figure><a href="https://designnotes.blog.gov.uk/2017/04/04/weve-published-the-task-list-pattern/"><img alt="Task list pattern by Gov UK" decoding="async" fetchpriority="low" height="607" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/4-designing-for-stress-and-emergency.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/4-designing-for-stress-and-emergency.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-for-stress-and-emergency/4-designing-for-stress-and-emergency.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-for-stress-and-emergency/4-designing-for-stress-and-emergency.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-for-stress-and-emergency/4-designing-for-stress-and-emergency.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-for-stress-and-emergency/4-designing-for-stress-and-emergency.png 2000w" width="800"></img></a><figcaption>Poorly designed products can add to the cognitive load and lead to mistakes. (<a href="https://files.smashing.media/articles/designing-for-stress-and-emergency/4-designing-for-stress-and-emergency.png">Large preview</a>)</figcaption></figure><p>An example of the plan is the <a href="https://designnotes.blog.gov.uk/2017/04/04/weve-published-the-task-list-pattern/">Task List Pattern</a>, invented by fine folks at Gov.uk. We break a task into a <strong>sequence of sub-tasks</strong>, describe them with actionable labels, assign statuses, and track progress.</p><p>To support accuracy, we revise <strong>default settings</strong>, values, presets, and actions. Also, the <strong>order of actions</strong> and buttons matters, so we put high-priority things first to make them easier to find. Then we add built-in safeguards (e.g., Undo feature) to prevent irreversible errors.</p><h2 id="supporting-in-emergencies">Supporting In Emergencies</h2><p>The most effective help during emergencies is to help people deal with the situation in a well-defined and effective way. That means being prepared for and designing an <strong>emergency mode</strong>, e.g., to activate instant alerts on emergency contacts, distribute pre-assigned tasks, and establish a line of communication.</p><figure><a href="https://www.redcross.org.au/emergencies/prepare/get-prepared-app/"><img alt="Emergency plan by Rediplan App" decoding="async" fetchpriority="low" height="851" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/5-designing-for-stress-and-emergency.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/5-designing-for-stress-and-emergency.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-for-stress-and-emergency/5-designing-for-stress-and-emergency.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-for-stress-and-emergency/5-designing-for-stress-and-emergency.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-for-stress-and-emergency/5-designing-for-stress-and-emergency.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-for-stress-and-emergency/5-designing-for-stress-and-emergency.jpg 2000w" width="800"></img></a><figcaption><a href="https://www.redcross.org.au/emergencies/prepare/get-prepared-app/">Rediplan App</a> to prepare and act in case of emergencies. (<a href="https://files.smashing.media/articles/designing-for-stress-and-emergency/5-designing-for-stress-and-emergency.jpg">Large preview</a>)</figcaption></figure><p><a href="https://www.redcross.org.au/emergencies/prepare/get-prepared-app/">Rediplan App</a> by Australian Red Cross is an emergency plan companion that encourages citizens to <strong>prepare their documents and belongings</strong> with a few checklists and actions — including key contracts, meeting places, and medical information, all in one place.</p><h2 id="just-enough-friction">Just Enough Friction</h2><p>Not all stress is equally harmful, though. As <a href="https://www.kryshiggins.com/optimal-onboarding-zone/">Krystal Higgins points out</a>, if there is not enough friction when onboarding new users and the experience is <strong>too passive</strong> or users are hand-held even through the most basic tasks, you risk that they won’t realize the <strong>personal value</strong> they gain from the experience and, ultimately, lose interest.</p><figure><a href="https://www.kryshiggins.com/optimal-onboarding-zone/"><img alt="Bell Curve For Optimal User Onboarding" decoding="async" fetchpriority="low" height="459" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/6-designing-for-stress-and-emergency.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-for-stress-and-emergency/6-designing-for-stress-and-emergency.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-for-stress-and-emergency/6-designing-for-stress-and-emergency.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-for-stress-and-emergency/6-designing-for-stress-and-emergency.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-for-stress-and-emergency/6-designing-for-stress-and-emergency.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-for-stress-and-emergency/6-designing-for-stress-and-emergency.png 2000w" width="800"></img></a><figcaption>We need to find the sweet spot between value realization and friction to create experiences that keep users engaged. (Image source: <a href="https://www.kryshiggins.com/optimal-onboarding-zone/">Krystal Higgins</a>) (<a href="https://files.smashing.media/articles/designing-for-stress-and-emergency/6-designing-for-stress-and-emergency.png">Large preview</a>)</figcaption></figure><h2 id="design-and-test-for-stress-cases">Design And Test For Stress Cases</h2><p><strong>Stress cases aren’t edge cases</strong>. We can’t predict the emotional state in which a user comes to our site or uses our product. A person looking for specific information on a hospital website or visiting a debt management website, for example, is most likely already stressed. Now, if the interface is overwhelming, it will only add to their cognitive load.</p><p>Stress-testing your product is 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><h2 id="wrapping-up">Wrapping Up</h2><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><h2 id="key-takeaways">Key Takeaways</h2><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><h2 id="meet-how-to-measure-ux-and-design-impact">Meet “How To Measure UX And Design Impact”</h2><p>You can find more details on <strong>UX Strategy</strong> in 🪴 <a href="https://measure-ux.com/"><strong>Measure UX &amp; 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><figure><a href="https://measure-ux.com/" title="How To Measure UX and Design Impact, with Vitaly Friedman"><img alt="How to Measure UX and Design Impact, with Vitaly Friedman." height="466" src="https://files.smashing.media/articles/ux-metrics-video-course-release/measure-ux-and-design-impact-course.png" width="900"></img></a></figure><h2 id="useful-resources">Useful Resources</h2><ul><li>“<a href="https://medium.com/design-bootcamp/ux-case-study-standby-17000867133c">Designing The SOS Emergency System</a>”, by Ritik Jayy</li><li>“<a href="https://medium.com/net-magazine/designing-for-crisis-9cab10b4c519">Designing For Crisis</a>”, by Eric Meyer</li><li>“<a href="https://medium.com/designing-services/designing-for-stressed-out-users-part-1-4489793dbe41">Designing For Stressed Out Users</a>” (Series), by H Locke</li><li><a href="https://uxpodcast.com/293-life-death-design-katie-swindler/">Designing For Stress</a> (Podcast), by Katie Swindler</li><li><a href="https://www.linkedin.com/posts/vitalyfriedman_ux-design-activity-7167433494200066048-trWE">Designing For Edge Cases and Exceptions</a>, by yours truly</li><li><a href="https://dfrlbook.com/"><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 id="further-reading">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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <img src="https://files.smashing.media/articles/keyframes-tokens-standardizing-animation-across-projects/keyframes-tokens-standardizing-animation-across-projects.jpg" /><h1>Standardizing Animation Across Projects — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>24 min read</li><li><a href="http://www.smashingmagazine.com/category/css">CSS</a>, <a href="http://www.smashingmagazine.com/category/animation">Animation</a>, <a href="http://www.smashingmagazine.com/category/techniques">Techniques</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><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><h2 id="the-logic-behind-the-chaos">The Logic Behind The Chaos</h2><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><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="the-small-problem">The Small Problem</h2><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><h2 id="the-bigger-problem">The Bigger Problem</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="JoXrOqz" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 1 [forked]](https://codepen.io/smashingmag/pen/JoXrOqz) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="the-solution-unified-keyframes">The Solution: Unified Keyframes</h2><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><h2 id="building-the-first-keyframes-token">Building The First Keyframes Token</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="yyOzPdv" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 2 [forked]](https://codepen.io/smashingmag/pen/yyOzPdv) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="making-a-dynamic-slide">Making A Dynamic Slide</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="raeGYXr" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 3 [forked]](https://codepen.io/smashingmag/pen/raeGYXr) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="bidirectional-zoom-keyframes">Bidirectional Zoom Keyframes</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="WbwZdQZ" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 4 [forked]](https://codepen.io/smashingmag/pen/WbwZdQZ) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="continuous-animations">Continuous Animations</h2><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 id="the-spin-doctor">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><figure><p data-default-tab="result" data-height="480" data-slug-hash="MYyErbq" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 5 [forked]](https://codepen.io/smashingmag/pen/MYyErbq) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="the-pulse-paradox">The Pulse Paradox</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="xbVXpRo" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 6 [forked]](https://codepen.io/smashingmag/pen/xbVXpRo) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="advanced-easing">Advanced Easing</h2><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 `translate` */ 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><figure><p data-default-tab="result" data-height="480" data-slug-hash="QwNqadQ" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 7 [forked]](https://codepen.io/smashingmag/pen/QwNqadQ) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="putting-it-all-together">Putting It All Together</h2><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><h2 id="animation-addition">Animation Addition</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="YPqrYZw" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 8 [forked]](https://codepen.io/smashingmag/pen/YPqrYZw) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="myPBpWr" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 9 [forked]](https://codepen.io/smashingmag/pen/myPBpWr) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="animation-stagger">Animation Stagger</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="bNpoaqo" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 10 [forked]](https://codepen.io/smashingmag/pen/bNpoaqo) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><h2 id="order-matters">Order Matters</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="zxqEpZb" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 11 [forked]](https://codepen.io/smashingmag/pen/zxqEpZb) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="NPNaXjw" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 12 [forked]](https://codepen.io/smashingmag/pen/NPNaXjw) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="reduced-motion">Reduced Motion</h2><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 id="muting-keyframes">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 id="instant-in">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 id="the-soft-approach">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><h2 id="implementation-strategies-best-practices">Implementation Strategies &amp; Best Practices</h2><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><h2 id="wrapping-up">Wrapping Up</h2><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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aOnce%20the%20tokens%20are%20in%20place,%20keyframes%20stop%20being%20a%20scattered%20collection%20of%20tricks%20and%20become%20part%20of%20the%20design%20language.%20They%20make%20the%20product%20feel%20more%20intentional,%20more%20consistent,%20and%20more%20alive.%0a&amp;url=https://smashingmagazine.com%2f2025%2f11%2fkeyframes-tokens-standardizing-animation-across-projects%2f">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.</a></p></blockquote><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/keyframes-tokens-standardizing-animation-across-projects/keyframes-tokens-standardizing-animation-across-projects.jpg" /><h1>Standardizing Animation Across Projects — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>24 min read</li><li><a href="http://www.smashingmagazine.com/category/css">CSS</a>, <a href="http://www.smashingmagazine.com/category/animation">Animation</a>, <a href="http://www.smashingmagazine.com/category/techniques">Techniques</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><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><h2 id="the-logic-behind-the-chaos">The Logic Behind The Chaos</h2><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><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="the-small-problem">The Small Problem</h2><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><h2 id="the-bigger-problem">The Bigger Problem</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="JoXrOqz" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 1 [forked]](https://codepen.io/smashingmag/pen/JoXrOqz) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="the-solution-unified-keyframes">The Solution: Unified Keyframes</h2><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><h2 id="building-the-first-keyframes-token">Building The First Keyframes Token</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="yyOzPdv" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 2 [forked]](https://codepen.io/smashingmag/pen/yyOzPdv) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="making-a-dynamic-slide">Making A Dynamic Slide</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="raeGYXr" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 3 [forked]](https://codepen.io/smashingmag/pen/raeGYXr) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="bidirectional-zoom-keyframes">Bidirectional Zoom Keyframes</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="WbwZdQZ" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 4 [forked]](https://codepen.io/smashingmag/pen/WbwZdQZ) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="continuous-animations">Continuous Animations</h2><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 id="the-spin-doctor">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><figure><p data-default-tab="result" data-height="480" data-slug-hash="MYyErbq" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 5 [forked]](https://codepen.io/smashingmag/pen/MYyErbq) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="the-pulse-paradox">The Pulse Paradox</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="xbVXpRo" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 6 [forked]](https://codepen.io/smashingmag/pen/xbVXpRo) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="advanced-easing">Advanced Easing</h2><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 `translate` */ 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><figure><p data-default-tab="result" data-height="480" data-slug-hash="QwNqadQ" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 7 [forked]](https://codepen.io/smashingmag/pen/QwNqadQ) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="putting-it-all-together">Putting It All Together</h2><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><h2 id="animation-addition">Animation Addition</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="YPqrYZw" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 8 [forked]](https://codepen.io/smashingmag/pen/YPqrYZw) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="myPBpWr" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 9 [forked]](https://codepen.io/smashingmag/pen/myPBpWr) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="animation-stagger">Animation Stagger</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="bNpoaqo" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 10 [forked]](https://codepen.io/smashingmag/pen/bNpoaqo) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><h2 id="order-matters">Order Matters</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="zxqEpZb" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 11 [forked]](https://codepen.io/smashingmag/pen/zxqEpZb) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="NPNaXjw" data-theme-id="light" data-user="smashingmag">See the Pen [Keyframes Tokens - Demo 12 [forked]](https://codepen.io/smashingmag/pen/NPNaXjw) by <a href="https://codepen.io/amit_sheen">Amit Sheen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="reduced-motion">Reduced Motion</h2><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 id="muting-keyframes">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 id="instant-in">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 id="the-soft-approach">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><h2 id="implementation-strategies-best-practices">Implementation Strategies &amp; Best Practices</h2><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><h2 id="wrapping-up">Wrapping Up</h2><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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aOnce%20the%20tokens%20are%20in%20place,%20keyframes%20stop%20being%20a%20scattered%20collection%20of%20tricks%20and%20become%20part%20of%20the%20design%20language.%20They%20make%20the%20product%20feel%20more%20intentional,%20more%20consistent,%20and%20more%20alive.%0a&amp;url=https://smashingmagazine.com%2f2025%2f11%2fkeyframes-tokens-standardizing-animation-across-projects%2f">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.</a></p></blockquote><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <img src="https:null" /><h1>Simplifying Server Management With AI And Automation — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>6 min read</li><li><a href="http://www.smashingmagazine.com/category/ai">AI</a>, <a href="http://www.smashingmagazine.com/category/performance">Performance</a>, <a href="http://www.smashingmagazine.com/category/tools">Tools</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></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><figure><a href="https://files.smashing.media/articles/simplifying-server-management-ai-automation/1-google-data-mobile-page-speed.jpg"><img alt="Google data showing mobile page speed" decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/simplifying-server-management-ai-automation/1-google-data-mobile-page-speed.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/simplifying-server-management-ai-automation/1-google-data-mobile-page-speed.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/simplifying-server-management-ai-automation/1-google-data-mobile-page-speed.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/simplifying-server-management-ai-automation/1-google-data-mobile-page-speed.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/simplifying-server-management-ai-automation/1-google-data-mobile-page-speed.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/simplifying-server-management-ai-automation/1-google-data-mobile-page-speed.jpg 2000w" width="800"></img></a><figcaption>Data from Google underscores the critical importance of mobile page speed for retaining visitors. (Image Source: <a href="https://www.thinkwithgoogle.com/consumer-insights/consumer-trends/mobile-site-load-time-statistics/">Think with Google</a>) (<a href="https://files.smashing.media/articles/simplifying-server-management-ai-automation/1-google-data-mobile-page-speed.jpg">Large preview</a>)</figcaption></figure><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><h2 id="the-old-way-a-constant-state-of-alert">The Old Way: A Constant State Of Alert</h2><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><h2 id="a-new-approach-from-diagnosis-to-automatic-resolution">A New Approach: From Diagnosis To Automatic Resolution</h2><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><figure><a href="https://files.smashing.media/articles/simplifying-server-management-ai-automation/2-cloudways-copilot-workflow.png"><img alt="Cloudways Copilot workflow" decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/simplifying-server-management-ai-automation/2-cloudways-copilot-workflow.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/simplifying-server-management-ai-automation/2-cloudways-copilot-workflow.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/simplifying-server-management-ai-automation/2-cloudways-copilot-workflow.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/simplifying-server-management-ai-automation/2-cloudways-copilot-workflow.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/simplifying-server-management-ai-automation/2-cloudways-copilot-workflow.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/simplifying-server-management-ai-automation/2-cloudways-copilot-workflow.png 2000w" width="800"></img></a><figcaption>Cloudways Copilot workflow: Continuous monitoring leads to instant alerts, AI-powered diagnosis, and actionable recommendations. (Image source: <a href="https://www.cloudways.com/en/cloudways-ai-copilot.php">Cloudways</a>) (<a href="https://files.smashing.media/articles/simplifying-server-management-ai-automation/2-cloudways-copilot-workflow.png">Large preview</a>)</figcaption></figure><p>Imagine your site starts running slowly. In the past, you’d begin the tedious investigation.</p><h3 id="1-the-ai-insights">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 id="2-the-smartfix">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><h2 id="building-an-ai-ready-foundation">Building An AI-Ready Foundation</h2><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></br>What your visitors see and feel—blazing speed and seamless operation.</li><li><strong>Creator Experience</strong><br></br>The workflow for you and your team—managing content and marketing without technical friction.</li><li><strong>Developer Experience</strong><br></br>The backend foundation—server management that is secure, stable, and efficient.</li></ul><figure><a href="https://files.smashing.media/articles/simplifying-server-management-ai-automation/3-3e-framework.png"><img alt="3E Framework" decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/simplifying-server-management-ai-automation/3-3e-framework.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/simplifying-server-management-ai-automation/3-3e-framework.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/simplifying-server-management-ai-automation/3-3e-framework.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/simplifying-server-management-ai-automation/3-3e-framework.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/simplifying-server-management-ai-automation/3-3e-framework.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/simplifying-server-management-ai-automation/3-3e-framework.png 2000w" width="800"></img></a><figcaption>A balanced platform is a resilient one. The 3E Framework shows how a strong foundation depends on three connected experiences. (Image source: <a href="https://www.cloudways.com/en/video/event-replays/prepathon-2025/from-fragile-to-ai-ready-websites-prepathon-2025">Meeky Hwang / Ndevr</a>) (<a href="https://files.smashing.media/articles/simplifying-server-management-ai-automation/3-3e-framework.png">Large preview</a>)</figcaption></figure><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><h2 id="this-isn-t-about-replacing-you">This Isn’t About Replacing You</h2><p>It’s important to be clear. This isn’t about replacing the developer but about augmenting your capabilities. As Vito Peleg, Co-founder &amp; 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.”<p>— Vito Peleg, Co-founder &amp; CEO at Atarim</p></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,”<p><a href="https://www.linkedin.com/in/zaheersuhaib/">Suhaib Zaheer</a> noted.</p><p>“AI-driven infrastructure should help developers spend less time reacting to issues and more time creating better digital experiences.”</p></blockquote><h2 id="a-practical-path-forward">A Practical Path Forward</h2><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https:null" /><h1>Simplifying Server Management With AI And Automation — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>6 min read</li><li><a href="http://www.smashingmagazine.com/category/ai">AI</a>, <a href="http://www.smashingmagazine.com/category/performance">Performance</a>, <a href="http://www.smashingmagazine.com/category/tools">Tools</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></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><figure><a href="https://files.smashing.media/articles/simplifying-server-management-ai-automation/1-google-data-mobile-page-speed.jpg"><img alt="Google data showing mobile page speed" decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/simplifying-server-management-ai-automation/1-google-data-mobile-page-speed.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/simplifying-server-management-ai-automation/1-google-data-mobile-page-speed.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/simplifying-server-management-ai-automation/1-google-data-mobile-page-speed.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/simplifying-server-management-ai-automation/1-google-data-mobile-page-speed.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/simplifying-server-management-ai-automation/1-google-data-mobile-page-speed.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/simplifying-server-management-ai-automation/1-google-data-mobile-page-speed.jpg 2000w" width="800"></img></a><figcaption>Data from Google underscores the critical importance of mobile page speed for retaining visitors. (Image Source: <a href="https://www.thinkwithgoogle.com/consumer-insights/consumer-trends/mobile-site-load-time-statistics/">Think with Google</a>) (<a href="https://files.smashing.media/articles/simplifying-server-management-ai-automation/1-google-data-mobile-page-speed.jpg">Large preview</a>)</figcaption></figure><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><h2 id="the-old-way-a-constant-state-of-alert">The Old Way: A Constant State Of Alert</h2><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><h2 id="a-new-approach-from-diagnosis-to-automatic-resolution">A New Approach: From Diagnosis To Automatic Resolution</h2><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><figure><a href="https://files.smashing.media/articles/simplifying-server-management-ai-automation/2-cloudways-copilot-workflow.png"><img alt="Cloudways Copilot workflow" decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/simplifying-server-management-ai-automation/2-cloudways-copilot-workflow.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/simplifying-server-management-ai-automation/2-cloudways-copilot-workflow.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/simplifying-server-management-ai-automation/2-cloudways-copilot-workflow.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/simplifying-server-management-ai-automation/2-cloudways-copilot-workflow.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/simplifying-server-management-ai-automation/2-cloudways-copilot-workflow.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/simplifying-server-management-ai-automation/2-cloudways-copilot-workflow.png 2000w" width="800"></img></a><figcaption>Cloudways Copilot workflow: Continuous monitoring leads to instant alerts, AI-powered diagnosis, and actionable recommendations. (Image source: <a href="https://www.cloudways.com/en/cloudways-ai-copilot.php">Cloudways</a>) (<a href="https://files.smashing.media/articles/simplifying-server-management-ai-automation/2-cloudways-copilot-workflow.png">Large preview</a>)</figcaption></figure><p>Imagine your site starts running slowly. In the past, you’d begin the tedious investigation.</p><h3 id="1-the-ai-insights">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 id="2-the-smartfix">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><h2 id="building-an-ai-ready-foundation">Building An AI-Ready Foundation</h2><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></br>What your visitors see and feel—blazing speed and seamless operation.</li><li><strong>Creator Experience</strong><br></br>The workflow for you and your team—managing content and marketing without technical friction.</li><li><strong>Developer Experience</strong><br></br>The backend foundation—server management that is secure, stable, and efficient.</li></ul><figure><a href="https://files.smashing.media/articles/simplifying-server-management-ai-automation/3-3e-framework.png"><img alt="3E Framework" decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/simplifying-server-management-ai-automation/3-3e-framework.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/simplifying-server-management-ai-automation/3-3e-framework.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/simplifying-server-management-ai-automation/3-3e-framework.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/simplifying-server-management-ai-automation/3-3e-framework.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/simplifying-server-management-ai-automation/3-3e-framework.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/simplifying-server-management-ai-automation/3-3e-framework.png 2000w" width="800"></img></a><figcaption>A balanced platform is a resilient one. The 3E Framework shows how a strong foundation depends on three connected experiences. (Image source: <a href="https://www.cloudways.com/en/video/event-replays/prepathon-2025/from-fragile-to-ai-ready-websites-prepathon-2025">Meeky Hwang / Ndevr</a>) (<a href="https://files.smashing.media/articles/simplifying-server-management-ai-automation/3-3e-framework.png">Large preview</a>)</figcaption></figure><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><h2 id="this-isn-t-about-replacing-you">This Isn’t About Replacing You</h2><p>It’s important to be clear. This isn’t about replacing the developer but about augmenting your capabilities. As Vito Peleg, Co-founder &amp; 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.”<p>— Vito Peleg, Co-founder &amp; CEO at Atarim</p></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,”<p><a href="https://www.linkedin.com/in/zaheersuhaib/">Suhaib Zaheer</a> noted.</p><p>“AI-driven infrastructure should help developers spend less time reacting to issues and more time creating better digital experiences.”</p></blockquote><h2 id="a-practical-path-forward">A Practical Path Forward</h2><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <img src="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/css-gamepad-api-visual-debugging-css-layers.jpg" /><h1>CSS Gamepad API Visual Debugging With CSS Layers — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>19 min read</li><li><a href="http://www.smashingmagazine.com/category/css">CSS</a>, <a href="http://www.smashingmagazine.com/category/tools">Tools</a>, <a href="http://www.smashingmagazine.com/category/techniques">Techniques</a>, <a href="http://www.smashingmagazine.com/category/debugging">Debugging</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><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><figure><figcaption>Live Demo of the Gamepad Debugger showing recording, exporting, and ghost replay in action.</figcaption></figure><p>By the end, you’ll know how to:</p><ul><li>Spot the tricky parts of debugging controller input.</li><li>Use Cascade Layers to tame messy CSS.</li><li>Build a live Gamepad debugger.</li><li>Add extra functionalities like recording, replaying, and taking snapshots.</li></ul><p>Alright, let’s dive in.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="why-debugging-gamepad-input-is-hard">Why Debugging Gamepad Input Is Hard</h2><p>Just the thought of building a game or web app where a player uses a controller instead of a mouse could make you nervous. You need to be able to respond to actions like:</p><ul><li>Did they press <code>A</code> or <code>B</code>?</li><li>Is the joystick tilted halfway or fully?</li><li>How hard is the trigger pulled?</li></ul><p>The <a href="https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API">Gamepad API</a> exposes and displays all of the information you need, but only as arrays of numbers. Each button has a value (e.g., <code>0</code> for not pressed, <code>1</code> for fully pressed, and decimals for pressure-sensitive triggers), and each joystick reports its position on the X and Y axes.</p><p>Here’s what it looks like in raw form:</p><pre><code>// Example: Reading the first connected gamepad const gamepad = navigator.getGamepads()[0]; console.log(gamepad.buttons.map(b => b.value)); // [0, 0, 1, 0, 0, 0.5, 0, ...] console.log(gamepad.axes); // [-0.24, 0.98, -0.02, 0.00] </code></pre><p>Is it useful? Technically, yes. Easy to debug? Not at all.</p><h3 id="problem-1-invisible-state">Problem 1: Invisible State</h3><p>When you press a physical button, you feel the click, right? But in your code, nothing moves on screen unless you manually wire up a display. Unlike keyboard events (which show in browser dev tools) or mouse clicks (which fire visible events), gamepad input has no built-in visual feedback.</p><p>To illustrate the difference, here’s how other input methods give you immediate feedback:</p><div><pre><code>// Keyboard events are visible and easy to track document.addEventListener('keydown', (e) => { console.log('Key pressed:', e.key); // Outputs: "Key pressed: a" // You can see this in DevTools, and many tools show keyboard input }); // Mouse clicks provide clear event data document.addEventListener('click', (e) => { console.log('Clicked at:', e.clientX, e.clientY); // Outputs: "Clicked at: 245, 389" // Visual feedback is immediate }); // But gamepad input? Silent and invisible. const gamepad = navigator.getGamepads()[0]; if (gamepad) { console.log(gamepad.buttons[0]); // Outputs: GamepadButton {pressed: false, touched: false, value: 0} // No events, no DevTools panel, just polling } </code></pre></div><p>The gamepad doesn’t fire events when buttons are pressed. You have to constantly poll it using <code>requestAnimationFrame</code>, checking values manually. There’s no built-in visualization, no dev tools integration, nothing.</p><p>This forces you to keep going back and forth between your console and your controller just to keep logging values, interpreting numbers, and mentally mapping them back to physical actions.</p><h3 id="problem-2-too-many-inputs">Problem 2: Too Many Inputs</h3><p>A modern controller can have up to 15+ buttons and 4+ axes. That’s over a dozen values updating at once.</p><figure><a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/1-xbox-playstation.jpeg"><img alt="Xbox vs. PlayStation" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/1-xbox-playstation.jpeg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/1-xbox-playstation.jpeg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/1-xbox-playstation.jpeg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/1-xbox-playstation.jpeg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/1-xbox-playstation.jpeg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/1-xbox-playstation.jpeg 2000w" width="800"></img></a><figcaption>Both Xbox and PlayStation controllers pack 15+ buttons each, and they’re laid out differently. Debugging across platforms means handling all that variety. (<a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/1-xbox-playstation.jpeg">Large preview</a>)</figcaption></figure><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 id="problem-3-lack-of-structure">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><h2 id="the-debugger-concept">The Debugger Concept</h2><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><h2 id="building-it-out">Building It Out</h2><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><figure><a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/2-debugger-initial-state.png"><img alt="The debugger’s initial state showing the button layout (A, B, X, and pause bars)" decoding="async" fetchpriority="low" height="402" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/2-debugger-initial-state.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/2-debugger-initial-state.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/2-debugger-initial-state.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/2-debugger-initial-state.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/2-debugger-initial-state.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/2-debugger-initial-state.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/2-debugger-initial-state.png">Large preview</a>)</figcaption></figure><h3 id="adding-the-javascript">Adding the JavaScript</h3><p>JavaScript time. This is where the controller actually does something. We’ll build this step by step.</p><h4 id="step-1-set-up-state-management">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 id="step-2-grab-dom-references">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 id="step-3-add-keyboard-fallback">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 id="step-4-create-the-main-update-loop">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 id="step-5-handle-keyboard-events">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 id="step-6-add-start-stop-control">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><figure><a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/3-gamepad-cascade-debugger.jpeg"><img alt="The Gamepad Cascade Debugger in its idle state with no inputs detected (Pressed buttons: 0)." decoding="async" fetchpriority="low" height="387" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/3-gamepad-cascade-debugger.jpeg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/3-gamepad-cascade-debugger.jpeg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/3-gamepad-cascade-debugger.jpeg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/3-gamepad-cascade-debugger.jpeg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/3-gamepad-cascade-debugger.jpeg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/3-gamepad-cascade-debugger.jpeg 2000w" width="800"></img></a><figcaption>The Gamepad Cascade Debugger in its idle state with no inputs detected (Pressed buttons: 0). (<a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/3-gamepad-cascade-debugger.jpeg">Large preview</a>)</figcaption></figure><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><figure><figcaption>Live demo of the on-screen controller lighting up as buttons are pressed and released.</figcaption></figure><p>That’s the whole foundation. From here, we can start layering in extra stuff, like record/replay and snapshots.</p><p>A static visualizer is helpful, but we as developers often need more than a snapshot of the controller’s state. We want history, analysis, and replay. Let’s add those layers on top of our debugger.</p><h3 id="1-recording-stopping-input-logs">1. Recording &amp; Stopping Input Logs</h3><p>We can add two buttons:</p><div><pre><code><div class="controls"> <button id="start-record" class="btn">Start Recording</button> <button id="stop-record" class="btn" disabled>Stop Recording</button> </div> </code></pre></div><h4 id="step-1-set-up-recording-state">Step 1: Set Up Recording State</h4><p>First, let’s set up the variables we need to track recordings:</p><pre><code>// =================================== // RECORDING STATE // =================================== let recording = false; // Tracks if we're currently recording let frames = []; // Array to store captured input frames // Get button references const startBtn = document.getElementById("start-record"); const stopBtn = document.getElementById("stop-record"); </code></pre><p>The <code>frames</code> array will store snapshots of the gamepad state at each frame, creating a complete timeline of input.</p><h4 id="step-2-handle-start-recording">Step 2: Handle Start Recording</h4><p>When the user clicks “Start Recording,” we initialize a new recording session:</p><pre><code>// =================================== // START RECORDING // =================================== startBtn.addEventListener("click", () => { frames = []; // Clear any previous recording recording = true; // Update UI: disable start, enable stop stopBtn.disabled = false; startBtn.disabled = true; console.log("Recording started..."); }); </code></pre><h4 id="step-3-handle-stop-recording">Step 3: Handle Stop Recording</h4><p>To stop recording, we flip the state back and re-enable the Start button:</p><pre><code>// =================================== // STOP RECORDING // =================================== stopBtn.addEventListener("click", () => { recording = false; // Update UI: enable start, disable stop stopBtn.disabled = true; startBtn.disabled = false; console.log("Recording stopped. Frames captured:", frames.length); }); </code></pre><h4 id="step-4-capture-frames-during-gameplay">Step 4: Capture Frames During Gameplay</h4><p>Finally, we need to actually capture frames during the update loop. Add this inside the <code>updateGamepad()</code> function:</p><pre><code>// =================================== // CAPTURE FRAMES (add this inside updateGamepad loop) // =================================== if (recording &amp;&amp; gp) { // Store a snapshot of the current gamepad state frames.push({ t: performance.now(), // Timestamp for accurate replay buttons: gp.buttons.map(b => ({ pressed: b.pressed, value: b.value })), axes: [...gp.axes] // Copy the axes array }); } </code></pre><p>Each frame captures the exact state of every button and joystick at that moment in time.</p><p>Once wired up, the interface displays a simple recording panel. You get a Start button to begin logging input, while the recording state, frame count, and duration remain at zero until recording begins. The following figure shows the debugger in its initial idle state.</p><figure><a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/4-recording-panel.jpeg"><img alt="Recording panel in its idle state, with only the start button active" decoding="async" fetchpriority="low" height="533" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/4-recording-panel.jpeg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/4-recording-panel.jpeg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/4-recording-panel.jpeg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/4-recording-panel.jpeg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/4-recording-panel.jpeg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/4-recording-panel.jpeg 2000w" width="800"></img></a><figcaption>Recording panel in its idle state, with only the start button active. (<a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/4-recording-panel.jpeg">Large preview</a>)</figcaption></figure><p>Now, pressing <strong>Start Recording</strong> logs everything until you hit <strong>Stop Recording</strong>.</p><h3 id="2-exporting-data-to-csv-json">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 id="step-1-create-the-download-helper">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 id="step-2-handle-json-export">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 id="step-3-handle-csv-export">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) => `btn${i}`); const headerAxes = frames[0].axes.map((_, i) => `axis${i}`); 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><figure><a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/5-export-panel.jpeg"><img alt="Export panel with JSON and CSV buttons for saving logs" decoding="async" fetchpriority="low" height="533" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/5-export-panel.jpeg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/5-export-panel.jpeg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/5-export-panel.jpeg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/5-export-panel.jpeg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/5-export-panel.jpeg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/5-export-panel.jpeg 2000w" width="800"></img></a><figcaption>Export panel with JSON and CSV buttons for saving logs. (<a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/5-export-panel.jpeg">Large preview</a>)</figcaption></figure><h3 id="3-snapshot-system">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(`Snapshot taken! Captured ${activePads.length} controller(s).`); }); </code></pre></div><p>Snapshots freeze the exact state of your controller at one moment in time.</p><h3 id="4-ghost-input-replay">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 &amp;&amp; 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><figure><a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/6-ghost-replay-mode.jpeg"><img alt="Ghost replay mode with a session playing back on the debugger." decoding="async" fetchpriority="low" height="533" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/6-ghost-replay-mode.jpeg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/6-ghost-replay-mode.jpeg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/6-ghost-replay-mode.jpeg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/6-ghost-replay-mode.jpeg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/6-ghost-replay-mode.jpeg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/6-ghost-replay-mode.jpeg 2000w" width="800"></img></a><figcaption>Ghost replay mode with a session playing back on the debugger. (<a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/6-ghost-replay-mode.jpeg">Large preview</a>)</figcaption></figure><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><h2 id="real-world-use-cases">Real-World Use Cases</h2><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 id="game-developers">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 id="accessibility-practitioners">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 id="quality-assurance-testing">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 id="educators">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 id="beyond-games">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><h2 id="conclusion">Conclusion</h2><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/css-gamepad-api-visual-debugging-css-layers.jpg" /><h1>CSS Gamepad API Visual Debugging With CSS Layers — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>19 min read</li><li><a href="http://www.smashingmagazine.com/category/css">CSS</a>, <a href="http://www.smashingmagazine.com/category/tools">Tools</a>, <a href="http://www.smashingmagazine.com/category/techniques">Techniques</a>, <a href="http://www.smashingmagazine.com/category/debugging">Debugging</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><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><figure><figcaption>Live Demo of the Gamepad Debugger showing recording, exporting, and ghost replay in action.</figcaption></figure><p>By the end, you’ll know how to:</p><ul><li>Spot the tricky parts of debugging controller input.</li><li>Use Cascade Layers to tame messy CSS.</li><li>Build a live Gamepad debugger.</li><li>Add extra functionalities like recording, replaying, and taking snapshots.</li></ul><p>Alright, let’s dive in.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="why-debugging-gamepad-input-is-hard">Why Debugging Gamepad Input Is Hard</h2><p>Just the thought of building a game or web app where a player uses a controller instead of a mouse could make you nervous. You need to be able to respond to actions like:</p><ul><li>Did they press <code>A</code> or <code>B</code>?</li><li>Is the joystick tilted halfway or fully?</li><li>How hard is the trigger pulled?</li></ul><p>The <a href="https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API">Gamepad API</a> exposes and displays all of the information you need, but only as arrays of numbers. Each button has a value (e.g., <code>0</code> for not pressed, <code>1</code> for fully pressed, and decimals for pressure-sensitive triggers), and each joystick reports its position on the X and Y axes.</p><p>Here’s what it looks like in raw form:</p><pre><code>// Example: Reading the first connected gamepad const gamepad = navigator.getGamepads()[0]; console.log(gamepad.buttons.map(b => b.value)); // [0, 0, 1, 0, 0, 0.5, 0, ...] console.log(gamepad.axes); // [-0.24, 0.98, -0.02, 0.00] </code></pre><p>Is it useful? Technically, yes. Easy to debug? Not at all.</p><h3 id="problem-1-invisible-state">Problem 1: Invisible State</h3><p>When you press a physical button, you feel the click, right? But in your code, nothing moves on screen unless you manually wire up a display. Unlike keyboard events (which show in browser dev tools) or mouse clicks (which fire visible events), gamepad input has no built-in visual feedback.</p><p>To illustrate the difference, here’s how other input methods give you immediate feedback:</p><div><pre><code>// Keyboard events are visible and easy to track document.addEventListener('keydown', (e) => { console.log('Key pressed:', e.key); // Outputs: "Key pressed: a" // You can see this in DevTools, and many tools show keyboard input }); // Mouse clicks provide clear event data document.addEventListener('click', (e) => { console.log('Clicked at:', e.clientX, e.clientY); // Outputs: "Clicked at: 245, 389" // Visual feedback is immediate }); // But gamepad input? Silent and invisible. const gamepad = navigator.getGamepads()[0]; if (gamepad) { console.log(gamepad.buttons[0]); // Outputs: GamepadButton {pressed: false, touched: false, value: 0} // No events, no DevTools panel, just polling } </code></pre></div><p>The gamepad doesn’t fire events when buttons are pressed. You have to constantly poll it using <code>requestAnimationFrame</code>, checking values manually. There’s no built-in visualization, no dev tools integration, nothing.</p><p>This forces you to keep going back and forth between your console and your controller just to keep logging values, interpreting numbers, and mentally mapping them back to physical actions.</p><h3 id="problem-2-too-many-inputs">Problem 2: Too Many Inputs</h3><p>A modern controller can have up to 15+ buttons and 4+ axes. That’s over a dozen values updating at once.</p><figure><a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/1-xbox-playstation.jpeg"><img alt="Xbox vs. PlayStation" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/1-xbox-playstation.jpeg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/1-xbox-playstation.jpeg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/1-xbox-playstation.jpeg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/1-xbox-playstation.jpeg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/1-xbox-playstation.jpeg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/1-xbox-playstation.jpeg 2000w" width="800"></img></a><figcaption>Both Xbox and PlayStation controllers pack 15+ buttons each, and they’re laid out differently. Debugging across platforms means handling all that variety. (<a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/1-xbox-playstation.jpeg">Large preview</a>)</figcaption></figure><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 id="problem-3-lack-of-structure">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><h2 id="the-debugger-concept">The Debugger Concept</h2><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><h2 id="building-it-out">Building It Out</h2><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><figure><a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/2-debugger-initial-state.png"><img alt="The debugger’s initial state showing the button layout (A, B, X, and pause bars)" decoding="async" fetchpriority="low" height="402" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/2-debugger-initial-state.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/2-debugger-initial-state.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/2-debugger-initial-state.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/2-debugger-initial-state.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/2-debugger-initial-state.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/2-debugger-initial-state.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/2-debugger-initial-state.png">Large preview</a>)</figcaption></figure><h3 id="adding-the-javascript">Adding the JavaScript</h3><p>JavaScript time. This is where the controller actually does something. We’ll build this step by step.</p><h4 id="step-1-set-up-state-management">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 id="step-2-grab-dom-references">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 id="step-3-add-keyboard-fallback">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 id="step-4-create-the-main-update-loop">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 id="step-5-handle-keyboard-events">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 id="step-6-add-start-stop-control">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><figure><a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/3-gamepad-cascade-debugger.jpeg"><img alt="The Gamepad Cascade Debugger in its idle state with no inputs detected (Pressed buttons: 0)." decoding="async" fetchpriority="low" height="387" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/3-gamepad-cascade-debugger.jpeg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/3-gamepad-cascade-debugger.jpeg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/3-gamepad-cascade-debugger.jpeg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/3-gamepad-cascade-debugger.jpeg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/3-gamepad-cascade-debugger.jpeg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/3-gamepad-cascade-debugger.jpeg 2000w" width="800"></img></a><figcaption>The Gamepad Cascade Debugger in its idle state with no inputs detected (Pressed buttons: 0). (<a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/3-gamepad-cascade-debugger.jpeg">Large preview</a>)</figcaption></figure><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><figure><figcaption>Live demo of the on-screen controller lighting up as buttons are pressed and released.</figcaption></figure><p>That’s the whole foundation. From here, we can start layering in extra stuff, like record/replay and snapshots.</p><p>A static visualizer is helpful, but we as developers often need more than a snapshot of the controller’s state. We want history, analysis, and replay. Let’s add those layers on top of our debugger.</p><h3 id="1-recording-stopping-input-logs">1. Recording &amp; Stopping Input Logs</h3><p>We can add two buttons:</p><div><pre><code><div class="controls"> <button id="start-record" class="btn">Start Recording</button> <button id="stop-record" class="btn" disabled>Stop Recording</button> </div> </code></pre></div><h4 id="step-1-set-up-recording-state">Step 1: Set Up Recording State</h4><p>First, let’s set up the variables we need to track recordings:</p><pre><code>// =================================== // RECORDING STATE // =================================== let recording = false; // Tracks if we're currently recording let frames = []; // Array to store captured input frames // Get button references const startBtn = document.getElementById("start-record"); const stopBtn = document.getElementById("stop-record"); </code></pre><p>The <code>frames</code> array will store snapshots of the gamepad state at each frame, creating a complete timeline of input.</p><h4 id="step-2-handle-start-recording">Step 2: Handle Start Recording</h4><p>When the user clicks “Start Recording,” we initialize a new recording session:</p><pre><code>// =================================== // START RECORDING // =================================== startBtn.addEventListener("click", () => { frames = []; // Clear any previous recording recording = true; // Update UI: disable start, enable stop stopBtn.disabled = false; startBtn.disabled = true; console.log("Recording started..."); }); </code></pre><h4 id="step-3-handle-stop-recording">Step 3: Handle Stop Recording</h4><p>To stop recording, we flip the state back and re-enable the Start button:</p><pre><code>// =================================== // STOP RECORDING // =================================== stopBtn.addEventListener("click", () => { recording = false; // Update UI: enable start, disable stop stopBtn.disabled = true; startBtn.disabled = false; console.log("Recording stopped. Frames captured:", frames.length); }); </code></pre><h4 id="step-4-capture-frames-during-gameplay">Step 4: Capture Frames During Gameplay</h4><p>Finally, we need to actually capture frames during the update loop. Add this inside the <code>updateGamepad()</code> function:</p><pre><code>// =================================== // CAPTURE FRAMES (add this inside updateGamepad loop) // =================================== if (recording &amp;&amp; gp) { // Store a snapshot of the current gamepad state frames.push({ t: performance.now(), // Timestamp for accurate replay buttons: gp.buttons.map(b => ({ pressed: b.pressed, value: b.value })), axes: [...gp.axes] // Copy the axes array }); } </code></pre><p>Each frame captures the exact state of every button and joystick at that moment in time.</p><p>Once wired up, the interface displays a simple recording panel. You get a Start button to begin logging input, while the recording state, frame count, and duration remain at zero until recording begins. The following figure shows the debugger in its initial idle state.</p><figure><a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/4-recording-panel.jpeg"><img alt="Recording panel in its idle state, with only the start button active" decoding="async" fetchpriority="low" height="533" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/4-recording-panel.jpeg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/4-recording-panel.jpeg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/4-recording-panel.jpeg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/4-recording-panel.jpeg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/4-recording-panel.jpeg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/4-recording-panel.jpeg 2000w" width="800"></img></a><figcaption>Recording panel in its idle state, with only the start button active. (<a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/4-recording-panel.jpeg">Large preview</a>)</figcaption></figure><p>Now, pressing <strong>Start Recording</strong> logs everything until you hit <strong>Stop Recording</strong>.</p><h3 id="2-exporting-data-to-csv-json">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 id="step-1-create-the-download-helper">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 id="step-2-handle-json-export">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 id="step-3-handle-csv-export">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) => `btn${i}`); const headerAxes = frames[0].axes.map((_, i) => `axis${i}`); 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><figure><a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/5-export-panel.jpeg"><img alt="Export panel with JSON and CSV buttons for saving logs" decoding="async" fetchpriority="low" height="533" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/5-export-panel.jpeg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/5-export-panel.jpeg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/5-export-panel.jpeg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/5-export-panel.jpeg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/5-export-panel.jpeg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/5-export-panel.jpeg 2000w" width="800"></img></a><figcaption>Export panel with JSON and CSV buttons for saving logs. (<a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/5-export-panel.jpeg">Large preview</a>)</figcaption></figure><h3 id="3-snapshot-system">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(`Snapshot taken! Captured ${activePads.length} controller(s).`); }); </code></pre></div><p>Snapshots freeze the exact state of your controller at one moment in time.</p><h3 id="4-ghost-input-replay">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 &amp;&amp; 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><figure><a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/6-ghost-replay-mode.jpeg"><img alt="Ghost replay mode with a session playing back on the debugger." decoding="async" fetchpriority="low" height="533" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/6-ghost-replay-mode.jpeg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/6-ghost-replay-mode.jpeg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/6-ghost-replay-mode.jpeg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/6-ghost-replay-mode.jpeg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/6-ghost-replay-mode.jpeg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/6-ghost-replay-mode.jpeg 2000w" width="800"></img></a><figcaption>Ghost replay mode with a session playing back on the debugger. (<a href="https://files.smashing.media/articles/css-gamepad-api-visual-debugging-css-layers/6-ghost-replay-mode.jpeg">Large preview</a>)</figcaption></figure><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><h2 id="real-world-use-cases">Real-World Use Cases</h2><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 id="game-developers">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 id="accessibility-practitioners">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 id="quality-assurance-testing">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 id="educators">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 id="beyond-games">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><h2 id="conclusion">Conclusion</h2><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <img src="https://files.smashing.media/articles/older-tech-browser-stack/older-tech-browser-stack.jpg" /><h1>Older Tech In The Browser Stack — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>19 min read</li><li><a href="http://www.smashingmagazine.com/category/css">CSS</a>, <a href="http://www.smashingmagazine.com/category/techniques">Techniques</a>, <a href="http://www.smashingmagazine.com/category/tools">Tools</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><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><h2 id="xpath-the-central-api">XPath: The Central API</h2><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><h2 id="combining-xpath-css">Combining XPath &amp; CSS</h2><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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aThe%20point%20is%20that%20XPath%20can%20do%20things%20that%20CSS%20cannot%20and%20could%20still%20be%20very%20useful,%20even%20though%20it%20is%20an%20older%20technology%20in%20the%20browser%20stack%20and%20may%20not%20seem%20obvious%20at%20first%20glance.%0a&amp;url=https://smashingmagazine.com%2f2025%2f11%2folder-tech-browser-stack%2f">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.</a></p></blockquote><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="jEqEyEx" data-theme-id="light" data-user="smashingmag">See the Pen [queryXPath [forked]](https://codepen.io/smashingmag/pen/jEqEyEx) by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p><figcaption>See the Pen <a href="https://codepen.io/smashingmag/pen/jEqEyEx">queryXPath [forked]</a> by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</figcaption></figure><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><h2 id="example-queries">Example Queries</h2><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="http://www.smashingmagazine.com/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><h2 id="xpath-functions-overview">XPath Functions Overview</h2><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></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></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></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></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></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></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></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></br>Returns a boolean <code>true</code> if the argument is false, otherwise <code>false</code>.</li><li><strong><code>true</code></strong><br></br>Returns boolean <code>true</code>.</li><li><strong><code>false</code></strong><br></br>Returns boolean <code>false</code>.</li><li><strong><code>concat</code></strong><br></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></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></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><figure><p data-default-tab="result" data-height="480" data-slug-hash="emZmgzX" data-theme-id="light" data-user="smashingmag">See the Pen [XPath Numerical functions [forked]](https://codepen.io/smashingmag/pen/emZmgzX) by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p><figcaption>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>.</figcaption></figure><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="qEZERqd" data-theme-id="light" data-user="smashingmag">See the Pen [queryXPath [forked]](https://codepen.io/smashingmag/pen/qEZERqd) by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p><figcaption>See the Pen <a href="https://codepen.io/smashingmag/pen/qEZERqd">queryXPath [forked]</a> by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</figcaption></figure><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="ZYWYLyZ" data-theme-id="light" data-user="smashingmag">See the Pen [translate function [forked]](https://codepen.io/smashingmag/pen/ZYWYLyZ) by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p><figcaption>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>.</figcaption></figure><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="YPqPNrN" data-theme-id="light" data-user="smashingmag">See the Pen [metal function [forked]](https://codepen.io/smashingmag/pen/YPqPNrN) by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="using-css-with-xpath">Using CSS With XPath</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="ogxgBpz" data-theme-id="light" data-user="smashingmag">See the Pen [css and xpath together [forked]](https://codepen.io/smashingmag/pen/ogxgBpz) by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p><figcaption>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>.</figcaption></figure><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="https://www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/"> 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><figure><p data-default-tab="result" data-height="480" data-slug-hash="JoXYGeN" data-theme-id="light" data-user="smashingmag">See the Pen [xpath functions examples [forked]](https://codepen.io/smashingmag/pen/JoXYGeN) by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p><figcaption>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>.</figcaption></figure><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>"www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/" </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>["www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/","www.smashingmagazine.com/2022/11/automated-test-results-improve-accessibility/"] </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><h2 id="more-xpath-use-cases">More XPath Use Cases</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="zxqxNev" data-theme-id="light" data-user="smashingmag">See the Pen [Complex H2 Query [forked]](https://codepen.io/smashingmag/pen/zxqxNev) by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p><figcaption>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>.</figcaption></figure><p>So, yes. There are lots of possible paths to any element in a test using XPath.</p><h2 id="xslt-1-0-deprecation">XSLT 1.0 Deprecation</h2><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.”<p>— <a href="https://norm.tovey-walsh.com">Norm Tovey-Walsh</a></p></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’.”<p>— <a href="https://norm.tovey-walsh.com">Norm Tovey-Walsh</a></p></blockquote><p>It’s worth noting that Tovey-Walsh’s comments came about a week before the XSLT deprecation announcement.</p><h2 id="conclusion">Conclusion</h2><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 id="further-reading">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></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></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></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></br><em>This interactive tool lets you work directly with the code.</em></li></ul><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/older-tech-browser-stack/older-tech-browser-stack.jpg" /><h1>Older Tech In The Browser Stack — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>19 min read</li><li><a href="http://www.smashingmagazine.com/category/css">CSS</a>, <a href="http://www.smashingmagazine.com/category/techniques">Techniques</a>, <a href="http://www.smashingmagazine.com/category/tools">Tools</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><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><h2 id="xpath-the-central-api">XPath: The Central API</h2><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><h2 id="combining-xpath-css">Combining XPath &amp; CSS</h2><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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aThe%20point%20is%20that%20XPath%20can%20do%20things%20that%20CSS%20cannot%20and%20could%20still%20be%20very%20useful,%20even%20though%20it%20is%20an%20older%20technology%20in%20the%20browser%20stack%20and%20may%20not%20seem%20obvious%20at%20first%20glance.%0a&amp;url=https://smashingmagazine.com%2f2025%2f11%2folder-tech-browser-stack%2f">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.</a></p></blockquote><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="jEqEyEx" data-theme-id="light" data-user="smashingmag">See the Pen [queryXPath [forked]](https://codepen.io/smashingmag/pen/jEqEyEx) by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p><figcaption>See the Pen <a href="https://codepen.io/smashingmag/pen/jEqEyEx">queryXPath [forked]</a> by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</figcaption></figure><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><h2 id="example-queries">Example Queries</h2><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="http://www.smashingmagazine.com/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><h2 id="xpath-functions-overview">XPath Functions Overview</h2><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></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></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></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></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></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></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></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></br>Returns a boolean <code>true</code> if the argument is false, otherwise <code>false</code>.</li><li><strong><code>true</code></strong><br></br>Returns boolean <code>true</code>.</li><li><strong><code>false</code></strong><br></br>Returns boolean <code>false</code>.</li><li><strong><code>concat</code></strong><br></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></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></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><figure><p data-default-tab="result" data-height="480" data-slug-hash="emZmgzX" data-theme-id="light" data-user="smashingmag">See the Pen [XPath Numerical functions [forked]](https://codepen.io/smashingmag/pen/emZmgzX) by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p><figcaption>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>.</figcaption></figure><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="qEZERqd" data-theme-id="light" data-user="smashingmag">See the Pen [queryXPath [forked]](https://codepen.io/smashingmag/pen/qEZERqd) by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p><figcaption>See the Pen <a href="https://codepen.io/smashingmag/pen/qEZERqd">queryXPath [forked]</a> by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</figcaption></figure><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="ZYWYLyZ" data-theme-id="light" data-user="smashingmag">See the Pen [translate function [forked]](https://codepen.io/smashingmag/pen/ZYWYLyZ) by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p><figcaption>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>.</figcaption></figure><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="YPqPNrN" data-theme-id="light" data-user="smashingmag">See the Pen [metal function [forked]](https://codepen.io/smashingmag/pen/YPqPNrN) by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p><figcaption>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>.</figcaption></figure><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><h2 id="using-css-with-xpath">Using CSS With XPath</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="ogxgBpz" data-theme-id="light" data-user="smashingmag">See the Pen [css and xpath together [forked]](https://codepen.io/smashingmag/pen/ogxgBpz) by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p><figcaption>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>.</figcaption></figure><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="https://www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/"> 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><figure><p data-default-tab="result" data-height="480" data-slug-hash="JoXYGeN" data-theme-id="light" data-user="smashingmag">See the Pen [xpath functions examples [forked]](https://codepen.io/smashingmag/pen/JoXYGeN) by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p><figcaption>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>.</figcaption></figure><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>"www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/" </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>["www.smashingmagazine.com/2018/04/feature-testing-selenium-webdriver/","www.smashingmagazine.com/2022/11/automated-test-results-improve-accessibility/"] </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><h2 id="more-xpath-use-cases">More XPath Use Cases</h2><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><figure><p data-default-tab="result" data-height="480" data-slug-hash="zxqxNev" data-theme-id="light" data-user="smashingmag">See the Pen [Complex H2 Query [forked]](https://codepen.io/smashingmag/pen/zxqxNev) by <a href="https://codepen.io/bryanrasmussen">Bryan Rasmussen</a>.</p><figcaption>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>.</figcaption></figure><p>So, yes. There are lots of possible paths to any element in a test using XPath.</p><h2 id="xslt-1-0-deprecation">XSLT 1.0 Deprecation</h2><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.”<p>— <a href="https://norm.tovey-walsh.com">Norm Tovey-Walsh</a></p></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’.”<p>— <a href="https://norm.tovey-walsh.com">Norm Tovey-Walsh</a></p></blockquote><p>It’s worth noting that Tovey-Walsh’s comments came about a week before the XSLT deprecation announcement.</p><h2 id="conclusion">Conclusion</h2><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 id="further-reading">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></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></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></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></br><em>This interactive tool lets you work directly with the code.</em></li></ul><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <img src="https://files.smashing.media/articles/effectively-monitoring-web-performance/effectively-monitoring-web-performance.jpg" /><h1>Effectively Monitoring Web Performance — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>7 min read</li><li><a href="http://www.smashingmagazine.com/category/performance">Performance</a>, <a href="http://www.smashingmagazine.com/category/optimization">Optimization</a>, <a href="http://www.smashingmagazine.com/category/tools">Tools</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>There are lots of tips for <a href="https://www.debugbear.com/blog/improve-website-performance?utm_campaign=sm-10">improving your website performance</a>. 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.</section></div><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><h2 id="synthetic-and-real-user-data">Synthetic And Real User Data</h2><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><figure><a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/1-debugbear-page-speed-report.png"><img alt="DebugBear website speed report" decoding="async" fetchpriority="low" height="672" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/1-debugbear-page-speed-report.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/1-debugbear-page-speed-report.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/effectively-monitoring-web-performance/1-debugbear-page-speed-report.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/effectively-monitoring-web-performance/1-debugbear-page-speed-report.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/effectively-monitoring-web-performance/1-debugbear-page-speed-report.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/effectively-monitoring-web-performance/1-debugbear-page-speed-report.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/1-debugbear-page-speed-report.png">Large preview</a>)</figcaption></figure><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><h2 id="three-steps-to-a-fast-website">Three Steps To A Fast Website</h2><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><h2 id="step-1-identify-slow-visitor-experiences">Step 1: Identify Slow Visitor Experiences</h2><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><figure><a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/2-web-vitals-dashboard-debugbear-rum-product.png"><img alt="Web Vitals dashboard in DebugBear’s RUM product" decoding="async" fetchpriority="low" height="644" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/2-web-vitals-dashboard-debugbear-rum-product.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/2-web-vitals-dashboard-debugbear-rum-product.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/effectively-monitoring-web-performance/2-web-vitals-dashboard-debugbear-rum-product.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/effectively-monitoring-web-performance/2-web-vitals-dashboard-debugbear-rum-product.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/effectively-monitoring-web-performance/2-web-vitals-dashboard-debugbear-rum-product.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/effectively-monitoring-web-performance/2-web-vitals-dashboard-debugbear-rum-product.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/2-web-vitals-dashboard-debugbear-rum-product.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/3-website-scan-result-debugbear.png"><img alt="Website scan result for ahrefs.com" decoding="async" fetchpriority="low" height="632" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/3-website-scan-result-debugbear.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/3-website-scan-result-debugbear.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/effectively-monitoring-web-performance/3-website-scan-result-debugbear.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/effectively-monitoring-web-performance/3-website-scan-result-debugbear.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/effectively-monitoring-web-performance/3-website-scan-result-debugbear.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/effectively-monitoring-web-performance/3-website-scan-result-debugbear.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/3-website-scan-result-debugbear.png">Large preview</a>)</figcaption></figure><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><h2 id="step-2-diagnose-web-performance-issues">Step 2: Diagnose Web Performance Issues</h2><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 id="debugging-page-load-time">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><figure><a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/4-page-speed-recommendations.png"><img alt="Page speed recommendations in synthetic data" decoding="async" fetchpriority="low" height="652" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/4-page-speed-recommendations.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/4-page-speed-recommendations.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/effectively-monitoring-web-performance/4-page-speed-recommendations.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/effectively-monitoring-web-performance/4-page-speed-recommendations.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/effectively-monitoring-web-performance/4-page-speed-recommendations.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/effectively-monitoring-web-performance/4-page-speed-recommendations.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/4-page-speed-recommendations.png">Large preview</a>)</figcaption></figure><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 id="debugging-slow-interactions">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><figure><a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/5-inp-interaction-element.png"><img alt="Interaction to Next Paint metric, which reviews specific page views" decoding="async" fetchpriority="low" height="642" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/5-inp-interaction-element.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/5-inp-interaction-element.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/effectively-monitoring-web-performance/5-inp-interaction-element.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/effectively-monitoring-web-performance/5-inp-interaction-element.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/effectively-monitoring-web-performance/5-inp-interaction-element.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/effectively-monitoring-web-performance/5-inp-interaction-element.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/5-inp-interaction-element.png">Large preview</a>)</figcaption></figure><h2 id="step-3-monitor-performance-respond-to-regressions">Step 3: Monitor Performance &amp; Respond To Regressions</h2><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 id="synthetic-data">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><figure><a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/6-synthetic-tests.png"><img alt="Before-and-after comparison between the two synthetic test results" decoding="async" fetchpriority="low" height="720" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/6-synthetic-tests.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/6-synthetic-tests.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/effectively-monitoring-web-performance/6-synthetic-tests.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/effectively-monitoring-web-performance/6-synthetic-tests.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/effectively-monitoring-web-performance/6-synthetic-tests.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/effectively-monitoring-web-performance/6-synthetic-tests.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/6-synthetic-tests.png">Large preview</a>)</figcaption></figure><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 id="real-user-data">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><figure><a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/7-lcp-utm-campaign.png"><img alt="LCP by UTM campaign" decoding="async" fetchpriority="low" height="370" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/7-lcp-utm-campaign.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/7-lcp-utm-campaign.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/effectively-monitoring-web-performance/7-lcp-utm-campaign.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/effectively-monitoring-web-performance/7-lcp-utm-campaign.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/effectively-monitoring-web-performance/7-lcp-utm-campaign.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/effectively-monitoring-web-performance/7-lcp-utm-campaign.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/7-lcp-utm-campaign.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/8-lcp-subparts.png"><img alt="INP subparts" decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/8-lcp-subparts.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/8-lcp-subparts.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/effectively-monitoring-web-performance/8-lcp-subparts.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/effectively-monitoring-web-performance/8-lcp-subparts.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/effectively-monitoring-web-performance/8-lcp-subparts.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/effectively-monitoring-web-performance/8-lcp-subparts.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/8-lcp-subparts.png">Large preview</a>)</figcaption></figure><h2 id="conclusion">Conclusion</h2><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><figure><a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/9-debugbear-web-performance.png"><img alt="Summary of performance metrics on DebugBear" decoding="async" fetchpriority="low" height="477" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/9-debugbear-web-performance.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/9-debugbear-web-performance.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/effectively-monitoring-web-performance/9-debugbear-web-performance.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/effectively-monitoring-web-performance/9-debugbear-web-performance.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/effectively-monitoring-web-performance/9-debugbear-web-performance.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/effectively-monitoring-web-performance/9-debugbear-web-performance.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/9-debugbear-web-performance.png">Large preview</a>)</figcaption></figure><p>Get <a href="https://www.debugbear.com/?utm_campaign=sm-10">a free DebugBear trial</a> on our website!</p><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/effectively-monitoring-web-performance/effectively-monitoring-web-performance.jpg" /><h1>Effectively Monitoring Web Performance — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>7 min read</li><li><a href="http://www.smashingmagazine.com/category/performance">Performance</a>, <a href="http://www.smashingmagazine.com/category/optimization">Optimization</a>, <a href="http://www.smashingmagazine.com/category/tools">Tools</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>There are lots of tips for <a href="https://www.debugbear.com/blog/improve-website-performance?utm_campaign=sm-10">improving your website performance</a>. 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.</section></div><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><h2 id="synthetic-and-real-user-data">Synthetic And Real User Data</h2><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><figure><a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/1-debugbear-page-speed-report.png"><img alt="DebugBear website speed report" decoding="async" fetchpriority="low" height="672" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/1-debugbear-page-speed-report.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/1-debugbear-page-speed-report.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/effectively-monitoring-web-performance/1-debugbear-page-speed-report.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/effectively-monitoring-web-performance/1-debugbear-page-speed-report.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/effectively-monitoring-web-performance/1-debugbear-page-speed-report.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/effectively-monitoring-web-performance/1-debugbear-page-speed-report.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/1-debugbear-page-speed-report.png">Large preview</a>)</figcaption></figure><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><h2 id="three-steps-to-a-fast-website">Three Steps To A Fast Website</h2><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><h2 id="step-1-identify-slow-visitor-experiences">Step 1: Identify Slow Visitor Experiences</h2><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><figure><a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/2-web-vitals-dashboard-debugbear-rum-product.png"><img alt="Web Vitals dashboard in DebugBear’s RUM product" decoding="async" fetchpriority="low" height="644" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/2-web-vitals-dashboard-debugbear-rum-product.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/2-web-vitals-dashboard-debugbear-rum-product.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/effectively-monitoring-web-performance/2-web-vitals-dashboard-debugbear-rum-product.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/effectively-monitoring-web-performance/2-web-vitals-dashboard-debugbear-rum-product.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/effectively-monitoring-web-performance/2-web-vitals-dashboard-debugbear-rum-product.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/effectively-monitoring-web-performance/2-web-vitals-dashboard-debugbear-rum-product.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/2-web-vitals-dashboard-debugbear-rum-product.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/3-website-scan-result-debugbear.png"><img alt="Website scan result for ahrefs.com" decoding="async" fetchpriority="low" height="632" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/3-website-scan-result-debugbear.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/3-website-scan-result-debugbear.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/effectively-monitoring-web-performance/3-website-scan-result-debugbear.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/effectively-monitoring-web-performance/3-website-scan-result-debugbear.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/effectively-monitoring-web-performance/3-website-scan-result-debugbear.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/effectively-monitoring-web-performance/3-website-scan-result-debugbear.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/3-website-scan-result-debugbear.png">Large preview</a>)</figcaption></figure><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><h2 id="step-2-diagnose-web-performance-issues">Step 2: Diagnose Web Performance Issues</h2><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 id="debugging-page-load-time">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><figure><a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/4-page-speed-recommendations.png"><img alt="Page speed recommendations in synthetic data" decoding="async" fetchpriority="low" height="652" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/4-page-speed-recommendations.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/4-page-speed-recommendations.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/effectively-monitoring-web-performance/4-page-speed-recommendations.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/effectively-monitoring-web-performance/4-page-speed-recommendations.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/effectively-monitoring-web-performance/4-page-speed-recommendations.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/effectively-monitoring-web-performance/4-page-speed-recommendations.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/4-page-speed-recommendations.png">Large preview</a>)</figcaption></figure><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 id="debugging-slow-interactions">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><figure><a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/5-inp-interaction-element.png"><img alt="Interaction to Next Paint metric, which reviews specific page views" decoding="async" fetchpriority="low" height="642" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/5-inp-interaction-element.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/5-inp-interaction-element.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/effectively-monitoring-web-performance/5-inp-interaction-element.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/effectively-monitoring-web-performance/5-inp-interaction-element.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/effectively-monitoring-web-performance/5-inp-interaction-element.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/effectively-monitoring-web-performance/5-inp-interaction-element.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/5-inp-interaction-element.png">Large preview</a>)</figcaption></figure><h2 id="step-3-monitor-performance-respond-to-regressions">Step 3: Monitor Performance &amp; Respond To Regressions</h2><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 id="synthetic-data">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><figure><a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/6-synthetic-tests.png"><img alt="Before-and-after comparison between the two synthetic test results" decoding="async" fetchpriority="low" height="720" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/6-synthetic-tests.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/6-synthetic-tests.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/effectively-monitoring-web-performance/6-synthetic-tests.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/effectively-monitoring-web-performance/6-synthetic-tests.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/effectively-monitoring-web-performance/6-synthetic-tests.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/effectively-monitoring-web-performance/6-synthetic-tests.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/6-synthetic-tests.png">Large preview</a>)</figcaption></figure><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 id="real-user-data">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><figure><a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/7-lcp-utm-campaign.png"><img alt="LCP by UTM campaign" decoding="async" fetchpriority="low" height="370" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/7-lcp-utm-campaign.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/7-lcp-utm-campaign.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/effectively-monitoring-web-performance/7-lcp-utm-campaign.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/effectively-monitoring-web-performance/7-lcp-utm-campaign.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/effectively-monitoring-web-performance/7-lcp-utm-campaign.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/effectively-monitoring-web-performance/7-lcp-utm-campaign.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/7-lcp-utm-campaign.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/8-lcp-subparts.png"><img alt="INP subparts" decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/8-lcp-subparts.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/8-lcp-subparts.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/effectively-monitoring-web-performance/8-lcp-subparts.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/effectively-monitoring-web-performance/8-lcp-subparts.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/effectively-monitoring-web-performance/8-lcp-subparts.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/effectively-monitoring-web-performance/8-lcp-subparts.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/8-lcp-subparts.png">Large preview</a>)</figcaption></figure><h2 id="conclusion">Conclusion</h2><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><figure><a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/9-debugbear-web-performance.png"><img alt="Summary of performance metrics on DebugBear" decoding="async" fetchpriority="low" height="477" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/9-debugbear-web-performance.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/effectively-monitoring-web-performance/9-debugbear-web-performance.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/effectively-monitoring-web-performance/9-debugbear-web-performance.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/effectively-monitoring-web-performance/9-debugbear-web-performance.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/effectively-monitoring-web-performance/9-debugbear-web-performance.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/effectively-monitoring-web-performance/9-debugbear-web-performance.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/effectively-monitoring-web-performance/9-debugbear-web-performance.png">Large preview</a>)</figcaption></figure><p>Get <a href="https://www.debugbear.com/?utm_campaign=sm-10">a free DebugBear trial</a> on our website!</p><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <img src="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/smashing-animations-part-6-svgs-css-custom-properties.jpg" /><h1>Magnificent SVGs With <use> And CSS Custom Properties — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>10 min read</li><li><a href="http://www.smashingmagazine.com/category/svg">SVG</a>, <a href="http://www.smashingmagazine.com/category/animation">Animation</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/css">CSS</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>SVG is one of those web technologies that’s both elegant and, at times, infuriating. In this article, pioneering author and web designer <a href="https://stuffandnonsense.co.uk">Andy Clarke</a> explains his technique for animating SVG elements that are hidden in the Shadow DOM.</section></div><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><figure><a href="https://stuffandnonsense.co.uk/"><img alt="Graphics featuring seven magnificent Old West characters" decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/1-graphics-old-west-characters.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/1-graphics-old-west-characters.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/1-graphics-old-west-characters.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/1-graphics-old-west-characters.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/1-graphics-old-west-characters.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/1-graphics-old-west-characters.png 2000w" width="800"></img></a><figcaption>View this animated SVG on <a href="https://stuffandnonsense.co.uk/">my website</a>. (<a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/1-graphics-old-west-characters.png">Large preview</a>)</figcaption></figure><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="http://www.w3.org/2000/svg" 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><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="understanding-the-shadow-dom-barrier">Understanding The Shadow DOM Barrier</h2><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/2-animated-elements-single-svg-symbol.png"><img alt="Several animated elements within a single SVG symbol" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/2-animated-elements-single-svg-symbol.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/2-animated-elements-single-svg-symbol.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/2-animated-elements-single-svg-symbol.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/2-animated-elements-single-svg-symbol.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/2-animated-elements-single-svg-symbol.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/2-animated-elements-single-svg-symbol.png 2000w" width="800"></img></a><figcaption>Several animated elements within a single SVG symbol. (<a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/2-animated-elements-single-svg-symbol.png">Large preview</a>)</figcaption></figure><h2 id="css-custom-properties-to-the-rescue">CSS Custom Properties To The Rescue</h2><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><h2 id="passing-multiple-values-to-a-symbol">Passing Multiple Values To A Symbol</h2><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><h2 id="a-multi-coloured-icon-system">A Multi-Coloured Icon System</h2><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/3-custom-properties-colours.png"><img alt="Custom properties for the fill colours in several Bluesky icons" decoding="async" fetchpriority="low" height="167" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/3-custom-properties-colours.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/3-custom-properties-colours.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/3-custom-properties-colours.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/3-custom-properties-colours.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/3-custom-properties-colours.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/3-custom-properties-colours.png 2000w" width="800"></img></a><figcaption>Custom properties for the fill colours in several Bluesky icons. (<a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/3-custom-properties-colours.png">Large preview</a>)</figcaption></figure><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><h2 id="data-visualisations-with-css-custom-properties">Data Visualisations With CSS Custom Properties</h2><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/4-data-visualisations-css-custom-properties.png"><img alt="Data visualisations with CSS Custom Properties" decoding="async" fetchpriority="low" height="421" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/4-data-visualisations-css-custom-properties.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/4-data-visualisations-css-custom-properties.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/4-data-visualisations-css-custom-properties.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/4-data-visualisations-css-custom-properties.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/4-data-visualisations-css-custom-properties.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/4-data-visualisations-css-custom-properties.png 2000w" width="800"></img></a><figcaption>Data visualisations with CSS Custom Properties. (<a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/4-data-visualisations-css-custom-properties.png">Large preview</a>)</figcaption></figure><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="http://www.w3.org/2000/svg"> <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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aCSS%20Custom%20Properties%20aren%e2%80%99t%20only%20helpful%20for%20styling;%20they%20can%20also%20channel%20data%20between%20HTML%20and%20SVG%e2%80%99s%20inner%20geometry,%20binding%20visual%20attributes%20like%20colour,%20length,%20and%20scale%20to%20semantics%20like%20arrest%20numbers,%20career%20length,%20and%20kills.%0a&amp;url=https://smashingmagazine.com%2f2025%2f11%2fsmashing-animations-part-6-svgs-css-custom-properties%2f">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.</a></p></blockquote><h2 id="ambient-animations">Ambient Animations</h2><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="http://www.w3.org/2000/svg" style="display:none;"> <symbol id="outlaw-1">[…]</symbol> <!-- ... --> </svg> <!-- 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></div><figure><a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/5-characters.png"><img alt="My website’s Magnificent 7 characters" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/5-characters.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/5-characters.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/5-characters.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/5-characters.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/5-characters.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/5-characters.png 2000w" width="800"></img></a><figcaption>My website’s Magnificent 7 characters. (<a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/5-characters.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/6-blinking-effect.png"><img alt="Blinking effect by animating eyelids’ opacity." decoding="async" fetchpriority="low" height="333" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/6-blinking-effect.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/6-blinking-effect.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/6-blinking-effect.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/6-blinking-effect.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/6-blinking-effect.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/6-blinking-effect.png 2000w" width="800"></img></a><figcaption>Blinking effect by animating eyelids’ opacity. (<a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/6-blinking-effect.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/7-foot-tapping-effect.png"><img alt="Foot tapping effect by animating the foot’s rotation" decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/7-foot-tapping-effect.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/7-foot-tapping-effect.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/7-foot-tapping-effect.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/7-foot-tapping-effect.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/7-foot-tapping-effect.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/7-foot-tapping-effect.png 2000w" width="800"></img></a><figcaption>Foot tapping effect by animating the foot’s rotation. (<a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/7-foot-tapping-effect.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/8-jiggling-effect.png"><img alt="Jiggling effect by animating the moustaches’ translation" decoding="async" fetchpriority="low" height="333" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/8-jiggling-effect.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/8-jiggling-effect.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/8-jiggling-effect.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/8-jiggling-effect.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/8-jiggling-effect.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/8-jiggling-effect.png 2000w" width="800"></img></a><figcaption>Jiggling effect by animating the moustaches’ translation. (<a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/8-jiggling-effect.png">Large preview</a>)</figcaption></figure><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><h2 id="pitfalls-and-solutions">Pitfalls And Solutions</h2><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><h2 id="conclusion">Conclusion</h2><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/smashing-animations-part-6-svgs-css-custom-properties.jpg" /><h1>Magnificent SVGs With <use> And CSS Custom Properties — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>10 min read</li><li><a href="http://www.smashingmagazine.com/category/svg">SVG</a>, <a href="http://www.smashingmagazine.com/category/animation">Animation</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/css">CSS</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>SVG is one of those web technologies that’s both elegant and, at times, infuriating. In this article, pioneering author and web designer <a href="https://stuffandnonsense.co.uk">Andy Clarke</a> explains his technique for animating SVG elements that are hidden in the Shadow DOM.</section></div><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><figure><a href="https://stuffandnonsense.co.uk/"><img alt="Graphics featuring seven magnificent Old West characters" decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/1-graphics-old-west-characters.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/1-graphics-old-west-characters.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/1-graphics-old-west-characters.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/1-graphics-old-west-characters.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/1-graphics-old-west-characters.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/1-graphics-old-west-characters.png 2000w" width="800"></img></a><figcaption>View this animated SVG on <a href="https://stuffandnonsense.co.uk/">my website</a>. (<a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/1-graphics-old-west-characters.png">Large preview</a>)</figcaption></figure><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="http://www.w3.org/2000/svg" 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><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="understanding-the-shadow-dom-barrier">Understanding The Shadow DOM Barrier</h2><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/2-animated-elements-single-svg-symbol.png"><img alt="Several animated elements within a single SVG symbol" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/2-animated-elements-single-svg-symbol.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/2-animated-elements-single-svg-symbol.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/2-animated-elements-single-svg-symbol.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/2-animated-elements-single-svg-symbol.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/2-animated-elements-single-svg-symbol.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/2-animated-elements-single-svg-symbol.png 2000w" width="800"></img></a><figcaption>Several animated elements within a single SVG symbol. (<a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/2-animated-elements-single-svg-symbol.png">Large preview</a>)</figcaption></figure><h2 id="css-custom-properties-to-the-rescue">CSS Custom Properties To The Rescue</h2><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><h2 id="passing-multiple-values-to-a-symbol">Passing Multiple Values To A Symbol</h2><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><h2 id="a-multi-coloured-icon-system">A Multi-Coloured Icon System</h2><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/3-custom-properties-colours.png"><img alt="Custom properties for the fill colours in several Bluesky icons" decoding="async" fetchpriority="low" height="167" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/3-custom-properties-colours.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/3-custom-properties-colours.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/3-custom-properties-colours.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/3-custom-properties-colours.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/3-custom-properties-colours.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/3-custom-properties-colours.png 2000w" width="800"></img></a><figcaption>Custom properties for the fill colours in several Bluesky icons. (<a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/3-custom-properties-colours.png">Large preview</a>)</figcaption></figure><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><h2 id="data-visualisations-with-css-custom-properties">Data Visualisations With CSS Custom Properties</h2><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/4-data-visualisations-css-custom-properties.png"><img alt="Data visualisations with CSS Custom Properties" decoding="async" fetchpriority="low" height="421" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/4-data-visualisations-css-custom-properties.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/4-data-visualisations-css-custom-properties.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/4-data-visualisations-css-custom-properties.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/4-data-visualisations-css-custom-properties.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/4-data-visualisations-css-custom-properties.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/4-data-visualisations-css-custom-properties.png 2000w" width="800"></img></a><figcaption>Data visualisations with CSS Custom Properties. (<a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/4-data-visualisations-css-custom-properties.png">Large preview</a>)</figcaption></figure><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="http://www.w3.org/2000/svg"> <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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aCSS%20Custom%20Properties%20aren%e2%80%99t%20only%20helpful%20for%20styling;%20they%20can%20also%20channel%20data%20between%20HTML%20and%20SVG%e2%80%99s%20inner%20geometry,%20binding%20visual%20attributes%20like%20colour,%20length,%20and%20scale%20to%20semantics%20like%20arrest%20numbers,%20career%20length,%20and%20kills.%0a&amp;url=https://smashingmagazine.com%2f2025%2f11%2fsmashing-animations-part-6-svgs-css-custom-properties%2f">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.</a></p></blockquote><h2 id="ambient-animations">Ambient Animations</h2><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="http://www.w3.org/2000/svg" style="display:none;"> <symbol id="outlaw-1">[…]</symbol> <!-- ... --> </svg> <!-- 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></div><figure><a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/5-characters.png"><img alt="My website’s Magnificent 7 characters" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/5-characters.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/5-characters.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/5-characters.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/5-characters.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/5-characters.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/5-characters.png 2000w" width="800"></img></a><figcaption>My website’s Magnificent 7 characters. (<a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/5-characters.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/6-blinking-effect.png"><img alt="Blinking effect by animating eyelids’ opacity." decoding="async" fetchpriority="low" height="333" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/6-blinking-effect.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/6-blinking-effect.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/6-blinking-effect.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/6-blinking-effect.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/6-blinking-effect.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/6-blinking-effect.png 2000w" width="800"></img></a><figcaption>Blinking effect by animating eyelids’ opacity. (<a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/6-blinking-effect.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/7-foot-tapping-effect.png"><img alt="Foot tapping effect by animating the foot’s rotation" decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/7-foot-tapping-effect.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/7-foot-tapping-effect.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/7-foot-tapping-effect.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/7-foot-tapping-effect.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/7-foot-tapping-effect.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/7-foot-tapping-effect.png 2000w" width="800"></img></a><figcaption>Foot tapping effect by animating the foot’s rotation. (<a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/7-foot-tapping-effect.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/8-jiggling-effect.png"><img alt="Jiggling effect by animating the moustaches’ translation" decoding="async" fetchpriority="low" height="333" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/8-jiggling-effect.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/8-jiggling-effect.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/8-jiggling-effect.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/8-jiggling-effect.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/8-jiggling-effect.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/8-jiggling-effect.png 2000w" width="800"></img></a><figcaption>Jiggling effect by animating the moustaches’ translation. (<a href="https://files.smashing.media/articles/smashing-animations-part-6-svgs-css-custom-properties/8-jiggling-effect.png">Large preview</a>)</figcaption></figure><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><h2 id="pitfalls-and-solutions">Pitfalls And Solutions</h2><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><h2 id="conclusion">Conclusion</h2><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <img src="https://files.smashing.media/articles/key-components-ux-strategy/practical-guide-ux-strategy.jpg" /><h1>Six Key Components of UX Strategy — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>7 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/workflow">Workflow</a>, <a href="http://www.smashingmagazine.com/category/business">Business</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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 &amp; Design Impact</a> (use the code 🎟 <code>IMPACT</code> to save 20% off today).</section></div><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><h2 id="strategy-vs-goals-vs-plans">Strategy vs. Goals vs. Plans</h2><p>When we speak about strategy, we often speak about planning and goals — but they are actually quite different. While <em>strategy</em> answers <strong>“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><figure><a href="https://www.linkedin.com/posts/alex-m-h-smith_please-tell-me-you-arent-making-this-mistake-activity-7364616097272143872-SKgz"><img alt="A diagram showing that a goal is a destination, while a strategy is the path to get there." decoding="async" fetchpriority="low" height="800" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/1-strategy-vs-goal.jpeg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/1-strategy-vs-goal.jpeg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/key-components-ux-strategy/1-strategy-vs-goal.jpeg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/key-components-ux-strategy/1-strategy-vs-goal.jpeg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/key-components-ux-strategy/1-strategy-vs-goal.jpeg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/key-components-ux-strategy/1-strategy-vs-goal.jpeg 2000w" width="800"></img></a><figcaption>Good strategy isn't a goal or a big objective; it's a solution to a problem posed by a goal. Via <a href="https://www.linkedin.com/posts/alex-m-h-smith_please-tell-me-you-arent-making-this-mistake-activity-7364616097272143872-SKgz">Alex H Smith</a>. (<a href="https://files.smashing.media/articles/key-components-ux-strategy/1-strategy-vs-goal.jpeg">Large preview</a>)</figcaption></figure><p>A strong strategy requires making conscious, and oftentimes tough, decisions about what we will do — and just as importantly, <strong>what we will not do</strong>, and why.</p><h2 id="business-strategy">Business Strategy</h2><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><figure><a href="https://www.strategyzer.com/library/the-business-model-canvas"><img alt="The Business Model Canvas representing key business considerations for a sustainable business." decoding="async" fetchpriority="low" height="579" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/2-business-model-canvas.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/2-business-model-canvas.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/key-components-ux-strategy/2-business-model-canvas.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/key-components-ux-strategy/2-business-model-canvas.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/key-components-ux-strategy/2-business-model-canvas.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/key-components-ux-strategy/2-business-model-canvas.jpg 2000w" width="800"></img></a><figcaption>We shouldn’t underestimate our impact. UX affects many segments of the <a href="https://www.strategyzer.com/library/the-business-model-canvas">Business Model Canvas</a>: user segments, relationships, channels, activities, revenue streams. (<a href="https://files.smashing.media/articles/key-components-ux-strategy/2-business-model-canvas.jpg">Large preview</a>)</figcaption></figure><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><h2 id="product-strategy">Product Strategy</h2><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><h2 id="ux-strategy">UX Strategy</h2><p>UX strategy is about <strong>shaping and delivering</strong> product value through UX. Good UX strategy always stems from UX research and answers to business needs. It 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><figure><a href="https://files.smashing.media/articles/key-components-ux-strategy/8-risks-ux-strategy.png"><img alt="Frequent risks" decoding="async" fetchpriority="low" height="451" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/8-risks-ux-strategy.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/8-risks-ux-strategy.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/key-components-ux-strategy/8-risks-ux-strategy.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/key-components-ux-strategy/8-risks-ux-strategy.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/key-components-ux-strategy/8-risks-ux-strategy.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/key-components-ux-strategy/8-risks-ux-strategy.png 2000w" width="800"></img></a><figcaption>Every project has plenty of risks that endanger it. Unknown dependencies are one of them. (<a href="https://files.smashing.media/articles/key-components-ux-strategy/8-risks-ux-strategy.png">Large preview</a>)</figcaption></figure><p>Most importantly, it’s <strong>not a fixed plan</strong> or a set of deliverables; it’s a guide that informs our actions, but also must be prepared to change when things change.</p><figure><a href="https://www.nngroup.com/articles/ux-strategy/"><img alt="A diagram illustrating the components of a UX Strategy: Vision, Goals, and a Plan." decoding="async" fetchpriority="low" height="564" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/3-components-ux-strategy.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/3-components-ux-strategy.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/key-components-ux-strategy/3-components-ux-strategy.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/key-components-ux-strategy/3-components-ux-strategy.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/key-components-ux-strategy/3-components-ux-strategy.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/key-components-ux-strategy/3-components-ux-strategy.png 2000w" width="800"></img></a><figcaption>Components of UX Strategy are Vision, Goals, and a Plan. Tactical steps are part of the execution. (Image source: <a href="https://www.nngroup.com/articles/ux-strategy/">nngroup.com</a>) (<a href="https://files.smashing.media/articles/key-components-ux-strategy/3-components-ux-strategy.png">Large preview</a>)</figcaption></figure><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><h2 id="six-key-components-of-ux-strategy">Six Key Components of UX Strategy</h2><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><figure><a href="https://files.smashing.media/articles/key-components-ux-strategy/4-what-ux-strategy.jpg"><img alt="UX strategy covers a plan of action, priorities, when to start working on it, and what it looks like." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/4-what-ux-strategy.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/4-what-ux-strategy.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/key-components-ux-strategy/4-what-ux-strategy.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/key-components-ux-strategy/4-what-ux-strategy.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/key-components-ux-strategy/4-what-ux-strategy.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/key-components-ux-strategy/4-what-ux-strategy.jpg 2000w" width="800"></img></a><figcaption>UX strategy works best in discovery, and is useful when risk and uncertainty are high. (<a href="https://files.smashing.media/articles/key-components-ux-strategy/4-what-ux-strategy.jpg">Large preview</a>)</figcaption></figure><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></br>The desired, improved future state of UX.</li><li><strong>User segments</strong><br></br>Primary users that we are considering.</li><li><strong>Priorities</strong><br></br>What we will and, crucially, what we will not do, and why.</li><li><strong>High-value actions</strong><br></br>How we drive value and meet user and business needs.</li><li><strong>Feasibility</strong><br></br>Realistic assessment of people, processes, and resources.</li><li><strong>Risks</strong><br></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><h2 id="practical-example-by-alin-buda">Practical Example (by Alin Buda)</h2><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&amp;utm_medium=member_desktop&amp;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><p>Our UX strategy is to focus on <strong>high-friction workflows</strong> for expert users, not casual usability improvements. Why? Because retention in this space is driven by power-user efficiency, and that aligns with our growth model.</p><p>To succeed, we’ll design <strong>workflow accelerators</strong> and decision-support tools that will reduce time-on-task. As a part of it, we’ll need to redesign legacy flows in the Crux system. We <strong>won’t prioritize</strong> UI refinements or onboarding tours, because it doesn’t move the needle in this context.</p></blockquote><figure><a href="https://files.smashing.media/articles/key-components-ux-strategy/5-ux-strategy-example.jpg"><img alt="UX Strategy example, highlighting individual key points to cover." decoding="async" fetchpriority="low" height="449" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/5-ux-strategy-example.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/5-ux-strategy-example.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/key-components-ux-strategy/5-ux-strategy-example.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/key-components-ux-strategy/5-ux-strategy-example.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/key-components-ux-strategy/5-ux-strategy-example.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/key-components-ux-strategy/5-ux-strategy-example.jpg 2000w" width="800"></img></a><figcaption>An example of UX strategy. It doesn't have to be a long PDF report. (<a href="https://files.smashing.media/articles/key-components-ux-strategy/5-ux-strategy-example.jpg">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/key-components-ux-strategy/6-ux-strategy-example.jpg"><img alt="UX Strategy example, highlighting individual key points to cover." decoding="async" fetchpriority="low" height="448" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/6-ux-strategy-example.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/6-ux-strategy-example.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/key-components-ux-strategy/6-ux-strategy-example.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/key-components-ux-strategy/6-ux-strategy-example.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/key-components-ux-strategy/6-ux-strategy-example.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/key-components-ux-strategy/6-ux-strategy-example.jpg 2000w" width="800"></img></a><figcaption>UX strategy works best in discovery, and is useful when risk and uncertainty are high. (<a href="https://files.smashing.media/articles/key-components-ux-strategy/6-ux-strategy-example.jpg">Large preview</a>)</figcaption></figure><p>What I like most about this example is just how concise and clear it is. Getting to this level of clarity takes quite a bit of time, but it creates a very precise overview of what we do, what we don’t do, what we focus on, and how we <strong>drive value</strong>.</p><h2 id="wrapping-up">Wrapping Up</h2><p>The best path to make a strong case with senior leadership is to frame your UX work as a direct <strong>contributor to differentiation</strong>. This isn’t just about making things look different; it’s about enhancing the perceived value.</p><figure><a href="https://jamiemill.com/blog/elements-of-product-design/"><img alt="A diagram showing the elements of product design, from abstract reality to the concrete surface." decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/7-elements-product-design.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/7-elements-product-design.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/key-components-ux-strategy/7-elements-product-design.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/key-components-ux-strategy/7-elements-product-design.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/key-components-ux-strategy/7-elements-product-design.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/key-components-ux-strategy/7-elements-product-design.png 2000w" width="800"></img></a><figcaption>The Elements of Product Design, starting from mapping reality into the problem space. That's the critical part, and a cornerstone of UX Strategy. (Image source: <a href="https://jamiemill.com/blog/elements-of-product-design/">Jamie Mill</a>) (<a href="https://files.smashing.media/articles/key-components-ux-strategy/7-elements-product-design.png">Large preview</a>)</figcaption></figure><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><h2 id="meet-how-to-measure-ux-and-design-impact">Meet “How To Measure UX And Design Impact”</h2><p>You can find more details on <strong>UX Strategy</strong> in 🪴 <a href="https://measure-ux.com/"><strong>Measure UX &amp; 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><figure><a href="https://measure-ux.com/" title="How To Measure UX and Design Impact, with Vitaly Friedman"><img alt="How to Measure UX and Design Impact, with Vitaly Friedman." height="466" src="https://files.smashing.media/articles/ux-metrics-video-course-release/measure-ux-and-design-impact-course.png" width="900"></img></a></figure><h2 id="useful-resources">Useful Resources</h2><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/key-components-ux-strategy/practical-guide-ux-strategy.jpg" /><h1>Six Key Components of UX Strategy — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>7 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/workflow">Workflow</a>, <a href="http://www.smashingmagazine.com/category/business">Business</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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 &amp; Design Impact</a> (use the code 🎟 <code>IMPACT</code> to save 20% off today).</section></div><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><h2 id="strategy-vs-goals-vs-plans">Strategy vs. Goals vs. Plans</h2><p>When we speak about strategy, we often speak about planning and goals — but they are actually quite different. While <em>strategy</em> answers <strong>“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><figure><a href="https://www.linkedin.com/posts/alex-m-h-smith_please-tell-me-you-arent-making-this-mistake-activity-7364616097272143872-SKgz"><img alt="A diagram showing that a goal is a destination, while a strategy is the path to get there." decoding="async" fetchpriority="low" height="800" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/1-strategy-vs-goal.jpeg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/1-strategy-vs-goal.jpeg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/key-components-ux-strategy/1-strategy-vs-goal.jpeg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/key-components-ux-strategy/1-strategy-vs-goal.jpeg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/key-components-ux-strategy/1-strategy-vs-goal.jpeg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/key-components-ux-strategy/1-strategy-vs-goal.jpeg 2000w" width="800"></img></a><figcaption>Good strategy isn't a goal or a big objective; it's a solution to a problem posed by a goal. Via <a href="https://www.linkedin.com/posts/alex-m-h-smith_please-tell-me-you-arent-making-this-mistake-activity-7364616097272143872-SKgz">Alex H Smith</a>. (<a href="https://files.smashing.media/articles/key-components-ux-strategy/1-strategy-vs-goal.jpeg">Large preview</a>)</figcaption></figure><p>A strong strategy requires making conscious, and oftentimes tough, decisions about what we will do — and just as importantly, <strong>what we will not do</strong>, and why.</p><h2 id="business-strategy">Business Strategy</h2><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><figure><a href="https://www.strategyzer.com/library/the-business-model-canvas"><img alt="The Business Model Canvas representing key business considerations for a sustainable business." decoding="async" fetchpriority="low" height="579" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/2-business-model-canvas.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/2-business-model-canvas.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/key-components-ux-strategy/2-business-model-canvas.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/key-components-ux-strategy/2-business-model-canvas.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/key-components-ux-strategy/2-business-model-canvas.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/key-components-ux-strategy/2-business-model-canvas.jpg 2000w" width="800"></img></a><figcaption>We shouldn’t underestimate our impact. UX affects many segments of the <a href="https://www.strategyzer.com/library/the-business-model-canvas">Business Model Canvas</a>: user segments, relationships, channels, activities, revenue streams. (<a href="https://files.smashing.media/articles/key-components-ux-strategy/2-business-model-canvas.jpg">Large preview</a>)</figcaption></figure><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><h2 id="product-strategy">Product Strategy</h2><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><h2 id="ux-strategy">UX Strategy</h2><p>UX strategy is about <strong>shaping and delivering</strong> product value through UX. Good UX strategy always stems from UX research and answers to business needs. It 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><figure><a href="https://files.smashing.media/articles/key-components-ux-strategy/8-risks-ux-strategy.png"><img alt="Frequent risks" decoding="async" fetchpriority="low" height="451" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/8-risks-ux-strategy.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/8-risks-ux-strategy.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/key-components-ux-strategy/8-risks-ux-strategy.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/key-components-ux-strategy/8-risks-ux-strategy.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/key-components-ux-strategy/8-risks-ux-strategy.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/key-components-ux-strategy/8-risks-ux-strategy.png 2000w" width="800"></img></a><figcaption>Every project has plenty of risks that endanger it. Unknown dependencies are one of them. (<a href="https://files.smashing.media/articles/key-components-ux-strategy/8-risks-ux-strategy.png">Large preview</a>)</figcaption></figure><p>Most importantly, it’s <strong>not a fixed plan</strong> or a set of deliverables; it’s a guide that informs our actions, but also must be prepared to change when things change.</p><figure><a href="https://www.nngroup.com/articles/ux-strategy/"><img alt="A diagram illustrating the components of a UX Strategy: Vision, Goals, and a Plan." decoding="async" fetchpriority="low" height="564" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/3-components-ux-strategy.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/3-components-ux-strategy.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/key-components-ux-strategy/3-components-ux-strategy.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/key-components-ux-strategy/3-components-ux-strategy.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/key-components-ux-strategy/3-components-ux-strategy.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/key-components-ux-strategy/3-components-ux-strategy.png 2000w" width="800"></img></a><figcaption>Components of UX Strategy are Vision, Goals, and a Plan. Tactical steps are part of the execution. (Image source: <a href="https://www.nngroup.com/articles/ux-strategy/">nngroup.com</a>) (<a href="https://files.smashing.media/articles/key-components-ux-strategy/3-components-ux-strategy.png">Large preview</a>)</figcaption></figure><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><h2 id="six-key-components-of-ux-strategy">Six Key Components of UX Strategy</h2><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><figure><a href="https://files.smashing.media/articles/key-components-ux-strategy/4-what-ux-strategy.jpg"><img alt="UX strategy covers a plan of action, priorities, when to start working on it, and what it looks like." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/4-what-ux-strategy.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/4-what-ux-strategy.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/key-components-ux-strategy/4-what-ux-strategy.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/key-components-ux-strategy/4-what-ux-strategy.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/key-components-ux-strategy/4-what-ux-strategy.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/key-components-ux-strategy/4-what-ux-strategy.jpg 2000w" width="800"></img></a><figcaption>UX strategy works best in discovery, and is useful when risk and uncertainty are high. (<a href="https://files.smashing.media/articles/key-components-ux-strategy/4-what-ux-strategy.jpg">Large preview</a>)</figcaption></figure><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></br>The desired, improved future state of UX.</li><li><strong>User segments</strong><br></br>Primary users that we are considering.</li><li><strong>Priorities</strong><br></br>What we will and, crucially, what we will not do, and why.</li><li><strong>High-value actions</strong><br></br>How we drive value and meet user and business needs.</li><li><strong>Feasibility</strong><br></br>Realistic assessment of people, processes, and resources.</li><li><strong>Risks</strong><br></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><h2 id="practical-example-by-alin-buda">Practical Example (by Alin Buda)</h2><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&amp;utm_medium=member_desktop&amp;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><p>Our UX strategy is to focus on <strong>high-friction workflows</strong> for expert users, not casual usability improvements. Why? Because retention in this space is driven by power-user efficiency, and that aligns with our growth model.</p><p>To succeed, we’ll design <strong>workflow accelerators</strong> and decision-support tools that will reduce time-on-task. As a part of it, we’ll need to redesign legacy flows in the Crux system. We <strong>won’t prioritize</strong> UI refinements or onboarding tours, because it doesn’t move the needle in this context.</p></blockquote><figure><a href="https://files.smashing.media/articles/key-components-ux-strategy/5-ux-strategy-example.jpg"><img alt="UX Strategy example, highlighting individual key points to cover." decoding="async" fetchpriority="low" height="449" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/5-ux-strategy-example.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/5-ux-strategy-example.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/key-components-ux-strategy/5-ux-strategy-example.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/key-components-ux-strategy/5-ux-strategy-example.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/key-components-ux-strategy/5-ux-strategy-example.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/key-components-ux-strategy/5-ux-strategy-example.jpg 2000w" width="800"></img></a><figcaption>An example of UX strategy. It doesn't have to be a long PDF report. (<a href="https://files.smashing.media/articles/key-components-ux-strategy/5-ux-strategy-example.jpg">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/key-components-ux-strategy/6-ux-strategy-example.jpg"><img alt="UX Strategy example, highlighting individual key points to cover." decoding="async" fetchpriority="low" height="448" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/6-ux-strategy-example.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/6-ux-strategy-example.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/key-components-ux-strategy/6-ux-strategy-example.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/key-components-ux-strategy/6-ux-strategy-example.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/key-components-ux-strategy/6-ux-strategy-example.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/key-components-ux-strategy/6-ux-strategy-example.jpg 2000w" width="800"></img></a><figcaption>UX strategy works best in discovery, and is useful when risk and uncertainty are high. (<a href="https://files.smashing.media/articles/key-components-ux-strategy/6-ux-strategy-example.jpg">Large preview</a>)</figcaption></figure><p>What I like most about this example is just how concise and clear it is. Getting to this level of clarity takes quite a bit of time, but it creates a very precise overview of what we do, what we don’t do, what we focus on, and how we <strong>drive value</strong>.</p><h2 id="wrapping-up">Wrapping Up</h2><p>The best path to make a strong case with senior leadership is to frame your UX work as a direct <strong>contributor to differentiation</strong>. This isn’t just about making things look different; it’s about enhancing the perceived value.</p><figure><a href="https://jamiemill.com/blog/elements-of-product-design/"><img alt="A diagram showing the elements of product design, from abstract reality to the concrete surface." decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/7-elements-product-design.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/key-components-ux-strategy/7-elements-product-design.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/key-components-ux-strategy/7-elements-product-design.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/key-components-ux-strategy/7-elements-product-design.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/key-components-ux-strategy/7-elements-product-design.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/key-components-ux-strategy/7-elements-product-design.png 2000w" width="800"></img></a><figcaption>The Elements of Product Design, starting from mapping reality into the problem space. That's the critical part, and a cornerstone of UX Strategy. (Image source: <a href="https://jamiemill.com/blog/elements-of-product-design/">Jamie Mill</a>) (<a href="https://files.smashing.media/articles/key-components-ux-strategy/7-elements-product-design.png">Large preview</a>)</figcaption></figure><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><h2 id="meet-how-to-measure-ux-and-design-impact">Meet “How To Measure UX And Design Impact”</h2><p>You can find more details on <strong>UX Strategy</strong> in 🪴 <a href="https://measure-ux.com/"><strong>Measure UX &amp; 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><figure><a href="https://measure-ux.com/" title="How To Measure UX and Design Impact, with Vitaly Friedman"><img alt="How to Measure UX and Design Impact, with Vitaly Friedman." height="466" src="https://files.smashing.media/articles/ux-metrics-video-course-release/measure-ux-and-design-impact-course.png" width="900"></img></a></figure><h2 id="useful-resources">Useful Resources</h2><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <img src="https://files.smashing.media/articles/how-leverage-component-variants-penpot/how-leverage-component-variants-penpot.jpg" /><h1>How To Leverage Component Variants In Penpot — Smashing Magazine</h1><h2>By About The AuthorDesigner, dev, editor, writer, and nomad. More about Daniel ↬</h2><div><div id="article__content"><div><ul><li>9 min read</li><li><a href="http://www.smashingmagazine.com/category/design-systems">Design Systems</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/ui">UI</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>With component variants, design systems become more flexible, letting you reuse the same component while adapting its look or state with ease. In this article, Daniel Schwarz demonstrates how design tokens can be leveraged to manage components and their variations using <a href="https://penpot.app?utm_source=SmashingMag&amp;utm_medium=Article&amp;utm_campaign=Variants">Penpot</a>, the open-source tool built for scalable, consistent design.</section></div><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&amp;utm_medium=Article&amp;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&amp;utm_medium=Article&amp;utm_campaign=Variants">design systems</a>, and how to use them effectively in Penpot.</p><h2 id="step-1-get-your-design-tokens-in-order">Step 1: Get Your Design Tokens In Order</h2><p>For the most part, what separates one variant from another is the <a href="https://penpot.app/collaboration/design-tokens?utm_source=SmashingMag&amp;utm_medium=Article&amp;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><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/1-color-token-penpot.png"><img alt="Creating a color token in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/1-color-token-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/1-color-token-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/1-color-token-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/1-color-token-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/1-color-token-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/1-color-token-penpot.png 2000w" width="800"></img></a><figcaption>Creating a color token in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/1-color-token-penpot.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/2-design-token-alias-penpot.png"><img alt="Creating a design token alias in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/2-design-token-alias-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/2-design-token-alias-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/2-design-token-alias-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/2-design-token-alias-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/2-design-token-alias-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/2-design-token-alias-penpot.png 2000w" width="800"></img></a><figcaption>Creating a design token alias in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/2-design-token-alias-penpot.png">Large preview</a>)</figcaption></figure><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><h2 id="step-2-create-the-component">Step 2: Create The Component</h2><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><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/3-main-component-penpot.png"><img alt="Main component" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/3-main-component-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/3-main-component-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/3-main-component-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/3-main-component-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/3-main-component-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/3-main-component-penpot.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/3-main-component-penpot.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/4-design-token-penpot.png"><img alt="Applying a design token in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/4-design-token-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/4-design-token-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/4-design-token-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/4-design-token-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/4-design-token-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/4-design-token-penpot.png 2000w" width="800"></img></a><figcaption>Applying a design token in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/4-design-token-penpot.png">Large preview</a>)</figcaption></figure><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 <kbd>Ctrl</kbd> / <kbd>⌘</kbd> + <kbd>K</kbd> after selecting it).</p><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/5-create-component-penpot.png"><img alt="Creating a component in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/5-create-component-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/5-create-component-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/5-create-component-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/5-create-component-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/5-create-component-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/5-create-component-penpot.png 2000w" width="800"></img></a><figcaption>Creating a component in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/5-create-component-penpot.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/6-renaming-component-penpot.png"><img alt="Renaming a component in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/6-renaming-component-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/6-renaming-component-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/6-renaming-component-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/6-renaming-component-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/6-renaming-component-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/6-renaming-component-penpot.png 2000w" width="800"></img></a><figcaption>Renaming a component in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/6-renaming-component-penpot.png">Large preview</a>)</figcaption></figure><h2 id="step-3-create-the-component-variants">Step 3: Create The Component Variants</h2><p>To create a variant, select the main component and either hit the <kbd>Ctrl</kbd> / <kbd>⌘</kbd> + <kbd>K</kbd> keyboard shortcut, or click on the icon that reveals the “Create variant” tooltip (located in the “Design” tab in the right panel).</p><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/7-creating-component-variant-penpot.png"><img alt="Creating a component variant in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/7-creating-component-variant-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/7-creating-component-variant-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/7-creating-component-variant-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/7-creating-component-variant-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/7-creating-component-variant-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/7-creating-component-variant-penpot.png 2000w" width="800"></img></a><figcaption>Creating a component variant in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/7-creating-component-variant-penpot.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/8-styling-component-variants-penpot.png"><img alt="Styling component variants in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/8-styling-component-variants-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/8-styling-component-variants-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/8-styling-component-variants-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/8-styling-component-variants-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/8-styling-component-variants-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/8-styling-component-variants-penpot.png 2000w" width="800"></img></a><figcaption>Styling component variants in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/8-styling-component-variants-penpot.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/9-naming-component-variant-properties-penpot.png"><img alt="Naming component variant properties in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/9-naming-component-variant-properties-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/9-naming-component-variant-properties-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/9-naming-component-variant-properties-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/9-naming-component-variant-properties-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/9-naming-component-variant-properties-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/9-naming-component-variant-properties-penpot.png 2000w" width="800"></img></a><figcaption>Naming component variant properties in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/9-naming-component-variant-properties-penpot.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/10-managing-component-variant-properties-penpot.png"><img alt="Managing component variant properties in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/10-managing-component-variant-properties-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/10-managing-component-variant-properties-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/10-managing-component-variant-properties-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/10-managing-component-variant-properties-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/10-managing-component-variant-properties-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/10-managing-component-variant-properties-penpot.png 2000w" width="800"></img></a><figcaption>Managing component variant properties in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/10-managing-component-variant-properties-penpot.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/11-using-component-variants-penpot.png"><img alt="Using component variants in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/11-using-component-variants-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/11-using-component-variants-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/11-using-component-variants-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/11-using-component-variants-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/11-using-component-variants-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/11-using-component-variants-penpot.png 2000w" width="800"></img></a><figcaption>Using component variants in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/11-using-component-variants-penpot.png">Large preview</a>)</figcaption></figure><p>If you already have a <a href="https://penpot.app/blog/penpot-for-design-systems-101/?utm_source=SmashingMag&amp;utm_medium=Article&amp;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&amp;utm_medium=Article&amp;utm_campaign=DesignTokens">a very straightforward guide</a>, but the diagram below sums it up pretty well:</p><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/12-diagram-sorting.png"><img alt="Diagram on how to prepare your files for the upcoming Variants release" decoding="async" fetchpriority="low" height="463" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/12-diagram-sorting.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/12-diagram-sorting.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/12-diagram-sorting.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/12-diagram-sorting.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/12-diagram-sorting.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/12-diagram-sorting.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/12-diagram-sorting.png">Large preview</a>)</figcaption></figure><h2 id="how-component-variants-work-at-scale">How Component Variants Work At Scale</h2><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&amp;utm_medium=Article&amp;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&amp;utm_medium=Article&amp;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&amp;utm_medium=Article&amp;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><h2 id="conclusion">Conclusion</h2><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/how-leverage-component-variants-penpot/how-leverage-component-variants-penpot.jpg" /><h1>How To Leverage Component Variants In Penpot — Smashing Magazine</h1><h2>By About The AuthorDesigner, dev, editor, writer, and nomad. More about Daniel ↬</h2><div><div id="article__content"><div><ul><li>9 min read</li><li><a href="http://www.smashingmagazine.com/category/design-systems">Design Systems</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/ui">UI</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>With component variants, design systems become more flexible, letting you reuse the same component while adapting its look or state with ease. In this article, Daniel Schwarz demonstrates how design tokens can be leveraged to manage components and their variations using <a href="https://penpot.app?utm_source=SmashingMag&amp;utm_medium=Article&amp;utm_campaign=Variants">Penpot</a>, the open-source tool built for scalable, consistent design.</section></div><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&amp;utm_medium=Article&amp;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&amp;utm_medium=Article&amp;utm_campaign=Variants">design systems</a>, and how to use them effectively in Penpot.</p><h2 id="step-1-get-your-design-tokens-in-order">Step 1: Get Your Design Tokens In Order</h2><p>For the most part, what separates one variant from another is the <a href="https://penpot.app/collaboration/design-tokens?utm_source=SmashingMag&amp;utm_medium=Article&amp;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><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/1-color-token-penpot.png"><img alt="Creating a color token in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/1-color-token-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/1-color-token-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/1-color-token-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/1-color-token-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/1-color-token-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/1-color-token-penpot.png 2000w" width="800"></img></a><figcaption>Creating a color token in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/1-color-token-penpot.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/2-design-token-alias-penpot.png"><img alt="Creating a design token alias in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/2-design-token-alias-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/2-design-token-alias-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/2-design-token-alias-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/2-design-token-alias-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/2-design-token-alias-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/2-design-token-alias-penpot.png 2000w" width="800"></img></a><figcaption>Creating a design token alias in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/2-design-token-alias-penpot.png">Large preview</a>)</figcaption></figure><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><h2 id="step-2-create-the-component">Step 2: Create The Component</h2><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><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/3-main-component-penpot.png"><img alt="Main component" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/3-main-component-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/3-main-component-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/3-main-component-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/3-main-component-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/3-main-component-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/3-main-component-penpot.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/3-main-component-penpot.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/4-design-token-penpot.png"><img alt="Applying a design token in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/4-design-token-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/4-design-token-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/4-design-token-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/4-design-token-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/4-design-token-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/4-design-token-penpot.png 2000w" width="800"></img></a><figcaption>Applying a design token in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/4-design-token-penpot.png">Large preview</a>)</figcaption></figure><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 <kbd>Ctrl</kbd> / <kbd>⌘</kbd> + <kbd>K</kbd> after selecting it).</p><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/5-create-component-penpot.png"><img alt="Creating a component in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/5-create-component-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/5-create-component-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/5-create-component-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/5-create-component-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/5-create-component-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/5-create-component-penpot.png 2000w" width="800"></img></a><figcaption>Creating a component in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/5-create-component-penpot.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/6-renaming-component-penpot.png"><img alt="Renaming a component in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/6-renaming-component-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/6-renaming-component-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/6-renaming-component-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/6-renaming-component-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/6-renaming-component-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/6-renaming-component-penpot.png 2000w" width="800"></img></a><figcaption>Renaming a component in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/6-renaming-component-penpot.png">Large preview</a>)</figcaption></figure><h2 id="step-3-create-the-component-variants">Step 3: Create The Component Variants</h2><p>To create a variant, select the main component and either hit the <kbd>Ctrl</kbd> / <kbd>⌘</kbd> + <kbd>K</kbd> keyboard shortcut, or click on the icon that reveals the “Create variant” tooltip (located in the “Design” tab in the right panel).</p><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/7-creating-component-variant-penpot.png"><img alt="Creating a component variant in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/7-creating-component-variant-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/7-creating-component-variant-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/7-creating-component-variant-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/7-creating-component-variant-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/7-creating-component-variant-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/7-creating-component-variant-penpot.png 2000w" width="800"></img></a><figcaption>Creating a component variant in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/7-creating-component-variant-penpot.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/8-styling-component-variants-penpot.png"><img alt="Styling component variants in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/8-styling-component-variants-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/8-styling-component-variants-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/8-styling-component-variants-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/8-styling-component-variants-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/8-styling-component-variants-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/8-styling-component-variants-penpot.png 2000w" width="800"></img></a><figcaption>Styling component variants in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/8-styling-component-variants-penpot.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/9-naming-component-variant-properties-penpot.png"><img alt="Naming component variant properties in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/9-naming-component-variant-properties-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/9-naming-component-variant-properties-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/9-naming-component-variant-properties-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/9-naming-component-variant-properties-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/9-naming-component-variant-properties-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/9-naming-component-variant-properties-penpot.png 2000w" width="800"></img></a><figcaption>Naming component variant properties in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/9-naming-component-variant-properties-penpot.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/10-managing-component-variant-properties-penpot.png"><img alt="Managing component variant properties in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/10-managing-component-variant-properties-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/10-managing-component-variant-properties-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/10-managing-component-variant-properties-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/10-managing-component-variant-properties-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/10-managing-component-variant-properties-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/10-managing-component-variant-properties-penpot.png 2000w" width="800"></img></a><figcaption>Managing component variant properties in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/10-managing-component-variant-properties-penpot.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/11-using-component-variants-penpot.png"><img alt="Using component variants in Penpot" decoding="async" fetchpriority="low" height="500" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/11-using-component-variants-penpot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/11-using-component-variants-penpot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/11-using-component-variants-penpot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/11-using-component-variants-penpot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/11-using-component-variants-penpot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/11-using-component-variants-penpot.png 2000w" width="800"></img></a><figcaption>Using component variants in Penpot. (<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/11-using-component-variants-penpot.png">Large preview</a>)</figcaption></figure><p>If you already have a <a href="https://penpot.app/blog/penpot-for-design-systems-101/?utm_source=SmashingMag&amp;utm_medium=Article&amp;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&amp;utm_medium=Article&amp;utm_campaign=DesignTokens">a very straightforward guide</a>, but the diagram below sums it up pretty well:</p><figure><a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/12-diagram-sorting.png"><img alt="Diagram on how to prepare your files for the upcoming Variants release" decoding="async" fetchpriority="low" height="463" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/12-diagram-sorting.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-leverage-component-variants-penpot/12-diagram-sorting.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-leverage-component-variants-penpot/12-diagram-sorting.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-leverage-component-variants-penpot/12-diagram-sorting.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-leverage-component-variants-penpot/12-diagram-sorting.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-leverage-component-variants-penpot/12-diagram-sorting.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/how-leverage-component-variants-penpot/12-diagram-sorting.png">Large preview</a>)</figcaption></figure><h2 id="how-component-variants-work-at-scale">How Component Variants Work At Scale</h2><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&amp;utm_medium=Article&amp;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&amp;utm_medium=Article&amp;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&amp;utm_medium=Article&amp;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><h2 id="conclusion">Conclusion</h2><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <h1>Fading Light And Falling Leaves (November 2025 Wallpapers Edition) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>11 min read</li><li><a href="http://www.smashingmagazine.com/category/wallpapers">Wallpapers</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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!</section></p><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><h2 id="falling-into-november-11-2025">Falling Into November</h2><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><figure><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nov-25-falling-into-november-full.png" title="Falling Into November"><img alt="Falling Into November" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-25-falling-into-november-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nov-25-falling-into-november-preview.png" title="Falling Into November - Preview">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" title="Falling Into November - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-640x480.png" title="Falling Into November - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-800x480.png" title="Falling Into November - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-800x600.png" title="Falling Into November - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1024x768.png" title="Falling Into November - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1024x1024.png" title="Falling Into November - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1152x864.png" title="Falling Into November - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1280x720.png" title="Falling Into November - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1280x800.png" title="Falling Into November - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1280x960.png" title="Falling Into November - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1280x1024.png" title="Falling Into November - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1400x1050.png" title="Falling Into November - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1440x900.png" title="Falling Into November - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1600x1200.png" title="Falling Into November - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1680x1050.png" title="Falling Into November - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1920x1080.png" title="Falling Into November - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1920x1200.png" title="Falling Into November - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1920x1440.png" title="Falling Into November - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-2560x1440.png" title="Falling Into November - 2560x1440">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" title="Falling Into November - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-640x480.png" title="Falling Into November - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-800x480.png" title="Falling Into November - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-800x600.png" title="Falling Into November - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1024x768.png" title="Falling Into November - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1024x1024.png" title="Falling Into November - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1152x864.png" title="Falling Into November - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1280x720.png" title="Falling Into November - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1280x800.png" title="Falling Into November - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1280x960.png" title="Falling Into November - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1280x1024.png" title="Falling Into November - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1400x1050.png" title="Falling Into November - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1440x900.png" title="Falling Into November - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1600x1200.png" title="Falling Into November - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1680x1050.png" title="Falling Into November - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1920x1080.png" title="Falling Into November - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1920x1200.png" title="Falling Into November - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1920x1440.png" title="Falling Into November - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-2560x1440.png" title="Falling Into November - 2560x1440">2560x1440</a></li></ul><h2 id="crown-me-11-2025">Crown Me</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nov-25-crown-me-full.png" title="Crown Me"><img alt="Crown Me" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-25-crown-me-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nov-25-crown-me-preview.png" title="Crown Me - Preview">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" title="Crown Me - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-800x480.png" title="Crown Me - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-800x600.png" title="Crown Me - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1024x768.png" title="Crown Me - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1024x1024.png" title="Crown Me - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1152x864.png" title="Crown Me - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1280x720.png" title="Crown Me - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1280x800.png" title="Crown Me - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1280x960.png" title="Crown Me - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1280x1024.png" title="Crown Me - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1366x768.png" title="Crown Me - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1400x1050.png" title="Crown Me - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1440x900.png" title="Crown Me - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1600x1200.png" title="Crown Me - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1680x1050.png" title="Crown Me - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1680x1200.png" title="Crown Me - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1920x1080.png" title="Crown Me - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1920x1200.png" title="Crown Me - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1920x1440.png" title="Crown Me - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-2560x1440.png" title="Crown Me - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-3840x2160.png" title="Crown Me - 3840x2160">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" title="Crown Me - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-800x480.png" title="Crown Me - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-800x600.png" title="Crown Me - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1024x768.png" title="Crown Me - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1024x1024.png" title="Crown Me - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1152x864.png" title="Crown Me - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1280x720.png" title="Crown Me - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1280x800.png" title="Crown Me - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1280x960.png" title="Crown Me - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1280x1024.png" title="Crown Me - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1366x768.png" title="Crown Me - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1400x1050.png" title="Crown Me - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1440x900.png" title="Crown Me - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1600x1200.png" title="Crown Me - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1680x1050.png" title="Crown Me - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1680x1200.png" title="Crown Me - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1920x1080.png" title="Crown Me - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1920x1200.png" title="Crown Me - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1920x1440.png" title="Crown Me - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-2560x1440.png" title="Crown Me - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-3840x2160.png" title="Crown Me - 3840x2160">3840x2160</a></li></ul><h2 id="fireside-stories-under-the-stars-11-2025">Fireside Stories Under The Stars</h2><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><figure><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nov-25-fireside-stories-under-the-stars-full.png" title="Fireside Stories Under The Stars"><img alt="Fireside Stories Under The Stars" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-25-fireside-stories-under-the-stars-preview-opt.png"></img></a></figure><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" title="Fireside Stories Under The Stars - Preview">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" title="Fireside Stories Under The Stars - 320x480">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" title="Fireside Stories Under The Stars - 640x480">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" title="Fireside Stories Under The Stars - 800x480">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" title="Fireside Stories Under The Stars - 800x600">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" title="Fireside Stories Under The Stars - 1024x768">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" title="Fireside Stories Under The Stars - 1024x1024">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" title="Fireside Stories Under The Stars - 1152x864">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" title="Fireside Stories Under The Stars - 1280x720">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" title="Fireside Stories Under The Stars - 1280x800">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" title="Fireside Stories Under The Stars - 1280x960">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" title="Fireside Stories Under The Stars - 1280x1024">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" title="Fireside Stories Under The Stars - 1400x1050">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" title="Fireside Stories Under The Stars - 1440x900">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" title="Fireside Stories Under The Stars - 1600x1200">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" title="Fireside Stories Under The Stars - 1680x1050">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" title="Fireside Stories Under The Stars - 1680x1200">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" title="Fireside Stories Under The Stars - 1920x1080">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" title="Fireside Stories Under The Stars - 1920x1200">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" title="Fireside Stories Under The Stars - 1920x1440">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" title="Fireside Stories Under The Stars - 2560x1440">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" title="Fireside Stories Under The Stars - 320x480">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" title="Fireside Stories Under The Stars - 640x480">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" title="Fireside Stories Under The Stars - 800x480">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" title="Fireside Stories Under The Stars - 800x600">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" title="Fireside Stories Under The Stars - 1024x768">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" title="Fireside Stories Under The Stars - 1024x1024">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" title="Fireside Stories Under The Stars - 1152x864">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" title="Fireside Stories Under The Stars - 1280x720">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" title="Fireside Stories Under The Stars - 1280x800">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" title="Fireside Stories Under The Stars - 1280x960">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" title="Fireside Stories Under The Stars - 1280x1024">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" title="Fireside Stories Under The Stars - 1400x1050">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" title="Fireside Stories Under The Stars - 1440x900">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" title="Fireside Stories Under The Stars - 1600x1200">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" title="Fireside Stories Under The Stars - 1680x1050">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" title="Fireside Stories Under The Stars - 1680x1200">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" title="Fireside Stories Under The Stars - 1920x1080">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" title="Fireside Stories Under The Stars - 1920x1200">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" title="Fireside Stories Under The Stars - 1920x1440">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" title="Fireside Stories Under The Stars - 2560x1440">2560x1440</a></li></ul><h2 id="lunchtime-11-2025">Lunchtime</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nov-25-lunchtime-full.png" title="Lunchtime"><img alt="Lunchtime" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-25-lunchtime-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nov-25-lunchtime-preview.png" title="Lunchtime - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-640x480.png" title="Lunchtime - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-800x480.png" title="Lunchtime - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-800x600.png" title="Lunchtime - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1024x768.png" title="Lunchtime - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1024x1024.png" title="Lunchtime - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1152x864.png" title="Lunchtime - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1280x720.png" title="Lunchtime - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1280x800.png" title="Lunchtime - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1280x960.png" title="Lunchtime - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1280x1024.png" title="Lunchtime - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1366x768.png" title="Lunchtime - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1400x1050.png" title="Lunchtime - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1440x900.png" title="Lunchtime - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1600x1200.png" title="Lunchtime - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1680x1050.png" title="Lunchtime - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1680x1200.png" title="Lunchtime - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1920x1080.png" title="Lunchtime - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1920x1200.png" title="Lunchtime - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1920x1440.png" title="Lunchtime - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-2560x1440.png" title="Lunchtime - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-3840x2160.png" title="Lunchtime - 3840x2160">3840x2160</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-640x480.png" title="Lunchtime - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-800x480.png" title="Lunchtime - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-800x600.png" title="Lunchtime - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1024x768.png" title="Lunchtime - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1024x1024.png" title="Lunchtime - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1152x864.png" title="Lunchtime - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1280x720.png" title="Lunchtime - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1280x800.png" title="Lunchtime - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1280x960.png" title="Lunchtime - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1280x1024.png" title="Lunchtime - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1366x768.png" title="Lunchtime - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1400x1050.png" title="Lunchtime - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1440x900.png" title="Lunchtime - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1600x1200.png" title="Lunchtime - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1680x1050.png" title="Lunchtime - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1680x1200.png" title="Lunchtime - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1920x1080.png" title="Lunchtime - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1920x1200.png" title="Lunchtime - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1920x1440.png" title="Lunchtime - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-2560x1440.png" title="Lunchtime - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-3840x2160.png" title="Lunchtime - 3840x2160">3840x2160</a></li></ul><h2 id="where-innovation-meets-design-11-2025">Where Innovation Meets Design</h2><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><figure><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/nov-25-where-innovation-meets-design-full.png" title="Where Innovation Meets Design"><img alt="Where Innovation Meets Design" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-25-where-innovation-meets-design-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/nov-25-where-innovation-meets-design-preview.png" title="Where Innovation Meets Design - Preview">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" title="Where Innovation Meets Design - 800x600">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" title="Where Innovation Meets Design - 1024x768">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" title="Where Innovation Meets Design - 1400x1050">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" title="Where Innovation Meets Design - 1440x900">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" title="Where Innovation Meets Design - 1600x1200">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" title="Where Innovation Meets Design - 1680x1050">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" title="Where Innovation Meets Design - 1920x1080">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" title="Where Innovation Meets Design - 1920x1200">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" title="Where Innovation Meets Design - 1920x1440">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" title="Where Innovation Meets Design - 2560x1440">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" title="Where Innovation Meets Design - 800x600">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" title="Where Innovation Meets Design - 1024x768">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" title="Where Innovation Meets Design - 1400x1050">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" title="Where Innovation Meets Design - 1440x900">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" title="Where Innovation Meets Design - 1600x1200">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" title="Where Innovation Meets Design - 1680x1050">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" title="Where Innovation Meets Design - 1920x1080">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" title="Where Innovation Meets Design - 1920x1200">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" title="Where Innovation Meets Design - 1920x1440">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" title="Where Innovation Meets Design - 2560x1440">2560x1440</a></li></ul><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://www.smashingmagazine.com/printed-books/touch-design-for-mobile-interfaces/"><div><picture><source srcset="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/14bcab88-b622-47f6-a51d-76b0aa003597/touch-design-book-shop-opt.avif" type="image/avif"><img alt="Feature Panel" decoding="async" height="697" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b14658fc-bb2d-41a6-8d1a-70eaaf1b8ec8/touch-design-book-shop-opt.png" width="480"></img></source></picture></div></a></div></aside></div><h2 id="colorful-autumn">Colorful Autumn</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7456c03e-565b-492c-968f-b30e92d5b6e6/nov-17-colorful-autumn-full-opt.png" title="Colorful Autumn"><img alt="Colorful Autumn" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8edeb776-d8d5-4b5b-867f-6964f7addcd6/nov-17-colorful-autumn-preview-opt.png"></img></a></figure><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" title="Colorful Autumn - Preview">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" title="Colorful Autumn - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-640x480.jpg" title="Colorful Autumn - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-800x480.jpg" title="Colorful Autumn - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-800x600.jpg" title="Colorful Autumn - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1024x768.jpg" title="Colorful Autumn - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1024x1024.jpg" title="Colorful Autumn - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1152x864.jpg" title="Colorful Autumn - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1280x720.jpg" title="Colorful Autumn - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1280x800.jpg" title="Colorful Autumn - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1280x960.jpg" title="Colorful Autumn - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1280x1024.jpg" title="Colorful Autumn - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1366x768.jpg" title="Colorful Autumn - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1400x1050.jpg" title="Colorful Autumn - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1440x900.jpg" title="Colorful Autumn - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1600x1200.jpg" title="Colorful Autumn - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1680x1050.jpg" title="Colorful Autumn - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1680x1200.jpg" title="Colorful Autumn - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1920x1080.jpg" title="Colorful Autumn - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1920x1200.jpg" title="Colorful Autumn - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1920x1440.jpg" title="Colorful Autumn - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-2560x1440.jpg" title="Colorful Autumn - 2560x1440">2560x1440</a></li></ul><h2 id="the-secret-cave-11-2024">The Secret Cave</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-24-the-secret-cave-full-opt.png" title="The Secret Cave"><img alt="The Secret Cave" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-24-the-secret-cave-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-24-the-secret-cave-preview-opt.png" title="The Secret Cave - Preview">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" title="The Secret Cave - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-800x480.png" title="The Secret Cave - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-800x600.png" title="The Secret Cave - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1024x768.png" title="The Secret Cave - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1024x1024.png" title="The Secret Cave - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1152x864.png" title="The Secret Cave - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1280x720.png" title="The Secret Cave - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1280x800.png" title="The Secret Cave - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1280x960.png" title="The Secret Cave - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1280x1024.png" title="The Secret Cave - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1366x768.png" title="The Secret Cave - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1400x1050.png" title="The Secret Cave - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1440x900.png" title="The Secret Cave - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1600x1200.png" title="The Secret Cave - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1680x1050.png" title="The Secret Cave - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1680x1200.png" title="The Secret Cave - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1920x1080.png" title="The Secret Cave - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1920x1200.png" title="The Secret Cave - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1920x1440.png" title="The Secret Cave - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-2560x1440.png" title="The Secret Cave - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-3840x2160.png" title="The Secret Cave - 3840x2160">3840x2160</a></li></ul><h2 id="sunset-or-sunrise">Sunset Or Sunrise</h2><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&amp;mldr; does that really matter?” — Designed by <a href="https://www.silocreativo.com/en">Veronica Valenzuela Jimenez</a> from Spain.</p><figure><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" title="Sunset Or Sunrise, What Difference Does It Make?"><img alt="Sunset Or Sunrise, What Difference Does It Make?" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2024/nov-23-sunset-or-sunrise-what-difference-does-it-make-preview-opt.png"></img></a></figure><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" title="Sunset Or Sunrise, What Difference Does It Make? - Preview">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" title="Sunset Or Sunrise, What Difference Does It Make? - 640x480">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" title="Sunset Or Sunrise, What Difference Does It Make? - 800x480">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" title="Sunset Or Sunrise, What Difference Does It Make? - 1024x768">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" title="Sunset Or Sunrise, What Difference Does It Make? - 1280x720">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" title="Sunset Or Sunrise, What Difference Does It Make? - 1280x800">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" title="Sunset Or Sunrise, What Difference Does It Make? - 1440x900">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" title="Sunset Or Sunrise, What Difference Does It Make? - 1600x1200">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" title="Sunset Or Sunrise, What Difference Does It Make? - 1920x1080">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" title="Sunset Or Sunrise, What Difference Does It Make? - 1920x1440">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" title="Sunset Or Sunrise, What Difference Does It Make? - 2560x1440">2560x1440</a></li></ul><h2 id="a-jelly-november">A Jelly November</h2><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><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-a-jelly-november-full-opt.png" title="A Jelly November"><img alt="A Jelly November" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-a-jelly-november-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-a-jelly-november-preview-opt.png" title="A Jelly November - Preview">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" title="A Jelly November - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-640x480.jpg" title="A Jelly November - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-800x480.jpg" title="A Jelly November - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-800x600.jpg" title="A Jelly November - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1024x768.jpg" title="A Jelly November - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1024x1024.jpg" title="A Jelly November - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1152x864.jpg" title="A Jelly November - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1280x720.jpg" title="A Jelly November - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1280x960.jpg" title="A Jelly November - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1280x1024.jpg" title="A Jelly November - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1366x768.jpg" title="A Jelly November - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1440x900.jpg" title="A Jelly November - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1440x1050.jpg" title="A Jelly November - 1440x1050">1440x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1600x1200.jpg" title="A Jelly November - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1680x1050.jpg" title="A Jelly November - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1680x1200.jpg" title="A Jelly November - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1920x1080.jpg" title="A Jelly November - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1920x1200.jpg" title="A Jelly November - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1920x1440.jpg" title="A Jelly November - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-2560x1440.jpg" title="A Jelly November - 2560x1440">2560x1440</a></li></ul><h2 id="winter-is-here">Winter Is Here</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-21-winter-is-here-full-opt.png" title="Winter Is Here"><img alt="Winter Is Here" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-21-winter-is-here-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-21-winter-is-here-preview-opt.png" title="Winter Is Here - Preview">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" title="Winter Is Here - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-800x480.png" title="Winter Is Here - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-800x600.png" title="Winter Is Here - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1024x768.png" title="Winter Is Here - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1024x1024.png" title="Winter Is Here - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1152x864.png" title="Winter Is Here - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1280x720.png" title="Winter Is Here - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1280x800.png" title="Winter Is Here - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1280x960.png" title="Winter Is Here - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1280x1024.png" title="Winter Is Here - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1366x768.png" title="Winter Is Here - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1400x1050.png" title="Winter Is Here - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1440x900.png" title="Winter Is Here - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1600x1200.png" title="Winter Is Here - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1680x1050.png" title="Winter Is Here - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1680x1200.png" title="Winter Is Here - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1920x1080.png" title="Winter Is Here - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1920x1200.png" title="Winter Is Here - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1920x1440.png" title="Winter Is Here - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-2560x1440.png" title="Winter Is Here - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-3840x2160.png" title="Winter Is Here - 3840x2160">3840x2160</a></li></ul><h2 id="moonlight-bats">Moonlight Bats</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/eb930008-f9f2-4640-9da7-8ec4961ef457/nov-16-moonlight-bats-full-opt.png" title="Moonlight Bats"><img alt="Moonlight Bats" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/95ff8287-5ec2-4dd5-b3a8-0b7fc4002451/nov-16-moonlight-bats-preview-opt.png"></img></a></figure><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" title="Moonlight Bats - Preview">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" title="Moonlight Bats - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-800x600.png" title="Moonlight Bats - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1024x768.png" title="Moonlight Bats - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1280x800.png" title="Moonlight Bats - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1280x960.png" title="Moonlight Bats - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1440x900.png" title="Moonlight Bats - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1600x1200.png" title="Moonlight Bats - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1680x1050.png" title="Moonlight Bats - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1680x1260.png" title="Moonlight Bats - 1680x1260">1680x1260</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1920x1200.png" title="Moonlight Bats - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1920x1440.png" title="Moonlight Bats - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-2560x1440.png" title="Moonlight Bats - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-2560x1600.png" title="Moonlight Bats - 2560x1600">2560x1600</a></li></ul><h2 id="time-to-give-thanks">Time To Give Thanks</h2><p>Designed by <a href="http://www.tazi.com.au">Glynnis Owen</a> from Australia.</p><figure><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" title="Time To Give Thanks"><img alt="Time To Give Thanks" 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"></img></a></figure><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" title="Time To Give Thanks - Preview">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" title="Time To Give Thanks - 320x480">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" title="Time To Give Thanks - 640x480">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" title="Time To Give Thanks - 800x600">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" title="Time To Give Thanks - 1024x768">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" title="Time To Give Thanks - 1152x864">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" title="Time To Give Thanks - 1280x720">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" title="Time To Give Thanks - 1280x960">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" title="Time To Give Thanks - 1600x1200">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" title="Time To Give Thanks - 1920x1080">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" title="Time To Give Thanks - 1920x1440">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" title="Time To Give Thanks - 2560x1440">2560x1440</a></li></ul><h2 id="anbani">Anbani</h2><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><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-anbani-full-opt.png" title="Anbani"><img alt="Anbani" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-anbani-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-anbani-preview-opt.png" title="Anbani - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-800x480.jpg" title="Anbani - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-800x600.jpg" title="Anbani - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1024x600.jpg" title="Anbani - 1024x600">1024x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1024x768.jpg" title="Anbani - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1152x864.jpg" title="Anbani - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1280x720.jpg" title="Anbani - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1280x800.jpg" title="Anbani - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1280x960.jpg" title="Anbani - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1280x1024.jpg" title="Anbani - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1366x768.jpg" title="Anbani - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1400x1050.jpg" title="Anbani - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1440x900.jpg" title="Anbani - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1440x960.jpg" title="Anbani - 1440x960">1440x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1600x900.jpg" title="Anbani - 1600x900">1600x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1600x1200.jpg" title="Anbani - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1680x1050.jpg" title="Anbani - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1680x1200.jpg" title="Anbani - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1920x1080.jpg" title="Anbani - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1920x1200.jpg" title="Anbani - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1920x1440.jpg" title="Anbani - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-2560x1440.jpg" title="Anbani - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-2560x1600.jpg" title="Anbani - 2560x1600">2560x1600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-2880x1800.jpg" title="Anbani - 2880x1800">2880x1800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-3072x1920.jpg" title="Anbani - 3072x1920">3072x1920</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-3840x2160.jpg" title="Anbani - 3840x2160">3840x2160</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-5120x2880.jpg" title="Anbani - 5120x2880">5120x2880</a></li></ul><h2 id="me-and-the-key-three">Me And The Key Three</h2><p>Designed by Bart Bonte from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a36659bc-3708-428a-99a8-14f9ecf7d1fd/key-three-full-opt.png" title="Me And The Key Three"><img alt="Me And The Key Three" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/57fb0377-f0ca-4c86-b9ef-a7e70432e798/key-three-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/57fb0377-f0ca-4c86-b9ef-a7e70432e798/key-three-preview-opt.png" title="Me And The Key Three - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/640x480.png" title="Me And The Key Three - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/800x480.png" title="Me And The Key Three - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/800x600.png" title="Me And The Key Three - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1024x768.png" title="Me And The Key Three - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1024x1024.png" title="Me And The Key Three - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1152x864.png" title="Me And The Key Three - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1280x720.png" title="Me And The Key Three - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1280x800.png" title="Me And The Key Three - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1280x960.png" title="Me And The Key Three - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1280x1024.png" title="Me And The Key Three - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1400x1050.png" title="Me And The Key Three - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1440x900.png" title="Me And The Key Three - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1600x1200.png" title="Me And The Key Three - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1680x1050.png" title="Me And The Key Three - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1680x1200.png" title="Me And The Key Three - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1920x1080.png" title="Me And The Key Three - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1920x1200.png" title="Me And The Key Three - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1920x1440.png" title="Me And The Key Three - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/2560x1440.png" title="Me And The Key Three - 2560x1440">2560x1440</a></li></ul><h2 id="outer-space">Outer Space</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2a22c060-701d-45e2-b929-e56fe19d1f00/nov-18-outer-space-full-opt.png" title="Outer Space"><img alt="Outer Space" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a26c1a03-abab-4c75-9825-9c00172ae9a9/nov-18-outer-space-preview-opt.png"></img></a></figure><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" title="Outer Space - Preview">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" title="Outer Space - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-640x480.jpg" title="Outer Space - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-800x480.jpg" title="Outer Space - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-800x600.jpg" title="Outer Space - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1024x768.jpg" title="Outer Space - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1024x1024.jpg" title="Outer Space - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1152x864.jpg" title="Outer Space - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1280x720.jpg" title="Outer Space - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1280x800.jpg" title="Outer Space - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1280x960.jpg" title="Outer Space - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1280x1024.jpg" title="Outer Space - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1366x768.jpg" title="Outer Space - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1400x1050.jpg" title="Outer Space - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1440x900.jpg" title="Outer Space - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1600x1200.jpg" title="Outer Space - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1680x1050.jpg" title="Outer Space - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1680x1200.jpg" title="Outer Space - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1920x1080.jpg" title="Outer Space - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1920x1200.jpg" title="Outer Space - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1920x1440.jpg" title="Outer Space - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-2560x1440.jpg" title="Outer Space - 2560x1440">2560x1440</a></li></ul><h2 id="captain-s-home">Captain’s Home</h2><p>Designed by Elise Vanoorbeek from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e7992aa7-576e-4bdb-9219-00c71f9aa330/nov-15-captains-home-full.png" title="Captain’s Home"><img alt="Captain’s Home" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1674ac88-6294-46eb-a184-417dec461c3e/nov-15-captains-home-preview-opt.png"></img></a></figure><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" title="Captain’s Home - Preview">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" title="Captain’s Home - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1152x864.jpg" title="Captain’s Home - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1280x720.jpg" title="Captain’s Home - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1280x800.jpg" title="Captain’s Home - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1280x960.jpg" title="Captain’s Home - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1280x1024.jpg" title="Captain’s Home - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1366x768.jpg" title="Captain’s Home - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1400x1050.jpg" title="Captain’s Home - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1440x900.jpg" title="Captain’s Home - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1600x1200.jpg" title="Captain’s Home - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1680x1050.jpg" title="Captain’s Home - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1680x1200.jpg" title="Captain’s Home - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1920x1080.jpg" title="Captain’s Home - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1920x1200.jpg" title="Captain’s Home - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1920x1440.jpg" title="Captain’s Home - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-2560x1440.jpg" title="Captain’s Home - 2560x1440">2560x1440</a></li></ul><h2 id="deer-fall-i-love-you">Deer Fall, I Love You</h2><p>Designed by Maria Porter from the United States.</p><figure><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" title="Deer Fall, I Love You!"><img alt="Deer Fall, I Love You!" 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"></img></a></figure><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" title="Deer Fall, I Love You! - Preview">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" title="Deer Fall, I Love You! - 320x480">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" title="Deer Fall, I Love You! - 800x600">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" title="Deer Fall, I Love You! - 1280x800">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" title="Deer Fall, I Love You! - 1280x1024">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" title="Deer Fall, I Love You! - 1440x900">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" title="Deer Fall, I Love You! - 1680x1050">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" title="Deer Fall, I Love You! - 2560x1440">2560x1440</a></li></ul><h2 id="holiday-season-is-approaching">Holiday Season Is Approaching</h2><p>Designed by <a href="https://activecollab.com">ActiveCollab</a> from the United States.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2024/nov-21-holiday-season-is-approaching-full-opt.png" title="Holiday Season Is Approaching"><img alt="Holiday Season Is Approaching" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2024/nov-21-holiday-season-is-approaching-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2024/nov-21-holiday-season-is-approaching-preview-opt.png" title="Holiday Season Is Approaching - Preview">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" title="Holiday Season Is Approaching - 1080x1920">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" title="Holiday Season Is Approaching - 1400x1050">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" title="Holiday Season Is Approaching - 1440x900">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" title="Holiday Season Is Approaching - 1600x1200">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" title="Holiday Season Is Approaching - 1680x1200">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" title="Holiday Season Is Approaching - 1920x1080">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" title="Holiday Season Is Approaching - 1920x1200">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" title="Holiday Season Is Approaching - 1920x1440">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" title="Holiday Season Is Approaching - 2560x1440">2560x1440</a></li></ul><h2 id="international-civil-aviation-day">International Civil Aviation Day</h2><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><figure><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" title="International Civil Aviation Day"><img alt="International Civil Aviation Day" 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"></img></a></figure><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" title="International Civil Aviation Day - Preview">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" title="International Civil Aviation Day - 320x480">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" title="International Civil Aviation Day - 640x480">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" title="International Civil Aviation Day - 800x480">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" title="International Civil Aviation Day - 800x600">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" title="International Civil Aviation Day - 1024x768">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" title="International Civil Aviation Day - 1024x1024">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" title="International Civil Aviation Day - 1152x864">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" title="International Civil Aviation Day - 1280x720">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" title="International Civil Aviation Day - 1280x800">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" title="International Civil Aviation Day - 1280x960">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" title="International Civil Aviation Day - 1280x1024">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" title="International Civil Aviation Day - 1400x1050">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" title="International Civil Aviation Day - 1440x900">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" title="International Civil Aviation Day - 1600x1200">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" title="International Civil Aviation Day - 1680x1050">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" title="International Civil Aviation Day - 1680x1200">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" title="International Civil Aviation Day - 1920x1080">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" title="International Civil Aviation Day - 1920x1200">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" title="International Civil Aviation Day - 1920x1440">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" title="International Civil Aviation Day - 2560x1440">2560x1440</a></li></ul><h2 id="peanut-butter-jelly-time">Peanut Butter Jelly Time</h2><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><figure><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" title="Peanut Butter Jelly Time!"><img alt="Peanut Butter Jelly Time!" 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"></img></a></figure><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" title="Peanut Butter Jelly Time! - Preview">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" title="Peanut Butter Jelly Time! - 320x480">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" title="Peanut Butter Jelly Time! - 1280x720">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" title="Peanut Butter Jelly Time! - 1280x800">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" title="Peanut Butter Jelly Time! - 1280x1024">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" title="Peanut Butter Jelly Time! - 1920x1080">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" title="Peanut Butter Jelly Time! - 2560x1440">2560x1440</a></li></ul><h2 id="a-gentlemans-november">A Gentleman’s November</h2><p>Designed by Cedric Bloem from Belgium.</p><figure><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" title="A Gentleman's November"><img alt="A Gentleman's November" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/44b45307-6330-4e5a-bf33-9784777f2dda/nov-14-a-gents-november-preview-opt.png"></img></a></figure><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" title="A Gentleman's November - Preview">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" title="A Gentleman's November - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-640x480.png" title="A Gentleman's November - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-800x480.png" title="A Gentleman's November - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-800x600.png" title="A Gentleman's November - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1024x768.png" title="A Gentleman's November - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1024x1024.png" title="A Gentleman's November - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1152x864.png" title="A Gentleman's November - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1280x720.png" title="A Gentleman's November - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1280x800.png" title="A Gentleman's November - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1280x960.png" title="A Gentleman's November - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1280x1024.png" title="A Gentleman's November - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1400x1050.png" title="A Gentleman's November - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1440x900.png" title="A Gentleman's November - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1600x1200.png" title="A Gentleman's November - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1680x1050.png" title="A Gentleman's November - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1680x1200.png" title="A Gentleman's November - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1920x1080.png" title="A Gentleman's November - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1920x1200.png" title="A Gentleman's November - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1920x1440.png" title="A Gentleman's November - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-2560x1440.png" title="A Gentleman's November - 2560x1440">2560x1440</a></li></ul><h2 id="bug">Bug</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-23-bug-full-opt.png" title="Bug"><img alt="Bug" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-23-bug-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-23-bug-preview-opt.png" title="Bug - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-640x480.png" title="Bug - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-800x480.png" title="Bug - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-800x600.png" title="Bug - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1024x768.png" title="Bug - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1024x1024.png" title="Bug - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1152x864.png" title="Bug - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1280x720.png" title="Bug - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1280x800.png" title="Bug - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1280x960.png" title="Bug - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1280x1024.png" title="Bug - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1366x768.png" title="Bug - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1400x1050.png" title="Bug - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1440x900.png" title="Bug - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1600x1200.png" title="Bug - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1680x1050.png" title="Bug - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1680x1200.png" title="Bug - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1920x1080.png" title="Bug - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1920x1200.png" title="Bug - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1920x1440.png" title="Bug - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-2560x1440.png" title="Bug - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-3840x2160.png" title="Bug - 3840x2160">3840x2160</a></li></ul><h2 id="go-to-japan">Go To Japan</h2><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><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-21-go-to-japan-full-opt.png" title="Go To Japan"><img alt="Go To Japan" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-21-go-to-japan-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-21-go-to-japan-preview-opt.png" title="Go To Japan - Preview">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" title="Go To Japan - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-800x480.png" title="Go To Japan - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1024x768.png" title="Go To Japan - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1280x720.png" title="Go To Japan - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1280x800.png" title="Go To Japan - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1440x900.png" title="Go To Japan - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1600x1200.png" title="Go To Japan - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1920x1080.png" title="Go To Japan - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1920x1440.png" title="Go To Japan - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-2560x1440.png" title="Go To Japan - 2560x1440">2560x1440</a></li></ul><h2 id="the-kind-soul">The Kind Soul</h2><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><figure><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" title="The Kind Soul"><img alt="The Kind Soul" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f00ee114-6db4-4f83-9877-1827113c2276/nov-17-the-kind-soul-preview-opt.png"></img></a></figure><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" title="The Kind Soul - Preview">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" title="The Kind Soul - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-640x480.jpg" title="The Kind Soul - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-800x480.jpg" title="The Kind Soul - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-800x600.jpg" title="The Kind Soul - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1024x768.jpg" title="The Kind Soul - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1024x1024.jpg" title="The Kind Soul - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1152x864.jpg" title="The Kind Soul - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1280x720.jpg" title="The Kind Soul - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1280x800.jpg" title="The Kind Soul - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1280x960.jpg" title="The Kind Soul - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1280x1024.jpg" title="The Kind Soul - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1366x768.jpg" title="The Kind Soul - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1400x1050.jpg" title="The Kind Soul - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1440x900.jpg" title="The Kind Soul - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1600x1200.jpg" title="The Kind Soul - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1680x1050.jpg" title="The Kind Soul - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1680x1200.jpg" title="The Kind Soul - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1920x1080.jpg" title="The Kind Soul - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1920x1200.jpg" title="The Kind Soul - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1920x1440.jpg" title="The Kind Soul - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-2560x1440.jpg" title="The Kind Soul - 2560x1440">2560x1440</a></li></ul><h2 id="mushroom-season">Mushroom Season</h2><p>“It is autumn! It is raining and thus&amp;mldr; 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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e1775c95-1c88-47e9-abe3-010b7d9c4dc0/nov-15-mushroom-season-full.png" title="Mushroom Season!"><img alt="Mushroom Season!" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2f07e2f6-0387-44d5-b7c0-361acbb3f022/nov-15-mushroom-season-preview-opt.png"></img></a></figure><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" title="Mushroom Season! - Preview">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" title="Mushroom Season! - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1024x768.png" title="Mushroom Season! - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1152x864.png" title="Mushroom Season! - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1280x800.png" title="Mushroom Season! - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1280x960.png" title="Mushroom Season! - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1440x900.png" title="Mushroom Season! - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1680x1200.png" title="Mushroom Season! - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1920x1080.png" title="Mushroom Season! - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-2560x1440.png" title="Mushroom Season! - 2560x1440">2560x1440</a></li></ul><h2 id="tempestuous-november">Tempestuous November</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5e17adda-4fc7-4ad5-9328-e364e52a0075/nov-17-tempestuous-november-full-opt.png" title="Tempestuous November"><img alt="Tempestuous November" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6aa9d7e3-e1b8-48dd-9dcb-25eaf0ba1229/nov-17-tempestuous-november-preview-opt.png"></img></a></figure><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" title="Tempestuous November - Preview">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" title="Tempestuous November - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-640x480.png" title="Tempestuous November - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-800x480.png" title="Tempestuous November - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-800x600.png" title="Tempestuous November - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1024x768.png" title="Tempestuous November - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1024x1024.png" title="Tempestuous November - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1152x864.png" title="Tempestuous November - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1280x720.png" title="Tempestuous November - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1280x800.png" title="Tempestuous November - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1280x960.png" title="Tempestuous November - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1280x1024.png" title="Tempestuous November - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1400x1050.png" title="Tempestuous November - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1440x900.png" title="Tempestuous November - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1600x1200.png" title="Tempestuous November - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1680x1050.png" title="Tempestuous November - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1680x1200.png" title="Tempestuous November - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1920x1080.png" title="Tempestuous November - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1920x1200.png" title="Tempestuous November - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1920x1440.png" title="Tempestuous November - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-2560x1440.png" title="Tempestuous November - 2560x1440">2560x1440</a></li></ul><h2 id="cozy-autumn-cups-and-cute-pumpkins">Cozy Autumn Cups And Cute Pumpkins</h2><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><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-cozy-autumn-cups-and-cute-pumpkins-full-opt.png" title="Cozy Autumn Cups And Cute Pumpkins"><img alt="Cozy Autumn Cups And Cute Pumpkins" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-cozy-autumn-cups-and-cute-pumpkins-preview-opt.png"></img></a></figure><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" title="Cozy Autumn Cups And Cute Pumpkins - Preview">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" title="Cozy Autumn Cups And Cute Pumpkins - 320x480">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" title="Cozy Autumn Cups And Cute Pumpkins - 640x480">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" title="Cozy Autumn Cups And Cute Pumpkins - 800x480">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" title="Cozy Autumn Cups And Cute Pumpkins - 800x600">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" title="Cozy Autumn Cups And Cute Pumpkins - 1024x768">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" title="Cozy Autumn Cups And Cute Pumpkins - 1024x1024">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" title="Cozy Autumn Cups And Cute Pumpkins - 1152x864">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" title="Cozy Autumn Cups And Cute Pumpkins - 1280x720">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" title="Cozy Autumn Cups And Cute Pumpkins - 1280x800">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" title="Cozy Autumn Cups And Cute Pumpkins - 1280x960">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" title="Cozy Autumn Cups And Cute Pumpkins - 1280x1024">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" title="Cozy Autumn Cups And Cute Pumpkins - 1366x768">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" title="Cozy Autumn Cups And Cute Pumpkins - 1400x1050">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" title="Cozy Autumn Cups And Cute Pumpkins - 1440x900">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" title="Cozy Autumn Cups And Cute Pumpkins - 1600x1200">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" title="Cozy Autumn Cups And Cute Pumpkins - 1680x1050">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" title="Cozy Autumn Cups And Cute Pumpkins - 1680x1200">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" title="Cozy Autumn Cups And Cute Pumpkins - 1920x1080">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" title="Cozy Autumn Cups And Cute Pumpkins - 1920x1200">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" title="Cozy Autumn Cups And Cute Pumpkins - 1920x1440">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" title="Cozy Autumn Cups And Cute Pumpkins - 2560x1440">2560x1440</a></li></ul><h2 id="november-nights-on-mountains">November Nights On Mountains</h2><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><figure><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" title="November Nights On Mountains"><img alt="November Nights On Mountains" 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"></img></a></figure><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" title="November Nights On Mountains - Preview">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" title="November Nights On Mountains - 320x480">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" title="November Nights On Mountains - 640x480">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" title="November Nights On Mountains - 800x480">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" title="November Nights On Mountains - 800x600">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" title="November Nights On Mountains - 1024x768">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" title="November Nights On Mountains - 1024x1024">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" title="November Nights On Mountains - 1152x864">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" title="November Nights On Mountains - 1280x720">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" title="November Nights On Mountains - 1280x800">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" title="November Nights On Mountains - 1280x1024">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" title="November Nights On Mountains - 1366x768">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" title="November Nights On Mountains - 1400x1050">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" title="November Nights On Mountains - 1440x900">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" title="November Nights On Mountains - 1600x1200">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" title="November Nights On Mountains - 1680x1050">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" title="November Nights On Mountains - 1680x1200">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" title="November Nights On Mountains - 1920x1080">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" title="November Nights On Mountains - 1920x1200">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" title="November Nights On Mountains - 1920x1440">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" title="November Nights On Mountains - 2560x1440">2560x1440</a></li></ul><h2 id="coco-chanel">Coco Chanel</h2><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><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-17-coco-chanel-full-opt.png" title="Coco Chanel"><img alt="Coco Chanel" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-17-coco-chanel-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-17-coco-chanel-preview-opt.png" title="Coco Chanel - Preview">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" title="Coco Chanel - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-640x480.png" title="Coco Chanel - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-800x600.png" title="Coco Chanel - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1024x768.png" title="Coco Chanel - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1152x864.png" title="Coco Chanel - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1280x720.png" title="Coco Chanel - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1280x960.png" title="Coco Chanel - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1600x1200.png" title="Coco Chanel - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1920x1080.png" title="Coco Chanel - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1920x1440.png" title="Coco Chanel - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-2560x1440.png" title="Coco Chanel - 2560x1440">2560x1440</a></li></ul><h2 id="stars">Stars</h2><p>“I don’t know anyone who hasn’t enjoyed a cold night looking at the stars.” — Designed by Ema Rede from Portugal.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a5b13015-b6a8-4381-b8a3-471ab56ce47a/nov-18-stars-full-opt.png" title="Stars"><img alt="Stars" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c0e12314-b103-46e0-9c85-55a6e7531d0d/nov-18-stars-preview-opt.png"></img></a></figure><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" title="Stars - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-18/stars/nocal/nov-18-stars-nocal-1600x1200.png" title="Stars - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/stars/nocal/nov-18-stars-nocal-1680x1050.png" title="Stars - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/stars/nocal/nov-18-stars-nocal-1680x1200.png" title="Stars - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/stars/nocal/nov-18-stars-nocal-1920x1080.png" title="Stars - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/stars/nocal/nov-18-stars-nocal-1920x1200.png" title="Stars - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/stars/nocal/nov-18-stars-nocal-1920x1440.png" title="Stars - 1920x1440">1920x1440</a></li></ul><h2 id="welcome-home-dear-winter">Welcome Home Dear Winter</h2><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><figure><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" title="Welcome Home Dear Winter"><img alt="Welcome Home Dear Winter" 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"></img></a></figure><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" title="Welcome Home Dear Winter - Preview">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" title="Welcome Home Dear Winter - 640x480">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" title="Welcome Home Dear Winter - 800x480">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" title="Welcome Home Dear Winter - 800x600">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" title="Welcome Home Dear Winter - 1024x768">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" title="Welcome Home Dear Winter - 1024x1024">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" title="Welcome Home Dear Winter - 1152x864">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" title="Welcome Home Dear Winter - 1280x720">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" title="Welcome Home Dear Winter - 1280x960">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" title="Welcome Home Dear Winter - 1280x1024">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" title="Welcome Home Dear Winter - 1366x768">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" title="Welcome Home Dear Winter - 1400x1050">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" title="Welcome Home Dear Winter - 1440x900">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" title="Welcome Home Dear Winter - 1600x1200">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" title="Welcome Home Dear Winter - 1680x1050">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" title="Welcome Home Dear Winter - 1680x1200">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" title="Welcome Home Dear Winter - 1920x1080">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" title="Welcome Home Dear Winter - 1920x1200">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" title="Welcome Home Dear Winter - 1920x1440">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" title="Welcome Home Dear Winter - 2560x1440">2560x1440</a></li></ul><h2 id="happy-birthday-c-s-lewis">Happy Birthday C.S.Lewis!</h2><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><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-17-happy-birthday-cslewis-full-opt.png" title="Happy Birthday C.S.Lewis!"><img alt="Happy Birthday C.S.Lewis!" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-17-happy-birthday-cslewis-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-17-happy-birthday-cslewis-preview-opt.png" title="Happy Birthday C.S.Lewis! - Preview">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" title="Happy Birthday C.S.Lewis! - 800x450">800x450</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-1280x720.png" title="Happy Birthday C.S.Lewis! - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-1366x768.png" title="Happy Birthday C.S.Lewis! - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-1440x810.png" title="Happy Birthday C.S.Lewis! - 1440x810">1440x810</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-1600x900.png" title="Happy Birthday C.S.Lewis! - 1600x900">1600x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-1680x945.png" title="Happy Birthday C.S.Lewis! - 1680x945">1680x945</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-1920x1080.png" title="Happy Birthday C.S.Lewis! - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-2560x1440.png" title="Happy Birthday C.S.Lewis! - 2560x1440">2560x1440</a></li></ul><h2 id="autumn-choir">Autumn Choir</h2><p>Designed by <a href="https://hatcherscreative.com">Hatchers</a> from Ukraine / China.</p><figure><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 alt="Autumn Choir" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2d95a969-aa84-468f-ac37-5be03c51820d/november-12-autumn-choir-99-preview-opt.png"></img></a></figure><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><h2 id="star-wars">Star Wars</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-22-star-wars-full-opt.png" title="Star Wars"><img alt="Star Wars" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-22-star-wars-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-22-star-wars-preview-opt.png" title="Star Wars - Preview">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" title="Star Wars - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-800x480.png" title="Star Wars - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-800x600.png" title="Star Wars - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1024x768.png" title="Star Wars - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1024x1024.png" title="Star Wars - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1152x864.png" title="Star Wars - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1280x720.png" title="Star Wars - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1280x800.png" title="Star Wars - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1280x960.png" title="Star Wars - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1280x1024.png" title="Star Wars - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1366x768.png" title="Star Wars - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1400x1050.png" title="Star Wars - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1440x900.png" title="Star Wars - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1600x1200.png" title="Star Wars - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1680x1050.png" title="Star Wars - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1680x1200.png" title="Star Wars - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1920x1080.png" title="Star Wars - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1920x1200.png" title="Star Wars - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1920x1440.png" title="Star Wars - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-2560x1440.png" title="Star Wars - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-3840x2160.png" title="Star Wars - 3840x2160">3840x2160</a></li></ul><h2 id="hello-world-happy-november">Hello World, Happy November</h2><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><figure><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" title="Hello world, happy November!"><img alt="Hello world, happy November!" 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"></img></a></figure><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" title="Hello world, happy November! - Preview">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" title="Hello world, happy November! - 640x480">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" title="Hello world, happy November! - 800x480">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" title="Hello world, happy November! - 800x600">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" title="Hello world, happy November! - 1024x768">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" title="Hello world, happy November! - 1024x1024">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" title="Hello world, happy November! - 1152x864">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" title="Hello world, happy November! - 1280x720">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" title="Hello world, happy November! - 1280x800">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" title="Hello world, happy November! - 1280x960">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" title="Hello world, happy November! - 1280x1024">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" title="Hello world, happy November! - 1400x1050">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" title="Hello world, happy November! - 1440x900">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" title="Hello world, happy November! - 1600x1200">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" title="Hello world, happy November! - 1680x1050">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" title="Hello world, happy November! - 1680x1200">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" title="Hello world, happy November! - 1920x1080">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" title="Hello world, happy November! - 1920x1200">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" title="Hello world, happy November! - 1920x1440">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" title="Hello world, happy November! - 2560x1440">2560x1440</a></li></ul><h2 id="get-featured-next-month">Get Featured Next Month</h2><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></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <h1>Fading Light And Falling Leaves (November 2025 Wallpapers Edition) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>11 min read</li><li><a href="http://www.smashingmagazine.com/category/wallpapers">Wallpapers</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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!</section></p><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><h2 id="falling-into-november-11-2025">Falling Into November</h2><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><figure><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nov-25-falling-into-november-full.png" title="Falling Into November"><img alt="Falling Into November" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-25-falling-into-november-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nov-25-falling-into-november-preview.png" title="Falling Into November - Preview">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" title="Falling Into November - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-640x480.png" title="Falling Into November - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-800x480.png" title="Falling Into November - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-800x600.png" title="Falling Into November - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1024x768.png" title="Falling Into November - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1024x1024.png" title="Falling Into November - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1152x864.png" title="Falling Into November - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1280x720.png" title="Falling Into November - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1280x800.png" title="Falling Into November - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1280x960.png" title="Falling Into November - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1280x1024.png" title="Falling Into November - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1400x1050.png" title="Falling Into November - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1440x900.png" title="Falling Into November - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1600x1200.png" title="Falling Into November - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1680x1050.png" title="Falling Into November - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1920x1080.png" title="Falling Into November - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1920x1200.png" title="Falling Into November - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-1920x1440.png" title="Falling Into November - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/cal/nov-25-falling-into-november-cal-2560x1440.png" title="Falling Into November - 2560x1440">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" title="Falling Into November - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-640x480.png" title="Falling Into November - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-800x480.png" title="Falling Into November - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-800x600.png" title="Falling Into November - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1024x768.png" title="Falling Into November - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1024x1024.png" title="Falling Into November - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1152x864.png" title="Falling Into November - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1280x720.png" title="Falling Into November - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1280x800.png" title="Falling Into November - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1280x960.png" title="Falling Into November - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1280x1024.png" title="Falling Into November - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1400x1050.png" title="Falling Into November - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1440x900.png" title="Falling Into November - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1600x1200.png" title="Falling Into November - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1680x1050.png" title="Falling Into November - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1920x1080.png" title="Falling Into November - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1920x1200.png" title="Falling Into November - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-1920x1440.png" title="Falling Into November - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/falling-into-november/nocal/nov-25-falling-into-november-nocal-2560x1440.png" title="Falling Into November - 2560x1440">2560x1440</a></li></ul><h2 id="crown-me-11-2025">Crown Me</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nov-25-crown-me-full.png" title="Crown Me"><img alt="Crown Me" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-25-crown-me-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nov-25-crown-me-preview.png" title="Crown Me - Preview">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" title="Crown Me - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-800x480.png" title="Crown Me - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-800x600.png" title="Crown Me - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1024x768.png" title="Crown Me - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1024x1024.png" title="Crown Me - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1152x864.png" title="Crown Me - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1280x720.png" title="Crown Me - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1280x800.png" title="Crown Me - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1280x960.png" title="Crown Me - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1280x1024.png" title="Crown Me - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1366x768.png" title="Crown Me - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1400x1050.png" title="Crown Me - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1440x900.png" title="Crown Me - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1600x1200.png" title="Crown Me - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1680x1050.png" title="Crown Me - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1680x1200.png" title="Crown Me - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1920x1080.png" title="Crown Me - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1920x1200.png" title="Crown Me - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-1920x1440.png" title="Crown Me - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-2560x1440.png" title="Crown Me - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/cal/nov-25-crown-me-cal-3840x2160.png" title="Crown Me - 3840x2160">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" title="Crown Me - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-800x480.png" title="Crown Me - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-800x600.png" title="Crown Me - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1024x768.png" title="Crown Me - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1024x1024.png" title="Crown Me - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1152x864.png" title="Crown Me - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1280x720.png" title="Crown Me - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1280x800.png" title="Crown Me - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1280x960.png" title="Crown Me - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1280x1024.png" title="Crown Me - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1366x768.png" title="Crown Me - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1400x1050.png" title="Crown Me - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1440x900.png" title="Crown Me - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1600x1200.png" title="Crown Me - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1680x1050.png" title="Crown Me - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1680x1200.png" title="Crown Me - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1920x1080.png" title="Crown Me - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1920x1200.png" title="Crown Me - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-1920x1440.png" title="Crown Me - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-2560x1440.png" title="Crown Me - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/crown-me/nocal/nov-25-crown-me-nocal-3840x2160.png" title="Crown Me - 3840x2160">3840x2160</a></li></ul><h2 id="fireside-stories-under-the-stars-11-2025">Fireside Stories Under The Stars</h2><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><figure><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/fireside-stories-under-the-stars/nov-25-fireside-stories-under-the-stars-full.png" title="Fireside Stories Under The Stars"><img alt="Fireside Stories Under The Stars" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-25-fireside-stories-under-the-stars-preview-opt.png"></img></a></figure><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" title="Fireside Stories Under The Stars - Preview">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" title="Fireside Stories Under The Stars - 320x480">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" title="Fireside Stories Under The Stars - 640x480">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" title="Fireside Stories Under The Stars - 800x480">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" title="Fireside Stories Under The Stars - 800x600">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" title="Fireside Stories Under The Stars - 1024x768">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" title="Fireside Stories Under The Stars - 1024x1024">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" title="Fireside Stories Under The Stars - 1152x864">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" title="Fireside Stories Under The Stars - 1280x720">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" title="Fireside Stories Under The Stars - 1280x800">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" title="Fireside Stories Under The Stars - 1280x960">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" title="Fireside Stories Under The Stars - 1280x1024">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" title="Fireside Stories Under The Stars - 1400x1050">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" title="Fireside Stories Under The Stars - 1440x900">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" title="Fireside Stories Under The Stars - 1600x1200">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" title="Fireside Stories Under The Stars - 1680x1050">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" title="Fireside Stories Under The Stars - 1680x1200">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" title="Fireside Stories Under The Stars - 1920x1080">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" title="Fireside Stories Under The Stars - 1920x1200">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" title="Fireside Stories Under The Stars - 1920x1440">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" title="Fireside Stories Under The Stars - 2560x1440">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" title="Fireside Stories Under The Stars - 320x480">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" title="Fireside Stories Under The Stars - 640x480">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" title="Fireside Stories Under The Stars - 800x480">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" title="Fireside Stories Under The Stars - 800x600">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" title="Fireside Stories Under The Stars - 1024x768">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" title="Fireside Stories Under The Stars - 1024x1024">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" title="Fireside Stories Under The Stars - 1152x864">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" title="Fireside Stories Under The Stars - 1280x720">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" title="Fireside Stories Under The Stars - 1280x800">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" title="Fireside Stories Under The Stars - 1280x960">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" title="Fireside Stories Under The Stars - 1280x1024">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" title="Fireside Stories Under The Stars - 1400x1050">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" title="Fireside Stories Under The Stars - 1440x900">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" title="Fireside Stories Under The Stars - 1600x1200">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" title="Fireside Stories Under The Stars - 1680x1050">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" title="Fireside Stories Under The Stars - 1680x1200">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" title="Fireside Stories Under The Stars - 1920x1080">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" title="Fireside Stories Under The Stars - 1920x1200">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" title="Fireside Stories Under The Stars - 1920x1440">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" title="Fireside Stories Under The Stars - 2560x1440">2560x1440</a></li></ul><h2 id="lunchtime-11-2025">Lunchtime</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nov-25-lunchtime-full.png" title="Lunchtime"><img alt="Lunchtime" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-25-lunchtime-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nov-25-lunchtime-preview.png" title="Lunchtime - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-640x480.png" title="Lunchtime - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-800x480.png" title="Lunchtime - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-800x600.png" title="Lunchtime - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1024x768.png" title="Lunchtime - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1024x1024.png" title="Lunchtime - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1152x864.png" title="Lunchtime - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1280x720.png" title="Lunchtime - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1280x800.png" title="Lunchtime - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1280x960.png" title="Lunchtime - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1280x1024.png" title="Lunchtime - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1366x768.png" title="Lunchtime - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1400x1050.png" title="Lunchtime - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1440x900.png" title="Lunchtime - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1600x1200.png" title="Lunchtime - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1680x1050.png" title="Lunchtime - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1680x1200.png" title="Lunchtime - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1920x1080.png" title="Lunchtime - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1920x1200.png" title="Lunchtime - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-1920x1440.png" title="Lunchtime - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-2560x1440.png" title="Lunchtime - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/cal/nov-25-lunchtime-cal-3840x2160.png" title="Lunchtime - 3840x2160">3840x2160</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-640x480.png" title="Lunchtime - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-800x480.png" title="Lunchtime - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-800x600.png" title="Lunchtime - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1024x768.png" title="Lunchtime - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1024x1024.png" title="Lunchtime - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1152x864.png" title="Lunchtime - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1280x720.png" title="Lunchtime - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1280x800.png" title="Lunchtime - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1280x960.png" title="Lunchtime - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1280x1024.png" title="Lunchtime - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1366x768.png" title="Lunchtime - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1400x1050.png" title="Lunchtime - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1440x900.png" title="Lunchtime - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1600x1200.png" title="Lunchtime - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1680x1050.png" title="Lunchtime - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1680x1200.png" title="Lunchtime - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1920x1080.png" title="Lunchtime - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1920x1200.png" title="Lunchtime - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-1920x1440.png" title="Lunchtime - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-2560x1440.png" title="Lunchtime - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/lunchtime/nocal/nov-25-lunchtime-nocal-3840x2160.png" title="Lunchtime - 3840x2160">3840x2160</a></li></ul><h2 id="where-innovation-meets-design-11-2025">Where Innovation Meets Design</h2><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><figure><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/nov-25-where-innovation-meets-design-full.png" title="Where Innovation Meets Design"><img alt="Where Innovation Meets Design" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-25-where-innovation-meets-design-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/nov-25/where-innovation-meets-design/nov-25-where-innovation-meets-design-preview.png" title="Where Innovation Meets Design - Preview">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" title="Where Innovation Meets Design - 800x600">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" title="Where Innovation Meets Design - 1024x768">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" title="Where Innovation Meets Design - 1400x1050">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" title="Where Innovation Meets Design - 1440x900">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" title="Where Innovation Meets Design - 1600x1200">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" title="Where Innovation Meets Design - 1680x1050">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" title="Where Innovation Meets Design - 1920x1080">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" title="Where Innovation Meets Design - 1920x1200">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" title="Where Innovation Meets Design - 1920x1440">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" title="Where Innovation Meets Design - 2560x1440">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" title="Where Innovation Meets Design - 800x600">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" title="Where Innovation Meets Design - 1024x768">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" title="Where Innovation Meets Design - 1400x1050">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" title="Where Innovation Meets Design - 1440x900">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" title="Where Innovation Meets Design - 1600x1200">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" title="Where Innovation Meets Design - 1680x1050">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" title="Where Innovation Meets Design - 1920x1080">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" title="Where Innovation Meets Design - 1920x1200">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" title="Where Innovation Meets Design - 1920x1440">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" title="Where Innovation Meets Design - 2560x1440">2560x1440</a></li></ul><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://www.smashingmagazine.com/printed-books/touch-design-for-mobile-interfaces/"><div><picture><source srcset="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/14bcab88-b622-47f6-a51d-76b0aa003597/touch-design-book-shop-opt.avif" type="image/avif"><img alt="Feature Panel" decoding="async" height="697" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b14658fc-bb2d-41a6-8d1a-70eaaf1b8ec8/touch-design-book-shop-opt.png" width="480"></img></source></picture></div></a></div></aside></div><h2 id="colorful-autumn">Colorful Autumn</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7456c03e-565b-492c-968f-b30e92d5b6e6/nov-17-colorful-autumn-full-opt.png" title="Colorful Autumn"><img alt="Colorful Autumn" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8edeb776-d8d5-4b5b-867f-6964f7addcd6/nov-17-colorful-autumn-preview-opt.png"></img></a></figure><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" title="Colorful Autumn - Preview">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" title="Colorful Autumn - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-640x480.jpg" title="Colorful Autumn - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-800x480.jpg" title="Colorful Autumn - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-800x600.jpg" title="Colorful Autumn - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1024x768.jpg" title="Colorful Autumn - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1024x1024.jpg" title="Colorful Autumn - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1152x864.jpg" title="Colorful Autumn - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1280x720.jpg" title="Colorful Autumn - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1280x800.jpg" title="Colorful Autumn - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1280x960.jpg" title="Colorful Autumn - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1280x1024.jpg" title="Colorful Autumn - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1366x768.jpg" title="Colorful Autumn - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1400x1050.jpg" title="Colorful Autumn - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1440x900.jpg" title="Colorful Autumn - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1600x1200.jpg" title="Colorful Autumn - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1680x1050.jpg" title="Colorful Autumn - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1680x1200.jpg" title="Colorful Autumn - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1920x1080.jpg" title="Colorful Autumn - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1920x1200.jpg" title="Colorful Autumn - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-1920x1440.jpg" title="Colorful Autumn - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/colorful-autumn/nocal/nov-17-colorful-autumn-nocal-2560x1440.jpg" title="Colorful Autumn - 2560x1440">2560x1440</a></li></ul><h2 id="the-secret-cave-11-2024">The Secret Cave</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-24-the-secret-cave-full-opt.png" title="The Secret Cave"><img alt="The Secret Cave" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-24-the-secret-cave-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-24-the-secret-cave-preview-opt.png" title="The Secret Cave - Preview">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" title="The Secret Cave - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-800x480.png" title="The Secret Cave - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-800x600.png" title="The Secret Cave - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1024x768.png" title="The Secret Cave - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1024x1024.png" title="The Secret Cave - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1152x864.png" title="The Secret Cave - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1280x720.png" title="The Secret Cave - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1280x800.png" title="The Secret Cave - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1280x960.png" title="The Secret Cave - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1280x1024.png" title="The Secret Cave - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1366x768.png" title="The Secret Cave - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1400x1050.png" title="The Secret Cave - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1440x900.png" title="The Secret Cave - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1600x1200.png" title="The Secret Cave - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1680x1050.png" title="The Secret Cave - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1680x1200.png" title="The Secret Cave - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1920x1080.png" title="The Secret Cave - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1920x1200.png" title="The Secret Cave - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-1920x1440.png" title="The Secret Cave - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-2560x1440.png" title="The Secret Cave - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-24/the-secret-cave/nocal/nov-24-the-secret-cave-nocal-3840x2160.png" title="The Secret Cave - 3840x2160">3840x2160</a></li></ul><h2 id="sunset-or-sunrise">Sunset Or Sunrise</h2><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&amp;mldr; does that really matter?” — Designed by <a href="https://www.silocreativo.com/en">Veronica Valenzuela Jimenez</a> from Spain.</p><figure><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" title="Sunset Or Sunrise, What Difference Does It Make?"><img alt="Sunset Or Sunrise, What Difference Does It Make?" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2024/nov-23-sunset-or-sunrise-what-difference-does-it-make-preview-opt.png"></img></a></figure><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" title="Sunset Or Sunrise, What Difference Does It Make? - Preview">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" title="Sunset Or Sunrise, What Difference Does It Make? - 640x480">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" title="Sunset Or Sunrise, What Difference Does It Make? - 800x480">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" title="Sunset Or Sunrise, What Difference Does It Make? - 1024x768">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" title="Sunset Or Sunrise, What Difference Does It Make? - 1280x720">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" title="Sunset Or Sunrise, What Difference Does It Make? - 1280x800">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" title="Sunset Or Sunrise, What Difference Does It Make? - 1440x900">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" title="Sunset Or Sunrise, What Difference Does It Make? - 1600x1200">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" title="Sunset Or Sunrise, What Difference Does It Make? - 1920x1080">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" title="Sunset Or Sunrise, What Difference Does It Make? - 1920x1440">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" title="Sunset Or Sunrise, What Difference Does It Make? - 2560x1440">2560x1440</a></li></ul><h2 id="a-jelly-november">A Jelly November</h2><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><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-a-jelly-november-full-opt.png" title="A Jelly November"><img alt="A Jelly November" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-a-jelly-november-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-a-jelly-november-preview-opt.png" title="A Jelly November - Preview">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" title="A Jelly November - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-640x480.jpg" title="A Jelly November - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-800x480.jpg" title="A Jelly November - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-800x600.jpg" title="A Jelly November - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1024x768.jpg" title="A Jelly November - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1024x1024.jpg" title="A Jelly November - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1152x864.jpg" title="A Jelly November - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1280x720.jpg" title="A Jelly November - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1280x960.jpg" title="A Jelly November - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1280x1024.jpg" title="A Jelly November - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1366x768.jpg" title="A Jelly November - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1440x900.jpg" title="A Jelly November - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1440x1050.jpg" title="A Jelly November - 1440x1050">1440x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1600x1200.jpg" title="A Jelly November - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1680x1050.jpg" title="A Jelly November - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1680x1200.jpg" title="A Jelly November - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1920x1080.jpg" title="A Jelly November - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1920x1200.jpg" title="A Jelly November - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1920x1440.jpg" title="A Jelly November - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-2560x1440.jpg" title="A Jelly November - 2560x1440">2560x1440</a></li></ul><h2 id="winter-is-here">Winter Is Here</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-21-winter-is-here-full-opt.png" title="Winter Is Here"><img alt="Winter Is Here" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-21-winter-is-here-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-21-winter-is-here-preview-opt.png" title="Winter Is Here - Preview">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" title="Winter Is Here - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-800x480.png" title="Winter Is Here - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-800x600.png" title="Winter Is Here - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1024x768.png" title="Winter Is Here - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1024x1024.png" title="Winter Is Here - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1152x864.png" title="Winter Is Here - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1280x720.png" title="Winter Is Here - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1280x800.png" title="Winter Is Here - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1280x960.png" title="Winter Is Here - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1280x1024.png" title="Winter Is Here - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1366x768.png" title="Winter Is Here - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1400x1050.png" title="Winter Is Here - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1440x900.png" title="Winter Is Here - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1600x1200.png" title="Winter Is Here - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1680x1050.png" title="Winter Is Here - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1680x1200.png" title="Winter Is Here - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1920x1080.png" title="Winter Is Here - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1920x1200.png" title="Winter Is Here - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-1920x1440.png" title="Winter Is Here - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-2560x1440.png" title="Winter Is Here - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/winter-is-here/nocal/nov-21-winter-is-here-nocal-3840x2160.png" title="Winter Is Here - 3840x2160">3840x2160</a></li></ul><h2 id="moonlight-bats">Moonlight Bats</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/eb930008-f9f2-4640-9da7-8ec4961ef457/nov-16-moonlight-bats-full-opt.png" title="Moonlight Bats"><img alt="Moonlight Bats" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/95ff8287-5ec2-4dd5-b3a8-0b7fc4002451/nov-16-moonlight-bats-preview-opt.png"></img></a></figure><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" title="Moonlight Bats - Preview">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" title="Moonlight Bats - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-800x600.png" title="Moonlight Bats - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1024x768.png" title="Moonlight Bats - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1280x800.png" title="Moonlight Bats - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1280x960.png" title="Moonlight Bats - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1440x900.png" title="Moonlight Bats - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1600x1200.png" title="Moonlight Bats - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1680x1050.png" title="Moonlight Bats - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1680x1260.png" title="Moonlight Bats - 1680x1260">1680x1260</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1920x1200.png" title="Moonlight Bats - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-1920x1440.png" title="Moonlight Bats - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-2560x1440.png" title="Moonlight Bats - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-16/moonlight-bats/nocal/nov-16-moonlight-bats-nocal-2560x1600.png" title="Moonlight Bats - 2560x1600">2560x1600</a></li></ul><h2 id="time-to-give-thanks">Time To Give Thanks</h2><p>Designed by <a href="http://www.tazi.com.au">Glynnis Owen</a> from Australia.</p><figure><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" title="Time To Give Thanks"><img alt="Time To Give Thanks" 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"></img></a></figure><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" title="Time To Give Thanks - Preview">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" title="Time To Give Thanks - 320x480">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" title="Time To Give Thanks - 640x480">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" title="Time To Give Thanks - 800x600">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" title="Time To Give Thanks - 1024x768">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" title="Time To Give Thanks - 1152x864">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" title="Time To Give Thanks - 1280x720">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" title="Time To Give Thanks - 1280x960">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" title="Time To Give Thanks - 1600x1200">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" title="Time To Give Thanks - 1920x1080">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" title="Time To Give Thanks - 1920x1440">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" title="Time To Give Thanks - 2560x1440">2560x1440</a></li></ul><h2 id="anbani">Anbani</h2><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><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-anbani-full-opt.png" title="Anbani"><img alt="Anbani" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-anbani-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-anbani-preview-opt.png" title="Anbani - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-800x480.jpg" title="Anbani - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-800x600.jpg" title="Anbani - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1024x600.jpg" title="Anbani - 1024x600">1024x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1024x768.jpg" title="Anbani - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1152x864.jpg" title="Anbani - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1280x720.jpg" title="Anbani - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1280x800.jpg" title="Anbani - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1280x960.jpg" title="Anbani - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1280x1024.jpg" title="Anbani - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1366x768.jpg" title="Anbani - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1400x1050.jpg" title="Anbani - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1440x900.jpg" title="Anbani - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1440x960.jpg" title="Anbani - 1440x960">1440x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1600x900.jpg" title="Anbani - 1600x900">1600x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1600x1200.jpg" title="Anbani - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1680x1050.jpg" title="Anbani - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1680x1200.jpg" title="Anbani - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1920x1080.jpg" title="Anbani - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1920x1200.jpg" title="Anbani - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-1920x1440.jpg" title="Anbani - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-2560x1440.jpg" title="Anbani - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-2560x1600.jpg" title="Anbani - 2560x1600">2560x1600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-2880x1800.jpg" title="Anbani - 2880x1800">2880x1800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-3072x1920.jpg" title="Anbani - 3072x1920">3072x1920</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-3840x2160.jpg" title="Anbani - 3840x2160">3840x2160</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/anbani/nocal/nov-22-anbani-nocal-5120x2880.jpg" title="Anbani - 5120x2880">5120x2880</a></li></ul><h2 id="me-and-the-key-three">Me And The Key Three</h2><p>Designed by Bart Bonte from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a36659bc-3708-428a-99a8-14f9ecf7d1fd/key-three-full-opt.png" title="Me And The Key Three"><img alt="Me And The Key Three" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/57fb0377-f0ca-4c86-b9ef-a7e70432e798/key-three-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/57fb0377-f0ca-4c86-b9ef-a7e70432e798/key-three-preview-opt.png" title="Me And The Key Three - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/640x480.png" title="Me And The Key Three - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/800x480.png" title="Me And The Key Three - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/800x600.png" title="Me And The Key Three - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1024x768.png" title="Me And The Key Three - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1024x1024.png" title="Me And The Key Three - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1152x864.png" title="Me And The Key Three - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1280x720.png" title="Me And The Key Three - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1280x800.png" title="Me And The Key Three - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1280x960.png" title="Me And The Key Three - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1280x1024.png" title="Me And The Key Three - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1400x1050.png" title="Me And The Key Three - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1440x900.png" title="Me And The Key Three - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1600x1200.png" title="Me And The Key Three - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1680x1050.png" title="Me And The Key Three - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1680x1200.png" title="Me And The Key Three - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1920x1080.png" title="Me And The Key Three - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1920x1200.png" title="Me And The Key Three - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/1920x1440.png" title="Me And The Key Three - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-13/pinguin-wallpapers/nocal/2560x1440.png" title="Me And The Key Three - 2560x1440">2560x1440</a></li></ul><h2 id="outer-space">Outer Space</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2a22c060-701d-45e2-b929-e56fe19d1f00/nov-18-outer-space-full-opt.png" title="Outer Space"><img alt="Outer Space" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a26c1a03-abab-4c75-9825-9c00172ae9a9/nov-18-outer-space-preview-opt.png"></img></a></figure><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" title="Outer Space - Preview">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" title="Outer Space - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-640x480.jpg" title="Outer Space - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-800x480.jpg" title="Outer Space - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-800x600.jpg" title="Outer Space - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1024x768.jpg" title="Outer Space - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1024x1024.jpg" title="Outer Space - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1152x864.jpg" title="Outer Space - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1280x720.jpg" title="Outer Space - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1280x800.jpg" title="Outer Space - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1280x960.jpg" title="Outer Space - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1280x1024.jpg" title="Outer Space - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1366x768.jpg" title="Outer Space - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1400x1050.jpg" title="Outer Space - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1440x900.jpg" title="Outer Space - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1600x1200.jpg" title="Outer Space - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1680x1050.jpg" title="Outer Space - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1680x1200.jpg" title="Outer Space - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1920x1080.jpg" title="Outer Space - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1920x1200.jpg" title="Outer Space - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-1920x1440.jpg" title="Outer Space - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/outer-space/nocal/nov-18-outer-space-nocal-2560x1440.jpg" title="Outer Space - 2560x1440">2560x1440</a></li></ul><h2 id="captain-s-home">Captain’s Home</h2><p>Designed by Elise Vanoorbeek from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e7992aa7-576e-4bdb-9219-00c71f9aa330/nov-15-captains-home-full.png" title="Captain’s Home"><img alt="Captain’s Home" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1674ac88-6294-46eb-a184-417dec461c3e/nov-15-captains-home-preview-opt.png"></img></a></figure><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" title="Captain’s Home - Preview">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" title="Captain’s Home - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1152x864.jpg" title="Captain’s Home - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1280x720.jpg" title="Captain’s Home - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1280x800.jpg" title="Captain’s Home - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1280x960.jpg" title="Captain’s Home - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1280x1024.jpg" title="Captain’s Home - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1366x768.jpg" title="Captain’s Home - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1400x1050.jpg" title="Captain’s Home - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1440x900.jpg" title="Captain’s Home - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1600x1200.jpg" title="Captain’s Home - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1680x1050.jpg" title="Captain’s Home - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1680x1200.jpg" title="Captain’s Home - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1920x1080.jpg" title="Captain’s Home - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1920x1200.jpg" title="Captain’s Home - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-1920x1440.jpg" title="Captain’s Home - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/captains-home/nocal/nov-15-captains-home-nocal-2560x1440.jpg" title="Captain’s Home - 2560x1440">2560x1440</a></li></ul><h2 id="deer-fall-i-love-you">Deer Fall, I Love You</h2><p>Designed by Maria Porter from the United States.</p><figure><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" title="Deer Fall, I Love You!"><img alt="Deer Fall, I Love You!" 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"></img></a></figure><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" title="Deer Fall, I Love You! - Preview">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" title="Deer Fall, I Love You! - 320x480">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" title="Deer Fall, I Love You! - 800x600">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" title="Deer Fall, I Love You! - 1280x800">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" title="Deer Fall, I Love You! - 1280x1024">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" title="Deer Fall, I Love You! - 1440x900">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" title="Deer Fall, I Love You! - 1680x1050">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" title="Deer Fall, I Love You! - 2560x1440">2560x1440</a></li></ul><h2 id="holiday-season-is-approaching">Holiday Season Is Approaching</h2><p>Designed by <a href="https://activecollab.com">ActiveCollab</a> from the United States.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2024/nov-21-holiday-season-is-approaching-full-opt.png" title="Holiday Season Is Approaching"><img alt="Holiday Season Is Approaching" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2024/nov-21-holiday-season-is-approaching-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2024/nov-21-holiday-season-is-approaching-preview-opt.png" title="Holiday Season Is Approaching - Preview">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" title="Holiday Season Is Approaching - 1080x1920">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" title="Holiday Season Is Approaching - 1400x1050">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" title="Holiday Season Is Approaching - 1440x900">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" title="Holiday Season Is Approaching - 1600x1200">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" title="Holiday Season Is Approaching - 1680x1200">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" title="Holiday Season Is Approaching - 1920x1080">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" title="Holiday Season Is Approaching - 1920x1200">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" title="Holiday Season Is Approaching - 1920x1440">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" title="Holiday Season Is Approaching - 2560x1440">2560x1440</a></li></ul><h2 id="international-civil-aviation-day">International Civil Aviation Day</h2><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><figure><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" title="International Civil Aviation Day"><img alt="International Civil Aviation Day" 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"></img></a></figure><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" title="International Civil Aviation Day - Preview">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" title="International Civil Aviation Day - 320x480">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" title="International Civil Aviation Day - 640x480">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" title="International Civil Aviation Day - 800x480">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" title="International Civil Aviation Day - 800x600">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" title="International Civil Aviation Day - 1024x768">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" title="International Civil Aviation Day - 1024x1024">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" title="International Civil Aviation Day - 1152x864">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" title="International Civil Aviation Day - 1280x720">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" title="International Civil Aviation Day - 1280x800">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" title="International Civil Aviation Day - 1280x960">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" title="International Civil Aviation Day - 1280x1024">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" title="International Civil Aviation Day - 1400x1050">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" title="International Civil Aviation Day - 1440x900">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" title="International Civil Aviation Day - 1600x1200">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" title="International Civil Aviation Day - 1680x1050">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" title="International Civil Aviation Day - 1680x1200">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" title="International Civil Aviation Day - 1920x1080">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" title="International Civil Aviation Day - 1920x1200">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" title="International Civil Aviation Day - 1920x1440">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" title="International Civil Aviation Day - 2560x1440">2560x1440</a></li></ul><h2 id="peanut-butter-jelly-time">Peanut Butter Jelly Time</h2><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><figure><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" title="Peanut Butter Jelly Time!"><img alt="Peanut Butter Jelly Time!" 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"></img></a></figure><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" title="Peanut Butter Jelly Time! - Preview">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" title="Peanut Butter Jelly Time! - 320x480">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" title="Peanut Butter Jelly Time! - 1280x720">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" title="Peanut Butter Jelly Time! - 1280x800">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" title="Peanut Butter Jelly Time! - 1280x1024">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" title="Peanut Butter Jelly Time! - 1920x1080">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" title="Peanut Butter Jelly Time! - 2560x1440">2560x1440</a></li></ul><h2 id="a-gentlemans-november">A Gentleman’s November</h2><p>Designed by Cedric Bloem from Belgium.</p><figure><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" title="A Gentleman's November"><img alt="A Gentleman's November" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/44b45307-6330-4e5a-bf33-9784777f2dda/nov-14-a-gents-november-preview-opt.png"></img></a></figure><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" title="A Gentleman's November - Preview">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" title="A Gentleman's November - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-640x480.png" title="A Gentleman's November - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-800x480.png" title="A Gentleman's November - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-800x600.png" title="A Gentleman's November - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1024x768.png" title="A Gentleman's November - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1024x1024.png" title="A Gentleman's November - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1152x864.png" title="A Gentleman's November - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1280x720.png" title="A Gentleman's November - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1280x800.png" title="A Gentleman's November - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1280x960.png" title="A Gentleman's November - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1280x1024.png" title="A Gentleman's November - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1400x1050.png" title="A Gentleman's November - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1440x900.png" title="A Gentleman's November - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1600x1200.png" title="A Gentleman's November - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1680x1050.png" title="A Gentleman's November - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1680x1200.png" title="A Gentleman's November - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1920x1080.png" title="A Gentleman's November - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1920x1200.png" title="A Gentleman's November - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-1920x1440.png" title="A Gentleman's November - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-14/a-gents-november/nocal/nov-14-a-gents-november-nocal-2560x1440.png" title="A Gentleman's November - 2560x1440">2560x1440</a></li></ul><h2 id="bug">Bug</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-23-bug-full-opt.png" title="Bug"><img alt="Bug" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-23-bug-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-23-bug-preview-opt.png" title="Bug - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-640x480.png" title="Bug - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-800x480.png" title="Bug - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-800x600.png" title="Bug - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1024x768.png" title="Bug - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1024x1024.png" title="Bug - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1152x864.png" title="Bug - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1280x720.png" title="Bug - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1280x800.png" title="Bug - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1280x960.png" title="Bug - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1280x1024.png" title="Bug - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1366x768.png" title="Bug - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1400x1050.png" title="Bug - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1440x900.png" title="Bug - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1600x1200.png" title="Bug - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1680x1050.png" title="Bug - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1680x1200.png" title="Bug - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1920x1080.png" title="Bug - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1920x1200.png" title="Bug - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-1920x1440.png" title="Bug - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-2560x1440.png" title="Bug - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-23/bug/nocal/nov-23-bug-nocal-3840x2160.png" title="Bug - 3840x2160">3840x2160</a></li></ul><h2 id="go-to-japan">Go To Japan</h2><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><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-21-go-to-japan-full-opt.png" title="Go To Japan"><img alt="Go To Japan" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-21-go-to-japan-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-21-go-to-japan-preview-opt.png" title="Go To Japan - Preview">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" title="Go To Japan - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-800x480.png" title="Go To Japan - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1024x768.png" title="Go To Japan - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1280x720.png" title="Go To Japan - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1280x800.png" title="Go To Japan - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1440x900.png" title="Go To Japan - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1600x1200.png" title="Go To Japan - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1920x1080.png" title="Go To Japan - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-1920x1440.png" title="Go To Japan - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-21/go-to-japan/nocal/nov-21-go-to-japan-nocal-2560x1440.png" title="Go To Japan - 2560x1440">2560x1440</a></li></ul><h2 id="the-kind-soul">The Kind Soul</h2><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><figure><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" title="The Kind Soul"><img alt="The Kind Soul" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f00ee114-6db4-4f83-9877-1827113c2276/nov-17-the-kind-soul-preview-opt.png"></img></a></figure><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" title="The Kind Soul - Preview">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" title="The Kind Soul - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-640x480.jpg" title="The Kind Soul - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-800x480.jpg" title="The Kind Soul - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-800x600.jpg" title="The Kind Soul - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1024x768.jpg" title="The Kind Soul - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1024x1024.jpg" title="The Kind Soul - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1152x864.jpg" title="The Kind Soul - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1280x720.jpg" title="The Kind Soul - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1280x800.jpg" title="The Kind Soul - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1280x960.jpg" title="The Kind Soul - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1280x1024.jpg" title="The Kind Soul - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1366x768.jpg" title="The Kind Soul - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1400x1050.jpg" title="The Kind Soul - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1440x900.jpg" title="The Kind Soul - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1600x1200.jpg" title="The Kind Soul - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1680x1050.jpg" title="The Kind Soul - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1680x1200.jpg" title="The Kind Soul - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1920x1080.jpg" title="The Kind Soul - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1920x1200.jpg" title="The Kind Soul - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-1920x1440.jpg" title="The Kind Soul - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/the-kind-soul/nocal/nov-17-the-kind-soul-nocal-2560x1440.jpg" title="The Kind Soul - 2560x1440">2560x1440</a></li></ul><h2 id="mushroom-season">Mushroom Season</h2><p>“It is autumn! It is raining and thus&amp;mldr; 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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e1775c95-1c88-47e9-abe3-010b7d9c4dc0/nov-15-mushroom-season-full.png" title="Mushroom Season!"><img alt="Mushroom Season!" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2f07e2f6-0387-44d5-b7c0-361acbb3f022/nov-15-mushroom-season-preview-opt.png"></img></a></figure><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" title="Mushroom Season! - Preview">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" title="Mushroom Season! - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1024x768.png" title="Mushroom Season! - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1152x864.png" title="Mushroom Season! - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1280x800.png" title="Mushroom Season! - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1280x960.png" title="Mushroom Season! - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1440x900.png" title="Mushroom Season! - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1680x1200.png" title="Mushroom Season! - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-1920x1080.png" title="Mushroom Season! - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-15/mushroom-season/nocal/nov-15-mushroom-season-nocal-2560x1440.png" title="Mushroom Season! - 2560x1440">2560x1440</a></li></ul><h2 id="tempestuous-november">Tempestuous November</h2><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><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5e17adda-4fc7-4ad5-9328-e364e52a0075/nov-17-tempestuous-november-full-opt.png" title="Tempestuous November"><img alt="Tempestuous November" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6aa9d7e3-e1b8-48dd-9dcb-25eaf0ba1229/nov-17-tempestuous-november-preview-opt.png"></img></a></figure><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" title="Tempestuous November - Preview">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" title="Tempestuous November - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-640x480.png" title="Tempestuous November - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-800x480.png" title="Tempestuous November - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-800x600.png" title="Tempestuous November - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1024x768.png" title="Tempestuous November - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1024x1024.png" title="Tempestuous November - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1152x864.png" title="Tempestuous November - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1280x720.png" title="Tempestuous November - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1280x800.png" title="Tempestuous November - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1280x960.png" title="Tempestuous November - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1280x1024.png" title="Tempestuous November - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1400x1050.png" title="Tempestuous November - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1440x900.png" title="Tempestuous November - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1600x1200.png" title="Tempestuous November - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1680x1050.png" title="Tempestuous November - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1680x1200.png" title="Tempestuous November - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1920x1080.png" title="Tempestuous November - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1920x1200.png" title="Tempestuous November - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-1920x1440.png" title="Tempestuous November - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/tempestuous-november/nocal/nov-17-tempestuous-november-nocal-2560x1440.png" title="Tempestuous November - 2560x1440">2560x1440</a></li></ul><h2 id="cozy-autumn-cups-and-cute-pumpkins">Cozy Autumn Cups And Cute Pumpkins</h2><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><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-cozy-autumn-cups-and-cute-pumpkins-full-opt.png" title="Cozy Autumn Cups And Cute Pumpkins"><img alt="Cozy Autumn Cups And Cute Pumpkins" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2023/nov-22-cozy-autumn-cups-and-cute-pumpkins-preview-opt.png"></img></a></figure><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" title="Cozy Autumn Cups And Cute Pumpkins - Preview">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" title="Cozy Autumn Cups And Cute Pumpkins - 320x480">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" title="Cozy Autumn Cups And Cute Pumpkins - 640x480">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" title="Cozy Autumn Cups And Cute Pumpkins - 800x480">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" title="Cozy Autumn Cups And Cute Pumpkins - 800x600">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" title="Cozy Autumn Cups And Cute Pumpkins - 1024x768">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" title="Cozy Autumn Cups And Cute Pumpkins - 1024x1024">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" title="Cozy Autumn Cups And Cute Pumpkins - 1152x864">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" title="Cozy Autumn Cups And Cute Pumpkins - 1280x720">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" title="Cozy Autumn Cups And Cute Pumpkins - 1280x800">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" title="Cozy Autumn Cups And Cute Pumpkins - 1280x960">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" title="Cozy Autumn Cups And Cute Pumpkins - 1280x1024">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" title="Cozy Autumn Cups And Cute Pumpkins - 1366x768">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" title="Cozy Autumn Cups And Cute Pumpkins - 1400x1050">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" title="Cozy Autumn Cups And Cute Pumpkins - 1440x900">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" title="Cozy Autumn Cups And Cute Pumpkins - 1600x1200">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" title="Cozy Autumn Cups And Cute Pumpkins - 1680x1050">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" title="Cozy Autumn Cups And Cute Pumpkins - 1680x1200">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" title="Cozy Autumn Cups And Cute Pumpkins - 1920x1080">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" title="Cozy Autumn Cups And Cute Pumpkins - 1920x1200">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" title="Cozy Autumn Cups And Cute Pumpkins - 1920x1440">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" title="Cozy Autumn Cups And Cute Pumpkins - 2560x1440">2560x1440</a></li></ul><h2 id="november-nights-on-mountains">November Nights On Mountains</h2><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><figure><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" title="November Nights On Mountains"><img alt="November Nights On Mountains" 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"></img></a></figure><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" title="November Nights On Mountains - Preview">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" title="November Nights On Mountains - 320x480">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" title="November Nights On Mountains - 640x480">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" title="November Nights On Mountains - 800x480">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" title="November Nights On Mountains - 800x600">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" title="November Nights On Mountains - 1024x768">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" title="November Nights On Mountains - 1024x1024">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" title="November Nights On Mountains - 1152x864">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" title="November Nights On Mountains - 1280x720">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" title="November Nights On Mountains - 1280x800">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" title="November Nights On Mountains - 1280x1024">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" title="November Nights On Mountains - 1366x768">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" title="November Nights On Mountains - 1400x1050">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" title="November Nights On Mountains - 1440x900">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" title="November Nights On Mountains - 1600x1200">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" title="November Nights On Mountains - 1680x1050">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" title="November Nights On Mountains - 1680x1200">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" title="November Nights On Mountains - 1920x1080">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" title="November Nights On Mountains - 1920x1200">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" title="November Nights On Mountains - 1920x1440">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" title="November Nights On Mountains - 2560x1440">2560x1440</a></li></ul><h2 id="coco-chanel">Coco Chanel</h2><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><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-17-coco-chanel-full-opt.png" title="Coco Chanel"><img alt="Coco Chanel" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-17-coco-chanel-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-17-coco-chanel-preview-opt.png" title="Coco Chanel - Preview">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" title="Coco Chanel - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-640x480.png" title="Coco Chanel - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-800x600.png" title="Coco Chanel - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1024x768.png" title="Coco Chanel - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1152x864.png" title="Coco Chanel - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1280x720.png" title="Coco Chanel - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1280x960.png" title="Coco Chanel - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1600x1200.png" title="Coco Chanel - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1920x1080.png" title="Coco Chanel - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-1920x1440.png" title="Coco Chanel - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/coco-chanel/nocal/nov-17-coco-chanel-nocal-2560x1440.png" title="Coco Chanel - 2560x1440">2560x1440</a></li></ul><h2 id="stars">Stars</h2><p>“I don’t know anyone who hasn’t enjoyed a cold night looking at the stars.” — Designed by Ema Rede from Portugal.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a5b13015-b6a8-4381-b8a3-471ab56ce47a/nov-18-stars-full-opt.png" title="Stars"><img alt="Stars" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c0e12314-b103-46e0-9c85-55a6e7531d0d/nov-18-stars-preview-opt.png"></img></a></figure><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" title="Stars - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/nov-18/stars/nocal/nov-18-stars-nocal-1600x1200.png" title="Stars - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/stars/nocal/nov-18-stars-nocal-1680x1050.png" title="Stars - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/stars/nocal/nov-18-stars-nocal-1680x1200.png" title="Stars - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/stars/nocal/nov-18-stars-nocal-1920x1080.png" title="Stars - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/stars/nocal/nov-18-stars-nocal-1920x1200.png" title="Stars - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-18/stars/nocal/nov-18-stars-nocal-1920x1440.png" title="Stars - 1920x1440">1920x1440</a></li></ul><h2 id="welcome-home-dear-winter">Welcome Home Dear Winter</h2><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><figure><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" title="Welcome Home Dear Winter"><img alt="Welcome Home Dear Winter" 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"></img></a></figure><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" title="Welcome Home Dear Winter - Preview">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" title="Welcome Home Dear Winter - 640x480">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" title="Welcome Home Dear Winter - 800x480">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" title="Welcome Home Dear Winter - 800x600">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" title="Welcome Home Dear Winter - 1024x768">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" title="Welcome Home Dear Winter - 1024x1024">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" title="Welcome Home Dear Winter - 1152x864">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" title="Welcome Home Dear Winter - 1280x720">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" title="Welcome Home Dear Winter - 1280x960">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" title="Welcome Home Dear Winter - 1280x1024">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" title="Welcome Home Dear Winter - 1366x768">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" title="Welcome Home Dear Winter - 1400x1050">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" title="Welcome Home Dear Winter - 1440x900">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" title="Welcome Home Dear Winter - 1600x1200">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" title="Welcome Home Dear Winter - 1680x1050">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" title="Welcome Home Dear Winter - 1680x1200">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" title="Welcome Home Dear Winter - 1920x1080">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" title="Welcome Home Dear Winter - 1920x1200">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" title="Welcome Home Dear Winter - 1920x1440">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" title="Welcome Home Dear Winter - 2560x1440">2560x1440</a></li></ul><h2 id="happy-birthday-c-s-lewis">Happy Birthday C.S.Lewis!</h2><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><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-17-happy-birthday-cslewis-full-opt.png" title="Happy Birthday C.S.Lewis!"><img alt="Happy Birthday C.S.Lewis!" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-17-happy-birthday-cslewis-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-17-happy-birthday-cslewis-preview-opt.png" title="Happy Birthday C.S.Lewis! - Preview">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" title="Happy Birthday C.S.Lewis! - 800x450">800x450</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-1280x720.png" title="Happy Birthday C.S.Lewis! - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-1366x768.png" title="Happy Birthday C.S.Lewis! - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-1440x810.png" title="Happy Birthday C.S.Lewis! - 1440x810">1440x810</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-1600x900.png" title="Happy Birthday C.S.Lewis! - 1600x900">1600x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-1680x945.png" title="Happy Birthday C.S.Lewis! - 1680x945">1680x945</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-1920x1080.png" title="Happy Birthday C.S.Lewis! - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/nov-17/happy-birthday-cslewis/nocal/nov-17-happy-birthday-cslewis-nocal-2560x1440.png" title="Happy Birthday C.S.Lewis! - 2560x1440">2560x1440</a></li></ul><h2 id="autumn-choir">Autumn Choir</h2><p>Designed by <a href="https://hatcherscreative.com">Hatchers</a> from Ukraine / China.</p><figure><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 alt="Autumn Choir" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2d95a969-aa84-468f-ac37-5be03c51820d/november-12-autumn-choir-99-preview-opt.png"></img></a></figure><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><h2 id="star-wars">Star Wars</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-22-star-wars-full-opt.png" title="Star Wars"><img alt="Star Wars" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-22-star-wars-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-november-2025/nov-22-star-wars-preview-opt.png" title="Star Wars - Preview">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" title="Star Wars - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-800x480.png" title="Star Wars - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-800x600.png" title="Star Wars - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1024x768.png" title="Star Wars - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1024x1024.png" title="Star Wars - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1152x864.png" title="Star Wars - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1280x720.png" title="Star Wars - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1280x800.png" title="Star Wars - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1280x960.png" title="Star Wars - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1280x1024.png" title="Star Wars - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1366x768.png" title="Star Wars - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1400x1050.png" title="Star Wars - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1440x900.png" title="Star Wars - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1600x1200.png" title="Star Wars - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1680x1050.png" title="Star Wars - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1680x1200.png" title="Star Wars - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1920x1080.png" title="Star Wars - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1920x1200.png" title="Star Wars - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-1920x1440.png" title="Star Wars - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-2560x1440.png" title="Star Wars - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/nov-22/star-wars/nocal/nov-22-star-wars-nocal-3840x2160.png" title="Star Wars - 3840x2160">3840x2160</a></li></ul><h2 id="hello-world-happy-november">Hello World, Happy November</h2><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><figure><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" title="Hello world, happy November!"><img alt="Hello world, happy November!" 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"></img></a></figure><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" title="Hello world, happy November! - Preview">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" title="Hello world, happy November! - 640x480">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" title="Hello world, happy November! - 800x480">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" title="Hello world, happy November! - 800x600">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" title="Hello world, happy November! - 1024x768">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" title="Hello world, happy November! - 1024x1024">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" title="Hello world, happy November! - 1152x864">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" title="Hello world, happy November! - 1280x720">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" title="Hello world, happy November! - 1280x800">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" title="Hello world, happy November! - 1280x960">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" title="Hello world, happy November! - 1280x1024">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" title="Hello world, happy November! - 1400x1050">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" title="Hello world, happy November! - 1440x900">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" title="Hello world, happy November! - 1600x1200">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" title="Hello world, happy November! - 1680x1050">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" title="Hello world, happy November! - 1680x1200">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" title="Hello world, happy November! - 1920x1080">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" title="Hello world, happy November! - 1920x1200">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" title="Hello world, happy November! - 1920x1440">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" title="Hello world, happy November! - 2560x1440">2560x1440</a></li></ul><h2 id="get-featured-next-month">Get Featured Next Month</h2><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></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <img src="https:null" /><h1>JavaScript For Everyone: Iterators — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>9 min read</li><li><a href="http://www.smashingmagazine.com/category/javascript">JavaScript</a>, <a href="http://www.smashingmagazine.com/category/coding">Coding</a>, <a href="http://www.smashingmagazine.com/category/techniques">Techniques</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><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><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://www.smashingmagazine.com/printed-books/form-design-patterns/"><div><picture><source srcset="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/64e57b41-b7f1-4ae3-886a-806cce580ef9/form-design-patterns-shop-image-1-1.avif" type="image/avif"><img alt="Feature Panel" decoding="async" height="698" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/51e0f837-d85d-4b28-bfab-1c9a47f0ce33/form-design-patterns-shop-image.png" width="481"></img></source></picture></div></a></div></aside></div><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 `theIterator`: 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><h2 id="conclusion">Conclusion</h2><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><figure><a href="https://piccalil.li/javascript-for-everyone"><img alt="Javascript for everyone course announcement" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/javascript-for-everyone-iterators/1-javascript-for-everyone.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/javascript-for-everyone-iterators/1-javascript-for-everyone.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/javascript-for-everyone-iterators/1-javascript-for-everyone.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/javascript-for-everyone-iterators/1-javascript-for-everyone.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/javascript-for-everyone-iterators/1-javascript-for-everyone.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/javascript-for-everyone-iterators/1-javascript-for-everyone.png 2000w" width="800"></img></a><figcaption><a href="https://piccalil.li/javascript-for-everyone">JavaScript for Everyone</a> is now available and the launch price runs until midnight, October 28. Save £60 off the full price of £249 and get it for £189! (<a href="https://files.smashing.media/articles/javascript-for-everyone-iterators/1-javascript-for-everyone.png">Large preview</a>)</figcaption></figure><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https:null" /><h1>JavaScript For Everyone: Iterators — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>9 min read</li><li><a href="http://www.smashingmagazine.com/category/javascript">JavaScript</a>, <a href="http://www.smashingmagazine.com/category/coding">Coding</a>, <a href="http://www.smashingmagazine.com/category/techniques">Techniques</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><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><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://www.smashingmagazine.com/printed-books/form-design-patterns/"><div><picture><source srcset="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/64e57b41-b7f1-4ae3-886a-806cce580ef9/form-design-patterns-shop-image-1-1.avif" type="image/avif"><img alt="Feature Panel" decoding="async" height="698" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/51e0f837-d85d-4b28-bfab-1c9a47f0ce33/form-design-patterns-shop-image.png" width="481"></img></source></picture></div></a></div></aside></div><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 `theIterator`: 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><h2 id="conclusion">Conclusion</h2><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><figure><a href="https://piccalil.li/javascript-for-everyone"><img alt="Javascript for everyone course announcement" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/javascript-for-everyone-iterators/1-javascript-for-everyone.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/javascript-for-everyone-iterators/1-javascript-for-everyone.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/javascript-for-everyone-iterators/1-javascript-for-everyone.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/javascript-for-everyone-iterators/1-javascript-for-everyone.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/javascript-for-everyone-iterators/1-javascript-for-everyone.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/javascript-for-everyone-iterators/1-javascript-for-everyone.png 2000w" width="800"></img></a><figcaption><a href="https://piccalil.li/javascript-for-everyone">JavaScript for Everyone</a> is now available and the launch price runs until midnight, October 28. Save £60 off the full price of £249 and get it for £189! (<a href="https://files.smashing.media/articles/javascript-for-everyone-iterators/1-javascript-for-everyone.png">Large preview</a>)</figcaption></figure><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <img src="https:null" /><h1>Practical Applications (Part 2) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>10 min read</li><li><a href="http://www.smashingmagazine.com/category/animation">Animation</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/svg">SVG</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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 <a href="https://stuffandnonsense.co.uk">Andy Clarke</a> shows how ambient animations can add personality to any website design.</section></div><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><h2 id="reuven-herman">Reuven Herman</h2><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/1-design-reuven-herman.png"><img alt="Design for LA-based composer Reuven Herman" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/1-design-reuven-herman.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/1-design-reuven-herman.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/1-design-reuven-herman.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/1-design-reuven-herman.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/1-design-reuven-herman.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/1-design-reuven-herman.png 2000w" width="800"></img></a><figcaption>My design for LA-based composer Reuven Herman. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/1-design-reuven-herman.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/2-album-cover-designs-alex-steinweiss.png"><img alt="Album cover designs by Alex Steinweiss" decoding="async" fetchpriority="low" height="267" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/2-album-cover-designs-alex-steinweiss.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/2-album-cover-designs-alex-steinweiss.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/2-album-cover-designs-alex-steinweiss.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/2-album-cover-designs-alex-steinweiss.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/2-album-cover-designs-alex-steinweiss.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/2-album-cover-designs-alex-steinweiss.png 2000w" width="800"></img></a><figcaption>Album cover designs by Alex Steinweiss. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/2-album-cover-designs-alex-steinweiss.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/3-illustrations-reuven-herman.png"><img alt="Illustrations for Reuven Herman" decoding="async" fetchpriority="low" height="267" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/3-illustrations-reuven-herman.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/3-illustrations-reuven-herman.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/3-illustrations-reuven-herman.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/3-illustrations-reuven-herman.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/3-illustrations-reuven-herman.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/3-illustrations-reuven-herman.png 2000w" width="800"></img></a><figcaption>Two of my illustrations for Reuven Herman. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/3-illustrations-reuven-herman.png">Large preview</a>)</figcaption></figure><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><figure><p><iframe allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" frameborder="0" src="https://player.vimeo.com/video/1129468148"></iframe></p></figure><p>You can view this ambient animation <a href="https://stuffandnonsense.co.uk/lab/ambient-animations.html">in my lab</a>. For Reuven’s site:</p><ul><li>Sheet music stave lines morph between wavy and straight states.</li><li>Notes drift at different speeds to create parallax-like depth.</li><li>Piano keys appear to float.</li></ul><p>My first step is always to <a href="https://www.smashingmagazine.com/2025/06/smashing-animations-part-4-optimising-svgs/">optimise my SVGs for animation</a> by exporting and optimising one set of elements at a time — always in the order they’ll appear in the final file and building the master SVG gradually. Working forwards from the background, I exported the sheet music stave lines, first in their wavy state.</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/4-sheet-music-stave-lines-wavy.png"><img alt="Sheet music stave lines (wavy)" decoding="async" fetchpriority="low" height="275" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/4-sheet-music-stave-lines-wavy.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/4-sheet-music-stave-lines-wavy.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/4-sheet-music-stave-lines-wavy.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/4-sheet-music-stave-lines-wavy.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/4-sheet-music-stave-lines-wavy.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/4-sheet-music-stave-lines-wavy.png 2000w" width="800"></img></a><figcaption>Sheet music stave lines (wavy). (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/4-sheet-music-stave-lines-wavy.png">Large preview</a>)</figcaption></figure><p>…followed by their straight state:</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/5-sheet-music-stave-lines-straight.png"><img alt="Sheet music stave lines (straight)" decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/5-sheet-music-stave-lines-straight.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/5-sheet-music-stave-lines-straight.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/5-sheet-music-stave-lines-straight.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/5-sheet-music-stave-lines-straight.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/5-sheet-music-stave-lines-straight.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/5-sheet-music-stave-lines-straight.png 2000w" width="800"></img></a><figcaption>Sheet music stave lines (straight). (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/5-sheet-music-stave-lines-straight.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/6-three-rows-musical-notes.png"><img alt="Three rows of musical notes" decoding="async" fetchpriority="low" height="275" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/6-three-rows-musical-notes.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/6-three-rows-musical-notes.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/6-three-rows-musical-notes.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/6-three-rows-musical-notes.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/6-three-rows-musical-notes.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/6-three-rows-musical-notes.png 2000w" width="800"></img></a><figcaption>Three rows of musical notes. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/6-three-rows-musical-notes.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/7-animated-shadow.png"><img alt="Animated shadow" decoding="async" fetchpriority="low" height="275" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/7-animated-shadow.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/7-animated-shadow.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/7-animated-shadow.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/7-animated-shadow.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/7-animated-shadow.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/7-animated-shadow.png 2000w" width="800"></img></a><figcaption>Animated shadow. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/7-animated-shadow.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/8-animated-piano-keys.png"><img alt="Animated piano keys" decoding="async" fetchpriority="low" height="275" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/8-animated-piano-keys.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/8-animated-piano-keys.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/8-animated-piano-keys.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/8-animated-piano-keys.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/8-animated-piano-keys.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/8-animated-piano-keys.png 2000w" width="800"></img></a><figcaption>Animated piano keys. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/8-animated-piano-keys.png">Large preview</a>)</figcaption></figure><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><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://www.smashingmagazine.com/printed-books/image-optimization/"><div><picture><source srcset="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2c669cf1-c6ef-4c87-9901-018b04f7871f/image-optimization-shop-cover-opt.avif" type="image/avif"><img alt="Feature Panel" decoding="async" height="697" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/87fd0cfa-692e-459c-b2f3-15209a1f6aa7/image-optimization-shop-cover-opt.png" width="480"></img></source></picture></div></a></div></aside></div><h2 id="mike-worth">Mike Worth</h2><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/9-design-mike-worth.png"><img alt="Design for Mike Worth" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/9-design-mike-worth.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/9-design-mike-worth.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/9-design-mike-worth.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/9-design-mike-worth.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/9-design-mike-worth.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/9-design-mike-worth.png 2000w" width="800"></img></a><figcaption>My design for Emmy award-winning composer Mike Worth. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/9-design-mike-worth.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/10-illustration-mike-worth.png"><img alt="Illustration for Mike Worth" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/10-illustration-mike-worth.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/10-illustration-mike-worth.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/10-illustration-mike-worth.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/10-illustration-mike-worth.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/10-illustration-mike-worth.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/10-illustration-mike-worth.png 2000w" width="800"></img></a><figcaption>Another of my illustrations for Mike Worth. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/10-illustration-mike-worth.png">Large preview</a>)</figcaption></figure><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><figure><p><iframe allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" frameborder="0" src="https://player.vimeo.com/video/1129470404"></iframe></p></figure><p>My SVG is deliberately structured, and from back to front, it includes the cave, light shaft, Orango, and navigation:</p><pre><code><svg data-lights="lights-off"> <g id="cave">[…]</g> <path id="light-shaft" d="[…]"></path> <g id="orango">[…]</g> <g id="nav">[…]</g> </svg> </code></pre><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/11-cave-background.png"><img alt="The cave background" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/11-cave-background.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/11-cave-background.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/11-cave-background.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/11-cave-background.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/11-cave-background.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/11-cave-background.png 2000w" width="800"></img></a><figcaption>The cave background. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/11-cave-background.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/12-orango-isolated.png"><img alt="Orango isolated" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/12-orango-isolated.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/12-orango-isolated.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/12-orango-isolated.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/12-orango-isolated.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/12-orango-isolated.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/12-orango-isolated.png 2000w" width="800"></img></a><figcaption>Orango isolated. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/12-orango-isolated.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/13-light-shafts-isolated.png"><img alt="Light shafts isolated" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/13-light-shafts-isolated.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/13-light-shafts-isolated.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/13-light-shafts-isolated.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/13-light-shafts-isolated.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/13-light-shafts-isolated.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/13-light-shafts-isolated.png 2000w" width="800"></img></a><figcaption>Light shafts isolated. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/13-light-shafts-isolated.png">Large preview</a>)</figcaption></figure><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><h2 id="epd">EPD</h2><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/14-design-epd.png"><img alt="Design for the property investment company" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/14-design-epd.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/14-design-epd.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/14-design-epd.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/14-design-epd.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/14-design-epd.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/14-design-epd.png 2000w" width="800"></img></a><figcaption>My design for the property investment company EPD. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/14-design-epd.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/15-design-manchester-london.png"><img alt="Illustrations showing the skylines of Manchester and London" decoding="async" fetchpriority="low" height="208" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/15-design-manchester-london.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/15-design-manchester-london.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/15-design-manchester-london.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/15-design-manchester-london.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/15-design-manchester-london.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/15-design-manchester-london.png 2000w" width="800"></img></a><figcaption>Manchester and London. Two of my illustrations for EPD. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/15-design-manchester-london.png">Large preview</a>)</figcaption></figure><p>In each of these ambient animations, the wheels rotate and the large circles change colour at random intervals.</p><figure><p><iframe allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" frameborder="0" src="https://player.vimeo.com/video/1129472862"></iframe></p></figure><p>To begin optimising this illustration for animation, I exported the base paths containing every element except the wheel:</p><pre><code><g id="banner-base> <path d="[…]"/> <path d="[…]"/> <path d="[…]"/> […] </g> </code></pre><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/16-manchester-illustration-base-layer.png"><img alt="Manchester illustration base layer" decoding="async" fetchpriority="low" height="195" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/16-manchester-illustration-base-layer.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/16-manchester-illustration-base-layer.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/16-manchester-illustration-base-layer.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/16-manchester-illustration-base-layer.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/16-manchester-illustration-base-layer.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/16-manchester-illustration-base-layer.png 2000w" width="800"></img></a><figcaption>My Manchester illustration base layer. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/16-manchester-illustration-base-layer.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/17-circles-manchester-illustration.png"><img alt="Random-looking circles in Manchester illustration" decoding="async" fetchpriority="low" height="195" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/17-circles-manchester-illustration.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/17-circles-manchester-illustration.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/17-circles-manchester-illustration.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/17-circles-manchester-illustration.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/17-circles-manchester-illustration.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/17-circles-manchester-illustration.png 2000w" width="800"></img></a><figcaption>Random-looking circles in my Manchester illustration. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/17-circles-manchester-illustration.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/18-rotating-wheel-manchester-illustration.png"><img alt="Rotating wheel in Manchester illustration" decoding="async" fetchpriority="low" height="195" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/18-rotating-wheel-manchester-illustration.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/18-rotating-wheel-manchester-illustration.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/18-rotating-wheel-manchester-illustration.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/18-rotating-wheel-manchester-illustration.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/18-rotating-wheel-manchester-illustration.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/18-rotating-wheel-manchester-illustration.png 2000w" width="800"></img></a><figcaption>Rotating wheel in my Manchester illustration. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/18-rotating-wheel-manchester-illustration.png">Large preview</a>)</figcaption></figure><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><h2 id="wrapping-up">Wrapping up</h2><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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aKeep%20motion%20slow,%20seamless,%20and%20purposeful%20so%20that%20it%20enhances,%20rather%20than%20distracts%20from,%20the%20design.%0a&amp;url=https://smashingmagazine.com%2f2025%2f10%2fambient-animations-web-design-practical-applications-part2%2f">Keep motion slow, seamless, and purposeful so that it enhances, rather than distracts from, the design.</a></p></blockquote><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https:null" /><h1>Practical Applications (Part 2) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>10 min read</li><li><a href="http://www.smashingmagazine.com/category/animation">Animation</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/svg">SVG</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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 <a href="https://stuffandnonsense.co.uk">Andy Clarke</a> shows how ambient animations can add personality to any website design.</section></div><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><h2 id="reuven-herman">Reuven Herman</h2><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/1-design-reuven-herman.png"><img alt="Design for LA-based composer Reuven Herman" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/1-design-reuven-herman.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/1-design-reuven-herman.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/1-design-reuven-herman.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/1-design-reuven-herman.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/1-design-reuven-herman.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/1-design-reuven-herman.png 2000w" width="800"></img></a><figcaption>My design for LA-based composer Reuven Herman. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/1-design-reuven-herman.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/2-album-cover-designs-alex-steinweiss.png"><img alt="Album cover designs by Alex Steinweiss" decoding="async" fetchpriority="low" height="267" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/2-album-cover-designs-alex-steinweiss.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/2-album-cover-designs-alex-steinweiss.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/2-album-cover-designs-alex-steinweiss.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/2-album-cover-designs-alex-steinweiss.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/2-album-cover-designs-alex-steinweiss.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/2-album-cover-designs-alex-steinweiss.png 2000w" width="800"></img></a><figcaption>Album cover designs by Alex Steinweiss. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/2-album-cover-designs-alex-steinweiss.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/3-illustrations-reuven-herman.png"><img alt="Illustrations for Reuven Herman" decoding="async" fetchpriority="low" height="267" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/3-illustrations-reuven-herman.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/3-illustrations-reuven-herman.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/3-illustrations-reuven-herman.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/3-illustrations-reuven-herman.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/3-illustrations-reuven-herman.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/3-illustrations-reuven-herman.png 2000w" width="800"></img></a><figcaption>Two of my illustrations for Reuven Herman. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/3-illustrations-reuven-herman.png">Large preview</a>)</figcaption></figure><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><figure><p><iframe allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" frameborder="0" src="https://player.vimeo.com/video/1129468148"></iframe></p></figure><p>You can view this ambient animation <a href="https://stuffandnonsense.co.uk/lab/ambient-animations.html">in my lab</a>. For Reuven’s site:</p><ul><li>Sheet music stave lines morph between wavy and straight states.</li><li>Notes drift at different speeds to create parallax-like depth.</li><li>Piano keys appear to float.</li></ul><p>My first step is always to <a href="https://www.smashingmagazine.com/2025/06/smashing-animations-part-4-optimising-svgs/">optimise my SVGs for animation</a> by exporting and optimising one set of elements at a time — always in the order they’ll appear in the final file and building the master SVG gradually. Working forwards from the background, I exported the sheet music stave lines, first in their wavy state.</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/4-sheet-music-stave-lines-wavy.png"><img alt="Sheet music stave lines (wavy)" decoding="async" fetchpriority="low" height="275" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/4-sheet-music-stave-lines-wavy.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/4-sheet-music-stave-lines-wavy.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/4-sheet-music-stave-lines-wavy.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/4-sheet-music-stave-lines-wavy.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/4-sheet-music-stave-lines-wavy.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/4-sheet-music-stave-lines-wavy.png 2000w" width="800"></img></a><figcaption>Sheet music stave lines (wavy). (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/4-sheet-music-stave-lines-wavy.png">Large preview</a>)</figcaption></figure><p>…followed by their straight state:</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/5-sheet-music-stave-lines-straight.png"><img alt="Sheet music stave lines (straight)" decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/5-sheet-music-stave-lines-straight.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/5-sheet-music-stave-lines-straight.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/5-sheet-music-stave-lines-straight.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/5-sheet-music-stave-lines-straight.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/5-sheet-music-stave-lines-straight.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/5-sheet-music-stave-lines-straight.png 2000w" width="800"></img></a><figcaption>Sheet music stave lines (straight). (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/5-sheet-music-stave-lines-straight.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/6-three-rows-musical-notes.png"><img alt="Three rows of musical notes" decoding="async" fetchpriority="low" height="275" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/6-three-rows-musical-notes.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/6-three-rows-musical-notes.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/6-three-rows-musical-notes.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/6-three-rows-musical-notes.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/6-three-rows-musical-notes.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/6-three-rows-musical-notes.png 2000w" width="800"></img></a><figcaption>Three rows of musical notes. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/6-three-rows-musical-notes.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/7-animated-shadow.png"><img alt="Animated shadow" decoding="async" fetchpriority="low" height="275" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/7-animated-shadow.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/7-animated-shadow.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/7-animated-shadow.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/7-animated-shadow.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/7-animated-shadow.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/7-animated-shadow.png 2000w" width="800"></img></a><figcaption>Animated shadow. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/7-animated-shadow.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/8-animated-piano-keys.png"><img alt="Animated piano keys" decoding="async" fetchpriority="low" height="275" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/8-animated-piano-keys.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/8-animated-piano-keys.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/8-animated-piano-keys.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/8-animated-piano-keys.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/8-animated-piano-keys.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/8-animated-piano-keys.png 2000w" width="800"></img></a><figcaption>Animated piano keys. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/8-animated-piano-keys.png">Large preview</a>)</figcaption></figure><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><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://www.smashingmagazine.com/printed-books/image-optimization/"><div><picture><source srcset="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2c669cf1-c6ef-4c87-9901-018b04f7871f/image-optimization-shop-cover-opt.avif" type="image/avif"><img alt="Feature Panel" decoding="async" height="697" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/87fd0cfa-692e-459c-b2f3-15209a1f6aa7/image-optimization-shop-cover-opt.png" width="480"></img></source></picture></div></a></div></aside></div><h2 id="mike-worth">Mike Worth</h2><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/9-design-mike-worth.png"><img alt="Design for Mike Worth" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/9-design-mike-worth.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/9-design-mike-worth.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/9-design-mike-worth.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/9-design-mike-worth.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/9-design-mike-worth.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/9-design-mike-worth.png 2000w" width="800"></img></a><figcaption>My design for Emmy award-winning composer Mike Worth. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/9-design-mike-worth.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/10-illustration-mike-worth.png"><img alt="Illustration for Mike Worth" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/10-illustration-mike-worth.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/10-illustration-mike-worth.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/10-illustration-mike-worth.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/10-illustration-mike-worth.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/10-illustration-mike-worth.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/10-illustration-mike-worth.png 2000w" width="800"></img></a><figcaption>Another of my illustrations for Mike Worth. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/10-illustration-mike-worth.png">Large preview</a>)</figcaption></figure><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><figure><p><iframe allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" frameborder="0" src="https://player.vimeo.com/video/1129470404"></iframe></p></figure><p>My SVG is deliberately structured, and from back to front, it includes the cave, light shaft, Orango, and navigation:</p><pre><code><svg data-lights="lights-off"> <g id="cave">[…]</g> <path id="light-shaft" d="[…]"></path> <g id="orango">[…]</g> <g id="nav">[…]</g> </svg> </code></pre><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/11-cave-background.png"><img alt="The cave background" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/11-cave-background.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/11-cave-background.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/11-cave-background.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/11-cave-background.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/11-cave-background.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/11-cave-background.png 2000w" width="800"></img></a><figcaption>The cave background. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/11-cave-background.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/12-orango-isolated.png"><img alt="Orango isolated" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/12-orango-isolated.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/12-orango-isolated.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/12-orango-isolated.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/12-orango-isolated.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/12-orango-isolated.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/12-orango-isolated.png 2000w" width="800"></img></a><figcaption>Orango isolated. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/12-orango-isolated.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/13-light-shafts-isolated.png"><img alt="Light shafts isolated" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/13-light-shafts-isolated.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/13-light-shafts-isolated.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/13-light-shafts-isolated.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/13-light-shafts-isolated.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/13-light-shafts-isolated.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/13-light-shafts-isolated.png 2000w" width="800"></img></a><figcaption>Light shafts isolated. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/13-light-shafts-isolated.png">Large preview</a>)</figcaption></figure><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><h2 id="epd">EPD</h2><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/14-design-epd.png"><img alt="Design for the property investment company" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/14-design-epd.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/14-design-epd.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/14-design-epd.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/14-design-epd.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/14-design-epd.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/14-design-epd.png 2000w" width="800"></img></a><figcaption>My design for the property investment company EPD. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/14-design-epd.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/15-design-manchester-london.png"><img alt="Illustrations showing the skylines of Manchester and London" decoding="async" fetchpriority="low" height="208" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/15-design-manchester-london.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/15-design-manchester-london.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/15-design-manchester-london.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/15-design-manchester-london.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/15-design-manchester-london.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/15-design-manchester-london.png 2000w" width="800"></img></a><figcaption>Manchester and London. Two of my illustrations for EPD. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/15-design-manchester-london.png">Large preview</a>)</figcaption></figure><p>In each of these ambient animations, the wheels rotate and the large circles change colour at random intervals.</p><figure><p><iframe allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" frameborder="0" src="https://player.vimeo.com/video/1129472862"></iframe></p></figure><p>To begin optimising this illustration for animation, I exported the base paths containing every element except the wheel:</p><pre><code><g id="banner-base> <path d="[…]"/> <path d="[…]"/> <path d="[…]"/> […] </g> </code></pre><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/16-manchester-illustration-base-layer.png"><img alt="Manchester illustration base layer" decoding="async" fetchpriority="low" height="195" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/16-manchester-illustration-base-layer.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/16-manchester-illustration-base-layer.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/16-manchester-illustration-base-layer.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/16-manchester-illustration-base-layer.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/16-manchester-illustration-base-layer.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/16-manchester-illustration-base-layer.png 2000w" width="800"></img></a><figcaption>My Manchester illustration base layer. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/16-manchester-illustration-base-layer.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/17-circles-manchester-illustration.png"><img alt="Random-looking circles in Manchester illustration" decoding="async" fetchpriority="low" height="195" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/17-circles-manchester-illustration.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/17-circles-manchester-illustration.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/17-circles-manchester-illustration.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/17-circles-manchester-illustration.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/17-circles-manchester-illustration.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/17-circles-manchester-illustration.png 2000w" width="800"></img></a><figcaption>Random-looking circles in my Manchester illustration. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/17-circles-manchester-illustration.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/18-rotating-wheel-manchester-illustration.png"><img alt="Rotating wheel in Manchester illustration" decoding="async" fetchpriority="low" height="195" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/18-rotating-wheel-manchester-illustration.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/18-rotating-wheel-manchester-illustration.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/18-rotating-wheel-manchester-illustration.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/18-rotating-wheel-manchester-illustration.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/18-rotating-wheel-manchester-illustration.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/18-rotating-wheel-manchester-illustration.png 2000w" width="800"></img></a><figcaption>Rotating wheel in my Manchester illustration. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-practical-applications-part2/18-rotating-wheel-manchester-illustration.png">Large preview</a>)</figcaption></figure><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><h2 id="wrapping-up">Wrapping up</h2><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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aKeep%20motion%20slow,%20seamless,%20and%20purposeful%20so%20that%20it%20enhances,%20rather%20than%20distracts%20from,%20the%20design.%0a&amp;url=https://smashingmagazine.com%2f2025%2f10%2fambient-animations-web-design-practical-applications-part2%2f">Keep motion slow, seamless, and purposeful so that it enhances, rather than distracts from, the design.</a></p></blockquote><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <img src="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/ai-ux-achieve-more-with-less.jpg" /><h1>Achieve More With Less — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>16 min read</li><li><a href="http://www.smashingmagazine.com/category/ai">AI</a>, <a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/workflow">Workflow</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><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><h2 id="how-to-work-with-ai">How To Work With AI</h2><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 id="the-basics-of-prompting">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></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></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></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></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.<p>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.</p></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 id="learn-when-to-trust-it">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><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="using-ai-for-user-research">Using AI For User Research</h2><p>This is where AI has genuinely transformed my work. I use it constantly for five main things.</p><h3 id="online-research">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 id="analyzing-interviews-and-surveys">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 id="making-sense-of-data">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><figure><a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/1-microsoft-clarity.png"><img alt="Screenshot of the Microsoft Clarity with the built-in Copilot" decoding="async" fetchpriority="low" height="465" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/1-microsoft-clarity.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/1-microsoft-clarity.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/1-microsoft-clarity.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/1-microsoft-clarity.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/1-microsoft-clarity.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/1-microsoft-clarity.png 2000w" width="800"></img></a><figcaption>Microsoft Clarity has co-pilot built in, making it so much easier to uncover insights. (<a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/1-microsoft-clarity.png">Large preview</a>)</figcaption></figure><h3 id="research-projects">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 id="creating-personas">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><figure><a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/2-ai-creating-personas.png"><img alt="Ai-generated functional persona" decoding="async" fetchpriority="low" height="2480" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/2-ai-creating-personas.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/2-ai-creating-personas.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/2-ai-creating-personas.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/2-ai-creating-personas.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/2-ai-creating-personas.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/2-ai-creating-personas.png 2000w" width="800"></img></a><figcaption>AI makes creating detailed personas so much faster. (<a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/2-ai-creating-personas.png">Large preview</a>)</figcaption></figure><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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aMy%20only%20concern%20is%20that%20relying%20too%20heavily%20on%20AI%20could%20disconnect%20us%20from%20real%20users.%20We%20still%20need%20to%20talk%20to%20people.%20We%20still%20need%20that%20empathy.%20But%20as%20a%20tool%20to%20synthesize%20research%20and%20create%20reference%20points?%20It%20is%20excellent.%0a&amp;url=https://smashingmagazine.com%2f2025%2f10%2fai-ux-achieve-more-with-less%2f">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.</a></p></blockquote><h2 id="using-ai-for-design-and-development">Using AI For Design And Development</h2><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 id="functional-prototypes">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 id="small-coding-tasks">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><figure><a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/3-bolt-tool.png"><img alt="Screenshot of the Bolt tool" decoding="async" fetchpriority="low" height="465" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/3-bolt-tool.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/3-bolt-tool.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/3-bolt-tool.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/3-bolt-tool.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/3-bolt-tool.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/3-bolt-tool.png 2000w" width="800"></img></a><figcaption>I find Bolt an incredibly intuitive tool for building quick prototypes for low-risk apps. (<a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/3-bolt-tool.png">Large preview</a>)</figcaption></figure><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 id="reviewing-existing-services">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><figure><a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/4-baymard-ux-ray.png"><img alt="Screenshot of the Baymard UX-ray" decoding="async" fetchpriority="low" height="465" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/4-baymard-ux-ray.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/4-baymard-ux-ray.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/4-baymard-ux-ray.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/4-baymard-ux-ray.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/4-baymard-ux-ray.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/4-baymard-ux-ray.png 2000w" width="800"></img></a><figcaption>Baymard UX-ray is an incredibly handy tool for improving the quality of your UX audits. (<a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/4-baymard-ux-ray.png">Large preview</a>)</figcaption></figure><h3 id="checking-your-designs">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><figure><a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/5-attention-insight.png"><img alt="An example from a pet insurance company tested by Attention Insight" decoding="async" fetchpriority="low" height="421" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/5-attention-insight.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/5-attention-insight.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/5-attention-insight.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/5-attention-insight.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/5-attention-insight.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/5-attention-insight.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/5-attention-insight.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/6-redesigned-ai-version.png"><img alt="Redesigned version of the previous example with AI-generated images." decoding="async" fetchpriority="low" height="394" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/6-redesigned-ai-version.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/6-redesigned-ai-version.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/6-redesigned-ai-version.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/6-redesigned-ai-version.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/6-redesigned-ai-version.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/6-redesigned-ai-version.png 2000w" width="800"></img></a><figcaption>AI can be used to create images that are consistent with a brand identity and are designed to draw attention to specific elements. (<a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/6-redesigned-ai-version.png">Large preview</a>)</figcaption></figure><h3 id="creating-the-perfect-image">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><h2 id="using-ai-for-content">Using AI For Content</h2><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 id="build-everything-around-questions">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 id="get-bullet-point-answers-from-stakeholders">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 id="let-ai-draft-the-copy">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 id="stakeholders-review-and-provide-feedback">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 id="tools-that-help">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><figure><a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/7-hemingway-editor.png"><img alt="Screenshot of the Hemingway Editor" decoding="async" fetchpriority="low" height="497" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/7-hemingway-editor.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/7-hemingway-editor.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/7-hemingway-editor.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/7-hemingway-editor.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/7-hemingway-editor.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/7-hemingway-editor.png 2000w" width="800"></img></a><figcaption>Hemingway Editor is superb at rewriting copy to be more web-friendly. (<a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/7-hemingway-editor.png">Large preview</a>)</figcaption></figure><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><h2 id="what-this-means-for-you">What This Means for You</h2><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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aYour%20value%20as%20a%20UX%20professional%20lies%20in%20your%20ideas,%20your%20questions,%20and%20your%20thinking.%20Not%20your%20ability%20to%20use%20Figma.%20Not%20your%20ability%20to%20manually%20review%20transcripts.%20Not%20your%20ability%20to%20write%20reports%20from%20scratch.%0a&amp;url=https://smashingmagazine.com%2f2025%2f10%2fai-ux-achieve-more-with-less%2f">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.</a></p></blockquote><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/ai-ux-achieve-more-with-less.jpg" /><h1>Achieve More With Less — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>16 min read</li><li><a href="http://www.smashingmagazine.com/category/ai">AI</a>, <a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/workflow">Workflow</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><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><h2 id="how-to-work-with-ai">How To Work With AI</h2><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 id="the-basics-of-prompting">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></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></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></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></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.<p>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.</p></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 id="learn-when-to-trust-it">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><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="using-ai-for-user-research">Using AI For User Research</h2><p>This is where AI has genuinely transformed my work. I use it constantly for five main things.</p><h3 id="online-research">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 id="analyzing-interviews-and-surveys">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 id="making-sense-of-data">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><figure><a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/1-microsoft-clarity.png"><img alt="Screenshot of the Microsoft Clarity with the built-in Copilot" decoding="async" fetchpriority="low" height="465" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/1-microsoft-clarity.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/1-microsoft-clarity.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/1-microsoft-clarity.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/1-microsoft-clarity.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/1-microsoft-clarity.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/1-microsoft-clarity.png 2000w" width="800"></img></a><figcaption>Microsoft Clarity has co-pilot built in, making it so much easier to uncover insights. (<a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/1-microsoft-clarity.png">Large preview</a>)</figcaption></figure><h3 id="research-projects">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 id="creating-personas">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><figure><a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/2-ai-creating-personas.png"><img alt="Ai-generated functional persona" decoding="async" fetchpriority="low" height="2480" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/2-ai-creating-personas.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/2-ai-creating-personas.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/2-ai-creating-personas.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/2-ai-creating-personas.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/2-ai-creating-personas.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/2-ai-creating-personas.png 2000w" width="800"></img></a><figcaption>AI makes creating detailed personas so much faster. (<a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/2-ai-creating-personas.png">Large preview</a>)</figcaption></figure><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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aMy%20only%20concern%20is%20that%20relying%20too%20heavily%20on%20AI%20could%20disconnect%20us%20from%20real%20users.%20We%20still%20need%20to%20talk%20to%20people.%20We%20still%20need%20that%20empathy.%20But%20as%20a%20tool%20to%20synthesize%20research%20and%20create%20reference%20points?%20It%20is%20excellent.%0a&amp;url=https://smashingmagazine.com%2f2025%2f10%2fai-ux-achieve-more-with-less%2f">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.</a></p></blockquote><h2 id="using-ai-for-design-and-development">Using AI For Design And Development</h2><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 id="functional-prototypes">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 id="small-coding-tasks">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><figure><a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/3-bolt-tool.png"><img alt="Screenshot of the Bolt tool" decoding="async" fetchpriority="low" height="465" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/3-bolt-tool.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/3-bolt-tool.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/3-bolt-tool.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/3-bolt-tool.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/3-bolt-tool.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/3-bolt-tool.png 2000w" width="800"></img></a><figcaption>I find Bolt an incredibly intuitive tool for building quick prototypes for low-risk apps. (<a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/3-bolt-tool.png">Large preview</a>)</figcaption></figure><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 id="reviewing-existing-services">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><figure><a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/4-baymard-ux-ray.png"><img alt="Screenshot of the Baymard UX-ray" decoding="async" fetchpriority="low" height="465" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/4-baymard-ux-ray.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/4-baymard-ux-ray.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/4-baymard-ux-ray.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/4-baymard-ux-ray.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/4-baymard-ux-ray.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/4-baymard-ux-ray.png 2000w" width="800"></img></a><figcaption>Baymard UX-ray is an incredibly handy tool for improving the quality of your UX audits. (<a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/4-baymard-ux-ray.png">Large preview</a>)</figcaption></figure><h3 id="checking-your-designs">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><figure><a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/5-attention-insight.png"><img alt="An example from a pet insurance company tested by Attention Insight" decoding="async" fetchpriority="low" height="421" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/5-attention-insight.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/5-attention-insight.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/5-attention-insight.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/5-attention-insight.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/5-attention-insight.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/5-attention-insight.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/5-attention-insight.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/6-redesigned-ai-version.png"><img alt="Redesigned version of the previous example with AI-generated images." decoding="async" fetchpriority="low" height="394" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/6-redesigned-ai-version.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/6-redesigned-ai-version.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/6-redesigned-ai-version.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/6-redesigned-ai-version.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/6-redesigned-ai-version.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/6-redesigned-ai-version.png 2000w" width="800"></img></a><figcaption>AI can be used to create images that are consistent with a brand identity and are designed to draw attention to specific elements. (<a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/6-redesigned-ai-version.png">Large preview</a>)</figcaption></figure><h3 id="creating-the-perfect-image">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><h2 id="using-ai-for-content">Using AI For Content</h2><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 id="build-everything-around-questions">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 id="get-bullet-point-answers-from-stakeholders">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 id="let-ai-draft-the-copy">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 id="stakeholders-review-and-provide-feedback">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 id="tools-that-help">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><figure><a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/7-hemingway-editor.png"><img alt="Screenshot of the Hemingway Editor" decoding="async" fetchpriority="low" height="497" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/7-hemingway-editor.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/7-hemingway-editor.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/7-hemingway-editor.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/7-hemingway-editor.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/7-hemingway-editor.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ai-ux-achieve-more-with-less/7-hemingway-editor.png 2000w" width="800"></img></a><figcaption>Hemingway Editor is superb at rewriting copy to be more web-friendly. (<a href="https://files.smashing.media/articles/ai-ux-achieve-more-with-less/7-hemingway-editor.png">Large preview</a>)</figcaption></figure><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><h2 id="what-this-means-for-you">What This Means for You</h2><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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aYour%20value%20as%20a%20UX%20professional%20lies%20in%20your%20ideas,%20your%20questions,%20and%20your%20thinking.%20Not%20your%20ability%20to%20use%20Figma.%20Not%20your%20ability%20to%20manually%20review%20transcripts.%20Not%20your%20ability%20to%20write%20reports%20from%20scratch.%0a&amp;url=https://smashingmagazine.com%2f2025%2f10%2fai-ux-achieve-more-with-less%2f">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.</a></p></blockquote><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <img src="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/how-make-ux-research-hard-to-ignore.jpg" /><h1>How To Make Your UX Research Hard To Ignore — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>7 min read</li><li><a href="http://www.smashingmagazine.com/category/user-research">User Research</a>, <a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><p>In the early days of my career, I believed that nothing <strong>wins an argument</strong> more effectively than strong and unbiased research. Surely facts speak for themselves, I thought.</p><p>If I just get enough data, just enough evidence, just enough clarity on where users struggle — well, once I have it all and I present it all, it alone will surely change people’s minds, hearts, and beliefs. And, most importantly, it will help everyone see, understand, and perhaps even appreciate and commit to <strong>what needs to be done</strong>.</p><p>Well, it’s not quite like that. In fact, the stronger and louder the data, the more likely it is to be <strong>questioned</strong>. And there is a good reason for that, which is often left between the lines.</p><h2 id="research-amplifies-internal-flaws">Research Amplifies Internal Flaws</h2><p>Throughout the years, I’ve often seen data speaking volumes about where the business is failing, where customers are struggling, where the team is faltering — and where an <strong>urgent turnaround</strong> is necessary. It was right there, in plain sight: clear, loud, and obvious.</p><figure><a href="https://medium.com/shopify-ux/the-design-process-is-a-lie-465a7064a733"><img alt="Illustration by José Torre." decoding="async" fetchpriority="low" height="600" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/1-illustration-jose-torre.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/1-illustration-jose-torre.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/1-illustration-jose-torre.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/1-illustration-jose-torre.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/1-illustration-jose-torre.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/1-illustration-jose-torre.jpg 2000w" width="800"></img></a><figcaption>Good research doesn't just uncover troubles; it also amplifies internal flaws and poor decisions. Wonderful illustration by <a href="https://medium.com/shopify-ux/the-design-process-is-a-lie-465a7064a733">José Torre</a>. (<a href="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/1-illustration-jose-torre.jpg">Large preview</a>)</figcaption></figure><p>But because it’s so clear, it reflects back, often amplifying all the sharp edges and all the cut corners in all the wrong places. It reflects internal flaws, <strong>wrong assumptions</strong>, and failing projects — some of them signed off years ago, with secured budgets, big promotions, and approved headcounts. Questioning them means <strong>questioning authority</strong>, and often it’s a tough path to take.</p><p>As it turns out, strong data is very, very good at raising <strong>uncomfortable truths</strong> that most companies don’t really want to acknowledge. That’s why, at times, research is deemed “unnecessary,” or why we don’t get access to users, or why <strong>loud voices</strong> always win big arguments.</p><figure><a href="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/2-ux-research-b2b.jpg"><img alt="UX Research in B2B." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/2-ux-research-b2b.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/2-ux-research-b2b.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/2-ux-research-b2b.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/2-ux-research-b2b.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/2-ux-research-b2b.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/2-ux-research-b2b.jpg 2000w" width="800"></img></a><figcaption>UX Research in B2B: when you don’t have access to users. (<a href="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/2-ux-research-b2b.jpg">Large preview</a>)</figcaption></figure><p>So even if data is presented with a lot of eagerness, gravity, and passion in that big meeting, it will get questioned, doubted, and explained away. Not because of its flaws, but because of hope, reluctance to change, and layers of <strong>internal politics</strong>.</p><p>This shows up most vividly in situations when someone raises concerns about the <strong>validity and accuracy</strong> of research. Frankly, it’s not that somebody is wrong and somebody is right. Both parties just happen to be <strong>right in a different way</strong>.</p><h2 id="what-to-do-when-data-disagrees">What To Do When Data Disagrees</h2><p>We’ve all heard that data always tells a story. However, it’s <strong>never just a single story</strong>. People are complex, and pointing out a specific truth about them just by looking at numbers is rarely enough.</p><p>When data disagrees, it doesn’t mean that either is wrong. It’s just that <strong>different perspectives</strong> reveal different parts of a whole story that isn’t completed yet.</p><figure><a href="https://medium.com/lexisnexis-design/what-to-do-when-qual-and-quant-disagree-18a535164ca6"><img alt="Various UX Research methods" decoding="async" fetchpriority="low" height="972" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/3-qual-quant-data.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/3-qual-quant-data.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/3-qual-quant-data.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/3-qual-quant-data.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/3-qual-quant-data.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/3-qual-quant-data.jpg 2000w" width="800"></img></a><figcaption><a href="https://medium.com/lexisnexis-design/what-to-do-when-qual-and-quant-disagree-18a535164ca6">What to do when qual and quant disagree</a>, a very practical guide by Archana Shah. (<a href="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/3-qual-quant-data.jpg">Large preview</a>)</figcaption></figure><p>In digital products, most stories have <strong>2 sides</strong>:</p><ul><li><strong>Quantitative data</strong> ← What/When: behavior patterns at scale.</li><li><strong>Qualitative data</strong> ← Why/How: user needs and motivations.</li><li>↳ Quant usually comes from analytics, surveys, and experiments.</li><li>↳ Qual comes from tests, observations, and open-ended surveys.</li></ul><p>Risk-averse teams overestimate the <strong>weight of big numbers</strong> in quantitative research. Users exaggerate the frequency and severity of issues that are critical for them. As Archana Shah <a href="https://medium.com/lexisnexis-design/what-to-do-when-qual-and-quant-disagree-18a535164ca6">noted</a>, designers get carried away by users’ <strong>confident responses</strong> and often overestimate what people say and do.</p><p>And so, eventually, data coming from different teams paints a different picture. And when it happens, we need to <strong>reconcile and triangulate</strong>. With the former, we track what’s missing, omitted, or overlooked. With the latter, we <strong>cross-validate data</strong> — e.g., finding pairings of qual/quant streams of data, then clustering them together to see what’s there and what’s missing, and 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><h2 id="facts-don-t-win-arguments-stories-do">Facts Don’t Win Arguments, Stories Do</h2><p>Research isn’t everything. <a href="https://www.linkedin.com/posts/erikahall_tapping-the-sign-again-every-time-i-see-activity-7360805865051865090-uldg">Facts don’t win arguments</a> — <strong>powerful stories do</strong>. But a story that starts with a spreadsheet isn’t always inspiring or effective. Perhaps it brings a problem into the spotlight, but it doesn’t lead to a resolution.</p><figure><a href="https://medium.com/shopify-ux/the-design-process-is-a-lie-465a7064a733"><img alt="Illustration by José Torre." decoding="async" fetchpriority="low" height="600" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/4-illustration-jose-torre.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/4-illustration-jose-torre.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/4-illustration-jose-torre.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/4-illustration-jose-torre.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/4-illustration-jose-torre.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/4-illustration-jose-torre.png 2000w" width="800"></img></a><figcaption>Presenting research is more than presenting findings. It must be wrapped inside an actionable story. Wonderful illustration by <a href="https://medium.com/shopify-ux/the-design-process-is-a-lie-465a7064a733">José Torre</a>. (<a href="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/4-illustration-jose-torre.png">Large preview</a>)</figcaption></figure><p>The very first thing I try to do in that big boardroom meeting is to emphasize <strong>what unites us</strong> — shared goals, principles, and commitments that are relevant to the topic at hand. Then, I show how new data <strong>confirms or confronts</strong> our commitments, with specific problems we believe we need to address.</p><p>When a question about the quality of data comes in, I need to show that it has been <strong>reconciled and triangulated</strong> already and discussed with other teams as well.</p><p>A good story has a poignant ending. People need to see an <strong>alternative future</strong> to trust and accept the data — and a clear and safe path forward to commit to it. So I always try to present options and solutions that we believe will drive change and explain our decision-making behind that.</p><figure><a href="https://ucdc.therectangles.com"><img alt="User Centered Design Canvas" decoding="async" fetchpriority="low" height="485" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/5-art-interviewing-stakeholders.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/5-art-interviewing-stakeholders.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/5-art-interviewing-stakeholders.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/5-art-interviewing-stakeholders.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/5-art-interviewing-stakeholders.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/5-art-interviewing-stakeholders.png 2000w" width="800"></img></a><figcaption>A useful little helper to understand what stakeholders truly care about. <a href="https://ucdc.therectangles.com">User Centered Design Canvas</a> could be applied to stakeholders. (<a href="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/5-art-interviewing-stakeholders.png">Large preview</a>)</figcaption></figure><p>They also need to believe that this distant future is <strong>within reach</strong>, and that they can pull it off, albeit under a tough timeline or with limited resources.</p><p>And: a good story also presents a viable, compelling, <strong>shared goal</strong> that people can rally around and commit to. Ideally, it’s something that has a direct benefit for them and their teams.</p><p>These are the ingredients of the story that I always try to keep in my mind when working on that big presentation. And in fact, data is a <strong>starting point</strong>, but it does need a story wrapped around it to be effective.</p><h2 id="wrapping-up">Wrapping Up</h2><p>There is nothing more disappointing than finding a real problem that real people struggle with and facing the harsh reality of research <strong>not being trusted</strong> or valued.</p><p>We’ve all been there before. The best thing you can do is to <strong>be prepared</strong>: have strong data to back you up, include both quantitative and qualitative research — preferably with video clips from real customers — but also paint a <strong>viable future</strong> which seems within reach.</p><p>And sometimes nothing changes until <strong>something breaks</strong>. And at times, there isn’t much you can do about it unless you are prepared when it happens.</p><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.”<p>— Erika Hall</p></blockquote><h2 id="meet-how-to-measure-ux-and-design-impact">Meet “How To Measure UX And Design Impact”</h2><p>You can find more details on <strong>UX Research</strong> in <a href="https://measure-ux.com/"><strong>Measure UX &amp; 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><figure><a href="https://measure-ux.com/" title="How To Measure UX and Design Impact, with Vitaly Friedman"><img alt="How to Measure UX and Design Impact, with Vitaly Friedman." height="466" src="https://files.smashing.media/articles/ux-metrics-video-course-release/measure-ux-and-design-impact-course.png" width="900"></img></a></figure><h2 id="useful-resources">Useful Resources</h2><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&amp;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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/how-make-ux-research-hard-to-ignore.jpg" /><h1>How To Make Your UX Research Hard To Ignore — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>7 min read</li><li><a href="http://www.smashingmagazine.com/category/user-research">User Research</a>, <a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><p>In the early days of my career, I believed that nothing <strong>wins an argument</strong> more effectively than strong and unbiased research. Surely facts speak for themselves, I thought.</p><p>If I just get enough data, just enough evidence, just enough clarity on where users struggle — well, once I have it all and I present it all, it alone will surely change people’s minds, hearts, and beliefs. And, most importantly, it will help everyone see, understand, and perhaps even appreciate and commit to <strong>what needs to be done</strong>.</p><p>Well, it’s not quite like that. In fact, the stronger and louder the data, the more likely it is to be <strong>questioned</strong>. And there is a good reason for that, which is often left between the lines.</p><h2 id="research-amplifies-internal-flaws">Research Amplifies Internal Flaws</h2><p>Throughout the years, I’ve often seen data speaking volumes about where the business is failing, where customers are struggling, where the team is faltering — and where an <strong>urgent turnaround</strong> is necessary. It was right there, in plain sight: clear, loud, and obvious.</p><figure><a href="https://medium.com/shopify-ux/the-design-process-is-a-lie-465a7064a733"><img alt="Illustration by José Torre." decoding="async" fetchpriority="low" height="600" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/1-illustration-jose-torre.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/1-illustration-jose-torre.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/1-illustration-jose-torre.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/1-illustration-jose-torre.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/1-illustration-jose-torre.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/1-illustration-jose-torre.jpg 2000w" width="800"></img></a><figcaption>Good research doesn't just uncover troubles; it also amplifies internal flaws and poor decisions. Wonderful illustration by <a href="https://medium.com/shopify-ux/the-design-process-is-a-lie-465a7064a733">José Torre</a>. (<a href="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/1-illustration-jose-torre.jpg">Large preview</a>)</figcaption></figure><p>But because it’s so clear, it reflects back, often amplifying all the sharp edges and all the cut corners in all the wrong places. It reflects internal flaws, <strong>wrong assumptions</strong>, and failing projects — some of them signed off years ago, with secured budgets, big promotions, and approved headcounts. Questioning them means <strong>questioning authority</strong>, and often it’s a tough path to take.</p><p>As it turns out, strong data is very, very good at raising <strong>uncomfortable truths</strong> that most companies don’t really want to acknowledge. That’s why, at times, research is deemed “unnecessary,” or why we don’t get access to users, or why <strong>loud voices</strong> always win big arguments.</p><figure><a href="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/2-ux-research-b2b.jpg"><img alt="UX Research in B2B." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/2-ux-research-b2b.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/2-ux-research-b2b.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/2-ux-research-b2b.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/2-ux-research-b2b.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/2-ux-research-b2b.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/2-ux-research-b2b.jpg 2000w" width="800"></img></a><figcaption>UX Research in B2B: when you don’t have access to users. (<a href="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/2-ux-research-b2b.jpg">Large preview</a>)</figcaption></figure><p>So even if data is presented with a lot of eagerness, gravity, and passion in that big meeting, it will get questioned, doubted, and explained away. Not because of its flaws, but because of hope, reluctance to change, and layers of <strong>internal politics</strong>.</p><p>This shows up most vividly in situations when someone raises concerns about the <strong>validity and accuracy</strong> of research. Frankly, it’s not that somebody is wrong and somebody is right. Both parties just happen to be <strong>right in a different way</strong>.</p><h2 id="what-to-do-when-data-disagrees">What To Do When Data Disagrees</h2><p>We’ve all heard that data always tells a story. However, it’s <strong>never just a single story</strong>. People are complex, and pointing out a specific truth about them just by looking at numbers is rarely enough.</p><p>When data disagrees, it doesn’t mean that either is wrong. It’s just that <strong>different perspectives</strong> reveal different parts of a whole story that isn’t completed yet.</p><figure><a href="https://medium.com/lexisnexis-design/what-to-do-when-qual-and-quant-disagree-18a535164ca6"><img alt="Various UX Research methods" decoding="async" fetchpriority="low" height="972" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/3-qual-quant-data.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/3-qual-quant-data.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/3-qual-quant-data.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/3-qual-quant-data.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/3-qual-quant-data.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/3-qual-quant-data.jpg 2000w" width="800"></img></a><figcaption><a href="https://medium.com/lexisnexis-design/what-to-do-when-qual-and-quant-disagree-18a535164ca6">What to do when qual and quant disagree</a>, a very practical guide by Archana Shah. (<a href="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/3-qual-quant-data.jpg">Large preview</a>)</figcaption></figure><p>In digital products, most stories have <strong>2 sides</strong>:</p><ul><li><strong>Quantitative data</strong> ← What/When: behavior patterns at scale.</li><li><strong>Qualitative data</strong> ← Why/How: user needs and motivations.</li><li>↳ Quant usually comes from analytics, surveys, and experiments.</li><li>↳ Qual comes from tests, observations, and open-ended surveys.</li></ul><p>Risk-averse teams overestimate the <strong>weight of big numbers</strong> in quantitative research. Users exaggerate the frequency and severity of issues that are critical for them. As Archana Shah <a href="https://medium.com/lexisnexis-design/what-to-do-when-qual-and-quant-disagree-18a535164ca6">noted</a>, designers get carried away by users’ <strong>confident responses</strong> and often overestimate what people say and do.</p><p>And so, eventually, data coming from different teams paints a different picture. And when it happens, we need to <strong>reconcile and triangulate</strong>. With the former, we track what’s missing, omitted, or overlooked. With the latter, we <strong>cross-validate data</strong> — e.g., finding pairings of qual/quant streams of data, then clustering them together to see what’s there and what’s missing, and 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><h2 id="facts-don-t-win-arguments-stories-do">Facts Don’t Win Arguments, Stories Do</h2><p>Research isn’t everything. <a href="https://www.linkedin.com/posts/erikahall_tapping-the-sign-again-every-time-i-see-activity-7360805865051865090-uldg">Facts don’t win arguments</a> — <strong>powerful stories do</strong>. But a story that starts with a spreadsheet isn’t always inspiring or effective. Perhaps it brings a problem into the spotlight, but it doesn’t lead to a resolution.</p><figure><a href="https://medium.com/shopify-ux/the-design-process-is-a-lie-465a7064a733"><img alt="Illustration by José Torre." decoding="async" fetchpriority="low" height="600" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/4-illustration-jose-torre.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/4-illustration-jose-torre.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/4-illustration-jose-torre.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/4-illustration-jose-torre.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/4-illustration-jose-torre.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/4-illustration-jose-torre.png 2000w" width="800"></img></a><figcaption>Presenting research is more than presenting findings. It must be wrapped inside an actionable story. Wonderful illustration by <a href="https://medium.com/shopify-ux/the-design-process-is-a-lie-465a7064a733">José Torre</a>. (<a href="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/4-illustration-jose-torre.png">Large preview</a>)</figcaption></figure><p>The very first thing I try to do in that big boardroom meeting is to emphasize <strong>what unites us</strong> — shared goals, principles, and commitments that are relevant to the topic at hand. Then, I show how new data <strong>confirms or confronts</strong> our commitments, with specific problems we believe we need to address.</p><p>When a question about the quality of data comes in, I need to show that it has been <strong>reconciled and triangulated</strong> already and discussed with other teams as well.</p><p>A good story has a poignant ending. People need to see an <strong>alternative future</strong> to trust and accept the data — and a clear and safe path forward to commit to it. So I always try to present options and solutions that we believe will drive change and explain our decision-making behind that.</p><figure><a href="https://ucdc.therectangles.com"><img alt="User Centered Design Canvas" decoding="async" fetchpriority="low" height="485" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/5-art-interviewing-stakeholders.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/5-art-interviewing-stakeholders.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/5-art-interviewing-stakeholders.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/5-art-interviewing-stakeholders.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/5-art-interviewing-stakeholders.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/5-art-interviewing-stakeholders.png 2000w" width="800"></img></a><figcaption>A useful little helper to understand what stakeholders truly care about. <a href="https://ucdc.therectangles.com">User Centered Design Canvas</a> could be applied to stakeholders. (<a href="https://files.smashing.media/articles/how-make-ux-research-hard-to-ignore/5-art-interviewing-stakeholders.png">Large preview</a>)</figcaption></figure><p>They also need to believe that this distant future is <strong>within reach</strong>, and that they can pull it off, albeit under a tough timeline or with limited resources.</p><p>And: a good story also presents a viable, compelling, <strong>shared goal</strong> that people can rally around and commit to. Ideally, it’s something that has a direct benefit for them and their teams.</p><p>These are the ingredients of the story that I always try to keep in my mind when working on that big presentation. And in fact, data is a <strong>starting point</strong>, but it does need a story wrapped around it to be effective.</p><h2 id="wrapping-up">Wrapping Up</h2><p>There is nothing more disappointing than finding a real problem that real people struggle with and facing the harsh reality of research <strong>not being trusted</strong> or valued.</p><p>We’ve all been there before. The best thing you can do is to <strong>be prepared</strong>: have strong data to back you up, include both quantitative and qualitative research — preferably with video clips from real customers — but also paint a <strong>viable future</strong> which seems within reach.</p><p>And sometimes nothing changes until <strong>something breaks</strong>. And at times, there isn’t much you can do about it unless you are prepared when it happens.</p><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.”<p>— Erika Hall</p></blockquote><h2 id="meet-how-to-measure-ux-and-design-impact">Meet “How To Measure UX And Design Impact”</h2><p>You can find more details on <strong>UX Research</strong> in <a href="https://measure-ux.com/"><strong>Measure UX &amp; 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><figure><a href="https://measure-ux.com/" title="How To Measure UX and Design Impact, with Vitaly Friedman"><img alt="How to Measure UX and Design Impact, with Vitaly Friedman." height="466" src="https://files.smashing.media/articles/ux-metrics-video-course-release/measure-ux-and-design-impact-course.png" width="900"></img></a></figure><h2 id="useful-resources">Useful Resources</h2><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&amp;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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <img src="https://files.smashing.media/articles/the-grayscale-problem/the-grayscale-problem.jpg" /><h1>The Grayscale Problem — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>10 min read</li><li><a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/colors">Colors</a>, <a href="http://www.smashingmagazine.com/category/opinion-column">Opinion Column</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><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><figure><a href="https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png"><img alt="" decoding="async" fetchpriority="low" height="420" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png"><img alt="" decoding="async" fetchpriority="low" height="580" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png"><img alt="Screenshot from the Geocities Gallery" decoding="async" fetchpriority="low" height="416" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://geocities.restorativland.org/">The Geocities Gallery</a>. (<a href="https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png">Large preview</a>)</figcaption></figure><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><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://www.smashingmagazine.com/printed-books/touch-design-for-mobile-interfaces/"><div><picture><source srcset="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/14bcab88-b622-47f6-a51d-76b0aa003597/touch-design-book-shop-opt.avif" type="image/avif"><img alt="Feature Panel" decoding="async" height="697" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b14658fc-bb2d-41a6-8d1a-70eaaf1b8ec8/touch-design-book-shop-opt.png" width="480"></img></source></picture></div></a></div></aside></div><h2 id="monopolies">Monopolies</h2><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><figure><a href="https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png"><img alt="Gratscale minimalist layout example" decoding="async" fetchpriority="low" height="728" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png"><img alt="" decoding="async" fetchpriority="low" height="508" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png"><img alt="Colors mixed together into gray lopp" decoding="async" fetchpriority="low" height="424" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png">Large preview</a>)</figcaption></figure><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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aThe%20web%20is%20a%20flexible%20enough%20domain%20that%20I%20think%20it%20belongs%20in%20the%20realm%20of%20architecture.%20A%20city%20where%20all%20buildings%20look%20alike%20has%20a%20soul-crushing%20quality%20about%20it.%20The%20same%20is%20true,%20I%20think,%20of%20the%20web.%0a&amp;url=https://smashingmagazine.com%2f2025%2f10%2fthe-grayscale-problem%2f">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.</a></p></blockquote><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><figure><a href="https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png"><img alt="" decoding="async" fetchpriority="low" height="800" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/the-grayscale-problem/7-3d-model.gif"><img alt="3D model" height="520" src="https://files.smashing.media/articles/the-grayscale-problem/7-3d-model.gif" width="800"></img></a></figure><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/the-grayscale-problem/the-grayscale-problem.jpg" /><h1>The Grayscale Problem — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>10 min read</li><li><a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/colors">Colors</a>, <a href="http://www.smashingmagazine.com/category/opinion-column">Opinion Column</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>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.</section></p><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><figure><a href="https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png"><img alt="" decoding="async" fetchpriority="low" height="420" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png"><img alt="" decoding="async" fetchpriority="low" height="580" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png"><img alt="Screenshot from the Geocities Gallery" decoding="async" fetchpriority="low" height="416" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://geocities.restorativland.org/">The Geocities Gallery</a>. (<a href="https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png">Large preview</a>)</figcaption></figure><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><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://www.smashingmagazine.com/printed-books/touch-design-for-mobile-interfaces/"><div><picture><source srcset="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/14bcab88-b622-47f6-a51d-76b0aa003597/touch-design-book-shop-opt.avif" type="image/avif"><img alt="Feature Panel" decoding="async" height="697" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b14658fc-bb2d-41a6-8d1a-70eaaf1b8ec8/touch-design-book-shop-opt.png" width="480"></img></source></picture></div></a></div></aside></div><h2 id="monopolies">Monopolies</h2><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><figure><a href="https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png"><img alt="Gratscale minimalist layout example" decoding="async" fetchpriority="low" height="728" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png"><img alt="" decoding="async" fetchpriority="low" height="508" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png"><img alt="Colors mixed together into gray lopp" decoding="async" fetchpriority="low" height="424" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png">Large preview</a>)</figcaption></figure><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><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aThe%20web%20is%20a%20flexible%20enough%20domain%20that%20I%20think%20it%20belongs%20in%20the%20realm%20of%20architecture.%20A%20city%20where%20all%20buildings%20look%20alike%20has%20a%20soul-crushing%20quality%20about%20it.%20The%20same%20is%20true,%20I%20think,%20of%20the%20web.%0a&amp;url=https://smashingmagazine.com%2f2025%2f10%2fthe-grayscale-problem%2f">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.</a></p></blockquote><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><figure><a href="https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png"><img alt="" decoding="async" fetchpriority="low" height="800" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/the-grayscale-problem/7-3d-model.gif"><img alt="3D model" height="520" src="https://files.smashing.media/articles/the-grayscale-problem/7-3d-model.gif" width="800"></img></a></figure><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</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 <img src="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/smashing-animations-part-5-building-adaptive-svgs.jpg" /><h1>Building Adaptive SVGs With <symbol>, <use>, And CSS Media Queries — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>9 min read</li><li><a href="http://www.smashingmagazine.com/category/svg">SVG</a>, <a href="http://www.smashingmagazine.com/category/animation">Animation</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/css">CSS</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>SVGs, they scale, yes, but how else can you make them adapt even better to several screen sizes? Web design pioneer <a href="https://stuffandnonsense.co.uk">Andy Clarke</a> explains how he builds what he calls “adaptive SVGs” using <code><symbol></code>, <code><use></code>, and CSS Media Queries.</section></div><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/1-quick-draw-mcgraw-show.png"><img alt="Bow Wow Bandit illustration" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/1-quick-draw-mcgraw-show.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/1-quick-draw-mcgraw-show.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/1-quick-draw-mcgraw-show.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/1-quick-draw-mcgraw-show.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/1-quick-draw-mcgraw-show.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/1-quick-draw-mcgraw-show.png 2000w" width="800"></img></a><figcaption>The Quick Draw McGraw Show © Warner Bros. Entertainment Inc. (<a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/1-quick-draw-mcgraw-show.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/2-andy-clarke-bow-wow-bandit-toon-title-recreation.png"><img alt="Quick Draw McGraw character pulling back on a dog leash attached to his bloodhound, Snuffles." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/2-andy-clarke-bow-wow-bandit-toon-title-recreation.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/2-andy-clarke-bow-wow-bandit-toon-title-recreation.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/2-andy-clarke-bow-wow-bandit-toon-title-recreation.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/2-andy-clarke-bow-wow-bandit-toon-title-recreation.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/2-andy-clarke-bow-wow-bandit-toon-title-recreation.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/2-andy-clarke-bow-wow-bandit-toon-title-recreation.png 2000w" width="800"></img></a><figcaption>Andy Clarke’s Bow Wow Bandit Toon Title recreation (16:9). (<a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/2-andy-clarke-bow-wow-bandit-toon-title-recreation.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/3-svgs-aspect-ratio.png"><img alt="16:9 aspect ration vs. 3:4." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/3-svgs-aspect-ratio.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/3-svgs-aspect-ratio.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/3-svgs-aspect-ratio.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/3-svgs-aspect-ratio.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/3-svgs-aspect-ratio.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/3-svgs-aspect-ratio.png 2000w" width="800"></img></a><figcaption>Left: 16:9 aspect ratio loses its impact. Right: 3:4 format suits the screen size better. (<a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/3-svgs-aspect-ratio.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/4-bow-wow-bandit-toon-title-recreation-portrait.png"><img alt="Andy Clarke’s Bow Wow Bandit Toon Title recreation (3:4)." decoding="async" fetchpriority="low" height="729" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/4-bow-wow-bandit-toon-title-recreation-portrait.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/4-bow-wow-bandit-toon-title-recreation-portrait.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/4-bow-wow-bandit-toon-title-recreation-portrait.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/4-bow-wow-bandit-toon-title-recreation-portrait.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/4-bow-wow-bandit-toon-title-recreation-portrait.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/4-bow-wow-bandit-toon-title-recreation-portrait.png 2000w" width="800"></img></a><figcaption>Andy Clarke’s Bow Wow Bandit Toon Title recreation (3:4). (<a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/4-bow-wow-bandit-toon-title-recreation-portrait.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/5-svg-smaller-larger-screens.png"><img alt="Left: 16:9 for larger screens. Right: 3:4 for smaller screens." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/5-svg-smaller-larger-screens.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/5-svg-smaller-larger-screens.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/5-svg-smaller-larger-screens.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/5-svg-smaller-larger-screens.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/5-svg-smaller-larger-screens.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/5-svg-smaller-larger-screens.png 2000w" width="800"></img></a><figcaption>Left: 16:9 for larger screens. Right: 3:4 for smaller screens. (<a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/5-svg-smaller-larger-screens.png">Large preview</a>)</figcaption></figure><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><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="showing-and-hiding-svg">Showing And Hiding SVG</h2><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><h2 id="replacing-svgs-using-javascript">Replacing SVGs Using JavaScript</h2><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><h2 id="the-solution-one-svg-symbol-library-and-multiple-uses">The Solution: One SVG Symbol Library And Multiple Uses</h2><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><h2 id="exporting-for-individual-viewboxes">Exporting For Individual Viewboxes</h2><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/6-exporting-elements-from-sketch.png"><img alt="" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/6-exporting-elements-from-sketch.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/6-exporting-elements-from-sketch.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/6-exporting-elements-from-sketch.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/6-exporting-elements-from-sketch.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/6-exporting-elements-from-sketch.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/6-exporting-elements-from-sketch.png 2000w" width="800"></img></a><figcaption>My usual process of exporting elements from Sketch. (<a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/6-exporting-elements-from-sketch.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/7-exporting-elements-sketch-individual-svgs-files.png"><img alt="Exporting elements from Sketch as individual SVG files." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/7-exporting-elements-sketch-individual-svgs-files.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/7-exporting-elements-sketch-individual-svgs-files.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/7-exporting-elements-sketch-individual-svgs-files.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/7-exporting-elements-sketch-individual-svgs-files.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/7-exporting-elements-sketch-individual-svgs-files.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/7-exporting-elements-sketch-individual-svgs-files.png 2000w" width="800"></img></a><figcaption>Exporting elements from Sketch as individual SVG files. (<a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/7-exporting-elements-sketch-individual-svgs-files.png">Large preview</a>)</figcaption></figure><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><h2 id="using-a-symbol-in-multiple-svgs">Using A <code><symbol></code> In Multiple SVGs</h2><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><h2 id="positioning-symbols">Positioning Symbols</h2><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><h2 id="animating-use-elements">Animating <code><use></code> Elements</h2><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><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/8-final-adaptive-svg.png"><img alt="The final adaptive SVG." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/8-final-adaptive-svg.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/8-final-adaptive-svg.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/8-final-adaptive-svg.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/8-final-adaptive-svg.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/8-final-adaptive-svg.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/8-final-adaptive-svg.png 2000w" width="800"></img></a><figcaption>View the final adaptive SVG on my <a href="https://stuffandnonsense.co.uk/toon-titles/quick-draw-3.html">Toon Titles website</a>. (<a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/8-final-adaptive-svg.png">Large preview</a>)</figcaption></figure><h2 id="wrapping-up">Wrapping Up</h2><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/smashing-animations-part-5-building-adaptive-svgs.jpg" /><h1>Building Adaptive SVGs With <symbol>, <use>, And CSS Media Queries — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>9 min read</li><li><a href="http://www.smashingmagazine.com/category/svg">SVG</a>, <a href="http://www.smashingmagazine.com/category/animation">Animation</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/css">CSS</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>SVGs, they scale, yes, but how else can you make them adapt even better to several screen sizes? Web design pioneer <a href="https://stuffandnonsense.co.uk">Andy Clarke</a> explains how he builds what he calls “adaptive SVGs” using <code><symbol></code>, <code><use></code>, and CSS Media Queries.</section></div><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/1-quick-draw-mcgraw-show.png"><img alt="Bow Wow Bandit illustration" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/1-quick-draw-mcgraw-show.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/1-quick-draw-mcgraw-show.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/1-quick-draw-mcgraw-show.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/1-quick-draw-mcgraw-show.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/1-quick-draw-mcgraw-show.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/1-quick-draw-mcgraw-show.png 2000w" width="800"></img></a><figcaption>The Quick Draw McGraw Show © Warner Bros. Entertainment Inc. (<a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/1-quick-draw-mcgraw-show.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/2-andy-clarke-bow-wow-bandit-toon-title-recreation.png"><img alt="Quick Draw McGraw character pulling back on a dog leash attached to his bloodhound, Snuffles." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/2-andy-clarke-bow-wow-bandit-toon-title-recreation.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/2-andy-clarke-bow-wow-bandit-toon-title-recreation.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/2-andy-clarke-bow-wow-bandit-toon-title-recreation.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/2-andy-clarke-bow-wow-bandit-toon-title-recreation.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/2-andy-clarke-bow-wow-bandit-toon-title-recreation.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/2-andy-clarke-bow-wow-bandit-toon-title-recreation.png 2000w" width="800"></img></a><figcaption>Andy Clarke’s Bow Wow Bandit Toon Title recreation (16:9). (<a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/2-andy-clarke-bow-wow-bandit-toon-title-recreation.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/3-svgs-aspect-ratio.png"><img alt="16:9 aspect ration vs. 3:4." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/3-svgs-aspect-ratio.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/3-svgs-aspect-ratio.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/3-svgs-aspect-ratio.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/3-svgs-aspect-ratio.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/3-svgs-aspect-ratio.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/3-svgs-aspect-ratio.png 2000w" width="800"></img></a><figcaption>Left: 16:9 aspect ratio loses its impact. Right: 3:4 format suits the screen size better. (<a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/3-svgs-aspect-ratio.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/4-bow-wow-bandit-toon-title-recreation-portrait.png"><img alt="Andy Clarke’s Bow Wow Bandit Toon Title recreation (3:4)." decoding="async" fetchpriority="low" height="729" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/4-bow-wow-bandit-toon-title-recreation-portrait.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/4-bow-wow-bandit-toon-title-recreation-portrait.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/4-bow-wow-bandit-toon-title-recreation-portrait.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/4-bow-wow-bandit-toon-title-recreation-portrait.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/4-bow-wow-bandit-toon-title-recreation-portrait.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/4-bow-wow-bandit-toon-title-recreation-portrait.png 2000w" width="800"></img></a><figcaption>Andy Clarke’s Bow Wow Bandit Toon Title recreation (3:4). (<a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/4-bow-wow-bandit-toon-title-recreation-portrait.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/5-svg-smaller-larger-screens.png"><img alt="Left: 16:9 for larger screens. Right: 3:4 for smaller screens." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/5-svg-smaller-larger-screens.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/5-svg-smaller-larger-screens.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/5-svg-smaller-larger-screens.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/5-svg-smaller-larger-screens.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/5-svg-smaller-larger-screens.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/5-svg-smaller-larger-screens.png 2000w" width="800"></img></a><figcaption>Left: 16:9 for larger screens. Right: 3:4 for smaller screens. (<a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/5-svg-smaller-larger-screens.png">Large preview</a>)</figcaption></figure><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><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="showing-and-hiding-svg">Showing And Hiding SVG</h2><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><h2 id="replacing-svgs-using-javascript">Replacing SVGs Using JavaScript</h2><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><h2 id="the-solution-one-svg-symbol-library-and-multiple-uses">The Solution: One SVG Symbol Library And Multiple Uses</h2><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><h2 id="exporting-for-individual-viewboxes">Exporting For Individual Viewboxes</h2><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/6-exporting-elements-from-sketch.png"><img alt="" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/6-exporting-elements-from-sketch.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/6-exporting-elements-from-sketch.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/6-exporting-elements-from-sketch.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/6-exporting-elements-from-sketch.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/6-exporting-elements-from-sketch.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/6-exporting-elements-from-sketch.png 2000w" width="800"></img></a><figcaption>My usual process of exporting elements from Sketch. (<a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/6-exporting-elements-from-sketch.png">Large preview</a>)</figcaption></figure><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/7-exporting-elements-sketch-individual-svgs-files.png"><img alt="Exporting elements from Sketch as individual SVG files." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/7-exporting-elements-sketch-individual-svgs-files.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/7-exporting-elements-sketch-individual-svgs-files.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/7-exporting-elements-sketch-individual-svgs-files.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/7-exporting-elements-sketch-individual-svgs-files.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/7-exporting-elements-sketch-individual-svgs-files.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/7-exporting-elements-sketch-individual-svgs-files.png 2000w" width="800"></img></a><figcaption>Exporting elements from Sketch as individual SVG files. (<a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/7-exporting-elements-sketch-individual-svgs-files.png">Large preview</a>)</figcaption></figure><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><h2 id="using-a-symbol-in-multiple-svgs">Using A <code><symbol></code> In Multiple SVGs</h2><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><h2 id="positioning-symbols">Positioning Symbols</h2><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><h2 id="animating-use-elements">Animating <code><use></code> Elements</h2><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><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><figure><a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/8-final-adaptive-svg.png"><img alt="The final adaptive SVG." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/8-final-adaptive-svg.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/8-final-adaptive-svg.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/8-final-adaptive-svg.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/8-final-adaptive-svg.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/8-final-adaptive-svg.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/8-final-adaptive-svg.png 2000w" width="800"></img></a><figcaption>View the final adaptive SVG on my <a href="https://stuffandnonsense.co.uk/toon-titles/quick-draw-3.html">Toon Titles website</a>. (<a href="https://files.smashing.media/articles/smashing-animations-part-5-building-adaptive-svgs/8-final-adaptive-svg.png">Large preview</a>)</figcaption></figure><h2 id="wrapping-up">Wrapping Up</h2><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><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (Andy Clarke) <![CDATA[Intent Prototyping: A Practical Guide To Building With Clarity (Part 2)]]> https://smashingmagazine.com/2025/10/intent-prototyping-practical-guide-building-clarity/ https://smashingmagazine.com/2025/10/intent-prototyping-practical-guide-building-clarity/ Fri, 03 Oct 2025 10:00:00 GMT <img src="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/intent-prototyping-practical-guide-building-clarity.jpg" /><h1>A Practical Guide To Building With Clarity (Part 2) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>34 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/process">Process</a>, <a href="http://www.smashingmagazine.com/category/ai">AI</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Ready to move beyond static mockups? Here is a practical, step-by-step guide to Intent Prototyping — a disciplined method that uses AI to turn your design intent (UI sketches, conceptual models, and user flows) directly into a live prototype, making it your primary canvas for ideation.</section></p><p>In <strong><a href="https://www.smashingmagazine.com/2025/09/intent-prototyping-pure-vibe-coding-enterprise-ux/">Part 1</a></strong> of this series, we explored the “lopsided horse” problem born from mockup-centric design and demonstrated how the seductive promise of vibe coding often leads to structural flaws. The main question remains:</p><blockquote>How might we close the gap between our design intent and a live prototype, so that we can iterate on real functionality from day one, without getting caught in the ambiguity trap?</blockquote><p>In other words, we need a way to build prototypes that are both fast to create and founded on a clear, unambiguous blueprint.</p><p>The answer is a more disciplined process I call <strong>Intent Prototyping</strong> (kudos to Marco Kotrotsos, who coined <a href="https://kotrotsos.medium.com/intent-oriented-programming-bridging-human-thought-and-ai-machine-execution-3a92373cc1b6">Intent-Oriented Programming</a>). This method embraces the power of AI-assisted coding but rejects ambiguity, putting the designer’s explicit <em>intent</em> at the very center of the process. It receives a holistic expression of <em>intent</em> (sketches for screen layouts, conceptual model description, boxes-and-arrows for user flows) and uses it to generate a live, testable prototype.</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/1-intent-prototyping.jpg"><img alt="Diagram showing sketches, a conceptual model, and user flows as inputs to Intent Prototyping, which outputs a live prototype." decoding="async" fetchpriority="low" height="491" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/1-intent-prototyping.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/1-intent-prototyping.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/1-intent-prototyping.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/1-intent-prototyping.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/1-intent-prototyping.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/1-intent-prototyping.jpg 2000w" width="800"></img></a><figcaption>The Intent Prototyping workflow. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/1-intent-prototyping.jpg">Large preview</a>)</figcaption></figure><p>This method solves the concerns we’ve discussed in Part 1 in the best way possible:</p><ul><li><strong>Unlike static mockups,</strong> the prototype is fully interactive and can be easily populated with a large amount of realistic data. This lets us test the system’s underlying logic as well as its surface.</li><li><strong>Unlike a vibe-coded prototype</strong>, it is built from a stable, unambiguous specification. This prevents the conceptual model failures and design debt that happen when things are unclear. The engineering team doesn’t need to reverse-engineer a black box or become “code archaeologists” to guess at the designer’s vision, as they receive not only a live prototype but also a clearly documented design intent behind it.</li></ul><p>This combination makes the method especially suited for designing complex enterprise applications. It allows us to test the system’s most critical point of failure, its underlying structure, at a speed and flexibility that was previously impossible. Furthermore, the process is built for iteration. You can explore as many directions as you want simply by changing the intent and evolving the design based on what you learn from user testing.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="my-workflow">My Workflow</h2><p>To illustrate this process in action, let’s walk through a case study. It’s the very same example I’ve used to illustrate the vibe coding trap: a simple tool to track tests to validate product ideas. You can find the complete project, including all the source code and documentation files discussed below, in this <a href="https://github.com/YegorGilyov/reality-check">GitHub repository</a>.</p><h3 id="step-1-expressing-an-intent">Step 1: Expressing An Intent</h3><p>Imagine we’ve already done proper research, and having mused on the defined problem, I begin to form a vague idea of what the solution might look like. I need to capture this idea immediately, so I quickly sketch it out:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/2-low-fidelity-sketch-initial-idea.png"><img alt="A rough sketch of screens to manage product ideas and reality checks." decoding="async" fetchpriority="low" height="583" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/2-low-fidelity-sketch-initial-idea.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/2-low-fidelity-sketch-initial-idea.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/2-low-fidelity-sketch-initial-idea.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/2-low-fidelity-sketch-initial-idea.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/2-low-fidelity-sketch-initial-idea.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/2-low-fidelity-sketch-initial-idea.png 2000w" width="800"></img></a><figcaption>A low-fidelity sketch of the initial idea. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/2-low-fidelity-sketch-initial-idea.png">Large preview</a>)</figcaption></figure><p>In this example, I used Excalidraw, but the tool doesn’t really matter. Note that we deliberately keep it rough, as visual details are not something we need to focus on at this stage. And we are not going to be stuck here: we want to make a leap from this initial sketch directly to a live prototype that we can put in front of potential users. Polishing those sketches would not bring us any closer to achieving our goal.</p><p>What we need to move forward is to add to those sketches just enough details so that they may serve as a sufficient input for a junior frontend developer (or, in our case, an AI assistant). This requires explaining the following:</p><ul><li>Navigational paths (clicking here takes you to).</li><li>Interaction details that can’t be shown in a static picture (e.g., non-scrollable areas, adaptive layout, drag-and-drop behavior).</li><li>What parts might make sense to build as reusable components.</li><li>Which components from the design system (I’m using <a href="https://ant.design/">Ant Design Library</a>) should be used.</li><li>Any other comments that help understand how this thing should work (while sketches illustrate how it should look).</li></ul><p>Having added all those details, we end up with such an annotated sketch:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/3-sketch-annotated-details.png"><img alt="The initial sketch with annotations specifying components, navigation, and interaction details." decoding="async" fetchpriority="low" height="399" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/3-sketch-annotated-details.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/3-sketch-annotated-details.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/3-sketch-annotated-details.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/3-sketch-annotated-details.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/3-sketch-annotated-details.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/3-sketch-annotated-details.png 2000w" width="800"></img></a><figcaption>The sketch annotated with details. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/3-sketch-annotated-details.png">Large preview</a>)</figcaption></figure><p>As you see, this sketch covers both the Visualization and Flow aspects. You may ask, what about the Conceptual Model? Without that part, the expression of our <em>intent</em> will not be complete. One way would be to add it somewhere in the margins of the sketch (for example, as a UML Class Diagram), and I would do so in the case of a more complex application, where the model cannot be simply derived from the UI. But in our case, we can save effort and ask an LLM to generate a comprehensive description of the conceptual model based on the sketch.</p><p>For tasks of this sort, the LLM of my choice is Gemini 2.5 Pro. What is important is that this is a multimodal model that can accept not only text but also images as input (GPT-5 and Claude-4 also fit that criteria). I use Google AI Studio, as it gives me enough control and visibility into what’s happening:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/4-google-ai-studio.png"><img alt="Screenshot of Google AI Studio with an annotated sketch as input." decoding="async" fetchpriority="low" height="579" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/4-google-ai-studio.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/4-google-ai-studio.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/4-google-ai-studio.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/4-google-ai-studio.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/4-google-ai-studio.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/4-google-ai-studio.png 2000w" width="800"></img></a><figcaption>Generating a conceptual model from the sketch using Google AI Studio. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/4-google-ai-studio.png">Large preview</a>)</figcaption></figure><p><strong>Note</strong>: <em>All the prompts that I use here and below can be found in the <a href="#appendices">Appendices</a>. The prompts are not custom-tailored to any particular project; they are supposed to be reused as they are.</em></p><p>As a result, Gemini gives us a description and the following diagram:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/5-uml-class.jpg"><img alt="UML class diagram showing two connected entities: “ProductIdea” and “RealityCheck”." decoding="async" fetchpriority="low" height="480" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/5-uml-class.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/5-uml-class.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/5-uml-class.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/5-uml-class.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/5-uml-class.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/5-uml-class.jpg 2000w" width="800"></img></a><figcaption>UML class diagram. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/5-uml-class.jpg">Large preview</a>)</figcaption></figure><p>The diagram might look technical, but I believe that a clear understanding of all objects, their attributes, and relationships between them is key to good design. That’s why I consider the Conceptual Model to be an essential part of expressing <em>intent</em>, along with the Flow and Visualization.</p><p>As a result of this step, our <em>intent</em> is fully expressed in two files: <code>Sketch.png</code> and <code>Model.md</code>. This will be our durable source of truth.</p><h3 id="step-2-preparing-a-spec-and-a-plan">Step 2: Preparing A Spec And A Plan</h3><p>The purpose of this step is to create a comprehensive technical specification and a step-by-step plan. Most of the work here is done by AI; you just need to keep an eye on it.</p><p>I separate the Data Access Layer and the UI layer, and create specifications for them using two different prompts (see <a href="#appendices">Appendices 2 and 3</a>). The output of the first prompt (the Data Access Layer spec) serves as an input for the second one. Note that, as an additional input, we give the guidelines tailored for prototyping needs (see <a href="#appendices">Appendices 8, 9, and 10</a>). They are not specific to this project. The technical approach encoded in those guidelines is out of the scope of this article.</p><p>As a result, Gemini provides us with content for <code>DAL.md</code> and <code>UI.md</code>. Although in most cases this result is quite reliable enough, you might want to scrutinize the output. You don’t need to be a real programmer to make sense of it, but some level of programming literacy would be really helpful. However, even if you don’t have such skills, don’t get discouraged. The good news is that if you don’t understand something, you always know who to ask. Do it in Google AI Studio before refreshing the context window. If you believe you’ve spotted a problem, let Gemini know, and it will either fix it or explain why the suggested approach is actually better.</p><p>It’s important to remember that by their nature, <strong>LLMs are not deterministic</strong> and, to put it simply, can be forgetful about small details, especially when it comes to details in sketches. Fortunately, you don’t have to be an expert to notice that the “Delete” button, which is in the upper right corner of the sketch, is not mentioned in the spec.</p><p>Don’t get me wrong: Gemini does a stellar job most of the time, but there are still times when it slips up. Just let it know about the problems you’ve spotted, and everything will be fixed.</p><p>Once we have <code>Sketch.png</code>, <code>Model.md</code>, <code>DAL.md</code>, <code>UI.md</code>, and we have reviewed the specs, we can grab a coffee. We deserve it: our technical design documentation is complete. It will serve as a stable foundation for building the actual thing, without deviating from our original intent, and ensuring that all components fit together perfectly, and all layers are stacked correctly.</p><p>One last thing we can do before moving on to the next steps is to prepare a step-by-step plan. We split that plan into two parts: one for the Data Access Layer and another for the UI. You can find prompts I use to create such a plan in <a href="#appendices">Appendices 4 and 5</a>.</p><h3 id="step-3-executing-the-plan">Step 3: Executing The Plan</h3><p>To start building the actual thing, we need to switch to another category of AI tools. Up until this point, we have relied on Generative AI. It excels at creating new content (in our case, specifications and plans) based on a single prompt. I’m using Google Gemini 2.5 Pro in Google AI Studio, but other similar tools may also fit such one-off tasks: ChatGPT, Claude, Grok, and DeepSeek.</p><p>However, at this step, this wouldn’t be enough. Building a prototype based on specs and according to a plan requires an AI that can read context from multiple files, execute a sequence of tasks, and maintain coherence. A simple generative AI can’t do this. It would be like asking a person to build a house by only ever showing them a single brick. What we need is an agentic AI that can be given the full house blueprint and a project plan, and then get to work building the foundation, framing the walls, and adding the roof in the correct sequence.</p><p>My coding agent of choice is Google Gemini CLI, simply because Gemini 2.5 Pro serves me well, and I don’t think we need any middleman like Cursor or Windsurf (which would use Claude, Gemini, or GPT under the hood anyway). If I used Claude, my choice would be Claude Code, but since I’m sticking with Gemini, Gemini CLI it is. But if you prefer Cursor or Windsurf, I believe you can apply the same process with your favourite tool.</p><p>Before tasking the agent, we need to create a basic template for our React application. I won’t go into this here. You can find plenty of tutorials on how to scaffold an empty React project using Vite.</p><p>Then we put all our files into that project:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/6-project-structure-design-intent-spec-files.png"><img alt="A file directory showing the docs folder containing DAL.md, Model.md, Sketch.png, and UI.md." decoding="async" fetchpriority="low" height="666" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/6-project-structure-design-intent-spec-files.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/6-project-structure-design-intent-spec-files.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/6-project-structure-design-intent-spec-files.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/6-project-structure-design-intent-spec-files.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/6-project-structure-design-intent-spec-files.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/6-project-structure-design-intent-spec-files.png 2000w" width="800"></img></a><figcaption>Project structure with design intent and spec files. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/6-project-structure-design-intent-spec-files.png">Large preview</a>)</figcaption></figure><p>Once the basic template with all our files is ready, we open Terminal, go to the folder where our project resides, and type “gemini”:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/7-gemini.png"><img alt="Screenshot of a terminal showing the Gemini CLI." decoding="async" fetchpriority="low" height="419" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/7-gemini.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/7-gemini.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/7-gemini.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/7-gemini.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/7-gemini.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/7-gemini.png 2000w" width="800"></img></a><figcaption>Gemini CLI. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/7-gemini.png">Large preview</a>)</figcaption></figure><p>And we send the prompt to build the Data Access Layer (see <a href="#appendices">Appendix 6</a>). That prompt implies step-by-step execution, so upon completion of each step, I send the following:</p><div><pre><code>Thank you! Now, please move to the next task. Remember that you must not make assumptions based on common patterns; always verify them with the actual data from the spec. After each task, stop so that I can test it. Don’t move to the next task before I tell you to do so. </code></pre></div><p>As the last task in the plan, the agent builds a special page where we can test all the capabilities of our Data Access Layer, so that we can manually test it. It may look like this:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/8-ai-generated-test-page-data-access-layer.png"><img alt="A basic webpage with forms and buttons to test the Data Access Layer’s CRUD functions." decoding="async" fetchpriority="low" height="572" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/8-ai-generated-test-page-data-access-layer.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/8-ai-generated-test-page-data-access-layer.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/8-ai-generated-test-page-data-access-layer.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/8-ai-generated-test-page-data-access-layer.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/8-ai-generated-test-page-data-access-layer.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/8-ai-generated-test-page-data-access-layer.png 2000w" width="800"></img></a><figcaption>The AI-generated test page for the Data Access Layer. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/8-ai-generated-test-page-data-access-layer.png">Large preview</a>)</figcaption></figure><p>It doesn’t look fancy, to say the least, but it allows us to ensure that the Data Access Layer works correctly before we proceed with building the final UI.</p><p>And finally, we clear the Gemini CLI context window to give it more headspace and send the prompt to build the UI (see <a href="#appendices">Appendix 7</a>). This prompt also implies step-by-step execution. Upon completion of each step, we test how it works and how it looks, following the “Manual Testing Plan” from <code>UI-plan.md</code>. I have to say that despite the fact that the sketch has been uploaded to the model context and, in general, Gemini tries to follow it, attention to visual detail is not one of its strengths (yet). Usually, a few additional nudges are needed at each step to improve the look and feel:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/9-refined-ai-generated-ui.png"><img alt="A before-and-after comparison showing the UI's visual improvement." decoding="async" fetchpriority="low" height="320" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/9-refined-ai-generated-ui.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/9-refined-ai-generated-ui.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/9-refined-ai-generated-ui.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/9-refined-ai-generated-ui.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/9-refined-ai-generated-ui.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/9-refined-ai-generated-ui.png 2000w" width="800"></img></a><figcaption>Refining the AI-generated UI to match the sketch. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/9-refined-ai-generated-ui.png">Large preview</a>)</figcaption></figure><p>Once I’m happy with the result of a step, I ask Gemini to move on:</p><div><pre><code>Thank you! Now, please move to the next task. Make sure you build the UI according to the sketch; this is very important. Remember that you must not make assumptions based on common patterns; always verify them with the actual data from the spec and the sketch. After each task, stop so that I can test it. Don’t move to the next task before I tell you to do so. </code></pre></div><p>Before long, the result looks like this, and in every detail it works exactly as we <em>intended</em>:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/10-final-interactive-prototype.png"><img alt="Screenshots of the final, polished application UI." decoding="async" fetchpriority="low" height="486" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/10-final-interactive-prototype.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/10-final-interactive-prototype.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/10-final-interactive-prototype.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/10-final-interactive-prototype.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/10-final-interactive-prototype.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/10-final-interactive-prototype.png 2000w" width="800"></img></a><figcaption>The final interactive prototype. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/10-final-interactive-prototype.png">Large preview</a>)</figcaption></figure><p>The prototype is up and running and looking nice. Does it mean that we are done with our work? Surely not, the most fascinating part is just beginning.</p><h3 id="step-4-learning-and-iterating">Step 4: Learning And Iterating</h3><p>It’s time to put the prototype in front of potential users and learn more about whether this solution relieves their pain or not.</p><p>And as soon as we learn something new, we iterate. We adjust or extend the sketches and the conceptual model, based on that new input, we update the specifications, create plans to make changes according to the new specifications, and execute those plans. In other words, for every iteration, we repeat the steps I’ve just walked you through.</p><h3 id="is-this-workflow-too-heavy">Is This Workflow Too Heavy?</h3><p>This four-step workflow may create an impression of a somewhat heavy process that requires too much thinking upfront and doesn’t really facilitate creativity. But before jumping to that conclusion, consider the following:</p><ul><li>In practice, only the first step requires real effort, as well as learning in the last step. AI does most of the work in between; you just need to keep an eye on it.</li><li>Individual iterations don’t need to be big. You can start with a <a href="https://wiki.c2.com/?WalkingSkeleton">Walking Skeleton</a>: the bare minimum implementation of the thing you have in mind, and add more substance in subsequent iterations. You are welcome to change your mind about the overall direction in between iterations.</li><li>And last but not least, maybe the idea of “think before you do” is not something you need to run away from. A clear and unambiguous statement of intent can prevent many unnecessary mistakes and save a lot of effort down the road.</li></ul><h2 id="intent-prototyping-vs-other-methods">Intent Prototyping Vs. Other Methods</h2><p>There is no method that fits all situations, and Intent Prototyping is not an exception. Like any specialized tool, it has a specific purpose. The most effective teams are not those who master a single method, but those who understand which approach to use to mitigate the most significant risk at each stage. The table below gives you a way to make this choice clearer. It puts Intent Prototyping next to other common methods and tools and explains each one in terms of the primary goal it helps achieve and the specific risks it is best suited to mitigate.</p><table><thead><tr><th>Method/Tool</th><th>Goal</th><th>Risks it is best suited to mitigate</th><th>Examples</th><th>Why</th></tr></thead><tbody><tr><td>Intent Prototyping</td><td>To rapidly iterate on the fundamental architecture of a data-heavy application with a complex conceptual model, sophisticated business logic, and non-linear user flows.</td><td>Building a system with a flawed or incoherent conceptual model, leading to critical bugs and costly refactoring.</td><td><ul><li>A CRM (Customer Relationship Management system).</li><li>A Resource Management Tool.</li><li>A No-Code Integration Platform (admin’s UI).</li></ul></td><td>It enforces conceptual clarity. This not only de-risks the core structure but also produces a clear, documented blueprint that serves as a superior specification for the engineering handoff.</td></tr><tr><td>Vibe Coding (Conversational)</td><td>To rapidly explore interactive ideas through improvisation.</td><td>Losing momentum because of analysis paralysis.</td><td><ul><li>An interactive data table with live sorting/filtering.</li><li>A novel navigation concept.</li><li>A proof-of-concept for a single, complex component.</li></ul></td><td>It has the smallest loop between an idea conveyed in natural language and an interactive outcome.</td></tr><tr><td>Axure</td><td>To test complicated conditional logic within a specific user journey, without having to worry about how the whole system works.</td><td>Designing flows that break when users don’t follow the “happy path.”</td><td><ul><li>A multi-step e-commerce checkout.</li><li>A software configuration wizard.</li><li>A dynamic form with dependent fields.</li></ul></td><td>It’s made to create complex <code>if-then</code> logic and manage variables visually. This lets you test complicated paths and edge cases in a user journey without writing any code.</td></tr><tr><td>Figma</td><td>To make sure that the user interface looks good, aligns with the brand, and has a clear information architecture.</td><td>Making a product that looks bad, doesn't fit with the brand, or has a layout that is hard to understand.</td><td><ul><li>A marketing landing page.</li><li>A user onboarding flow.</li><li>Presenting a new visual identity.</li></ul></td><td>It excels at high-fidelity visual design and provides simple, fast tools for linking static screens.</td></tr><tr><td>ProtoPie, Framer</td><td>To make high-fidelity micro-interactions feel just right.</td><td>Shipping an application that feels cumbersome and unpleasant to use because of poorly executed interactions.</td><td><ul><li>A custom pull-to-refresh animation.</li><li>A fluid drag-and-drop interface.</li><li>An animated chart or data visualization.</li></ul></td><td>These tools let you manipulate animation timelines, physics, and device sensor inputs in great detail. Designers can carefully work on and test the small things that make an interface feel really polished and fun to use.</td></tr><tr><td>Low-code / No-code Tools (e.g., Bubble, Retool)</td><td>To create a working, data-driven app as quickly as possible.</td><td>The application will never be built because traditional development is too expensive.</td><td><ul><li>An internal inventory tracker.</li><li>A customer support dashboard.</li><li>A simple directory website.</li></ul></td><td>They put a UI builder, a database, and hosting all in one place. The goal is not merely to make a prototype of an idea, but to make and release an actual, working product. This is the last step for many internal tools or MVPs.</td></tr></tbody></table><p>The key takeaway is that each method is a <strong>specialized tool for mitigating a specific type of risk</strong>. For example, Figma de-risks the visual presentation. ProtoPie de-risks the feel of an interaction. Intent Prototyping is in a unique position to tackle the most foundational risk in complex applications: building on a flawed or incoherent conceptual model.</p><h2 id="bringing-it-all-together">Bringing It All Together</h2><p>The era of the “lopsided horse” design, sleek on the surface but structurally unsound, is a direct result of the trade-off between fidelity and flexibility. This trade-off has led to a process filled with redundant effort and misplaced focus. Intent Prototyping, powered by modern AI, eliminates that conflict. It’s not just a shortcut to building faster — it’s a <strong>fundamental shift in how we design</strong>. By putting a clear, unambiguous <em>intent</em> at the heart of the process, it lets us get rid of the redundant work and focus on architecting a sound and robust system.</p><p>There are three major benefits to this renewed focus. First, by going straight to live, interactive prototypes, we shift our validation efforts from the surface to the deep, testing the system’s actual logic with users from day one. Second, the very act of documenting the design <em>intent</em> makes us clear about our ideas, ensuring that we fully understand the system’s underlying logic. Finally, this documented <em>intent</em> becomes a durable source of truth, eliminating the ambiguous handoffs and the redundant, error-prone work of having engineers reverse-engineer a designer’s vision from a black box.</p><p>Ultimately, Intent Prototyping changes the object of our work. It allows us to move beyond creating <strong>pictures of a product</strong> and empowers us to become architects of <strong>blueprints for a system</strong>. With the help of AI, we can finally make the live prototype the primary canvas for ideation, not just a high-effort afterthought.</p><h3 id="appendices">Appendices</h3><p>You can find the full <strong>Intent Prototyping Starter Kit</strong>, which includes all those prompts and guidelines, as well as the example from this article and a minimal boilerplate project, in this <a href="https://github.com/YegorGilyov/intent-prototyping-starter-kit">GitHub repository</a>.</p><div aria-multiselectable="true" id="TOC"><dl data-handler="Accordion"><dt aria-expanded="false" id="accordion-item-0" tabindex="0"><div><p>Appendix 1: Sketch to UML Class Diagram</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-0"><div><div><pre><code>You are an expert Senior Software Architect specializing in Domain-Driven Design. You are tasked with defining a conceptual model for an app based on information from a UI sketch. ## Workflow Follow these steps precisely: **Step 1:** Analyze the sketch carefully. There should be no ambiguity about what we are building. **Step 2:** Generate the conceptual model description in the Mermaid format using a UML class diagram. ## Ground Rules - Every entity must have the following attributes: - `id` (string) - `createdAt` (string, ISO 8601 format) - `updatedAt` (string, ISO 8601 format) - Include all attributes shown in the UI: If a piece of data is visually represented as a field for an entity, include it in the model, even if it's calculated from other attributes. - Do not add any speculative entities, attributes, or relationships ("just in case"). The model should serve the current sketch's requirements only. - Pay special attention to cardinality definitions (e.g., if a relationship is optional on both sides, it cannot be `"1" -- "0..*"`, it must be `"0..1" -- "0..*"`). - Use only valid syntax in the Mermaid diagram. - Do not include enumerations in the Mermaid diagram. - Add comments explaining the purpose of every entity, attribute, and relationship, and their expected behavior (not as a part of the diagram, in the Markdown file). ## Naming Conventions - Names should reveal intent and purpose. - Use PascalCase for entity names. - Use camelCase for attributes and relationships. - Use descriptive variable names with auxiliary verbs (e.g., isLoading, hasError). ## Final Instructions - **No Assumptions:** Base every detail on visual evidence in the sketch, not on common design patterns. - **Double-Check:** After composing the entire document, read through it to ensure the hierarchy is logical, the descriptions are unambiguous, and the formatting is consistent. The final document should be a self-contained, comprehensive specification. - **Do not add redundant empty lines between items.** Your final output should be the complete, raw markdown content for `Model.md`. </code></pre></div></div></dd><dt aria-expanded="false" id="accordion-item-1" tabindex="0"><div><p>Appendix 2: Sketch to DAL Spec</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-1"><div><div><pre><code>You are an expert Senior Frontend Developer specializing in React, TypeScript, and Zustand. You are tasked with creating a comprehensive technical specification for the development team in a structured markdown document, based on a UI sketch and a conceptual model description. ## Workflow Follow these steps precisely: **Step 1:** Analyze the documentation carefully: - `Model.md`: the conceptual model - `Sketch.png`: the UI sketch There should be no ambiguity about what we are building. **Step 2:** Check out the guidelines: - `TS-guidelines.md`: TypeScript Best Practices - `React-guidelines.md`: React Best Practices - `Zustand-guidelines.md`: Zustand Best Practices **Step 3:** Create a Markdown specification for the stores and entity-specific hook that implements all the logic and provides all required operations. --- ## Markdown Output Structure Use this template for the entire document. ```markdown # Data Access Layer Specification This document outlines the specification for the data access layer of the application, following the principles defined in `docs/guidelines/Zustand-guidelines.md`. ## 1. Type Definitions Location: `src/types/entities.ts` ### 1.1. `BaseEntity` A shared interface that all entities should extend. [TypeScript interface definition] ### 1.2. `[Entity Name]` The interface for the [Entity Name] entity. [TypeScript interface definition] ## 2. Zustand Stores ### 2.1. Store for `[Entity Name]` **Location:** `src/stores/[Entity Name (plural)].ts` The Zustand store will manage the state of all [Entity Name] items. **Store State (`[Entity Name]State`):** [TypeScript interface definition] **Store Implementation (`use[Entity Name]Store`):** - The store will be created using `create<[Entity Name]State>()(...)`. - It will use the `persist` middleware from `zustand/middleware` to save state to `localStorage`. The persistence key will be `[entity-storage-key]`. - `[Entity Name (plural, camelCase)]` will be a dictionary (`Record<string, [Entity]>`) for O(1) access. **Actions:** - **`add[Entity Name]`**: [Define the operation behavior based on entity requirements] - **`update[Entity Name]`**: [Define the operation behavior based on entity requirements] - **`remove[Entity Name]`**: [Define the operation behavior based on entity requirements] - **`doSomethingElseWith[Entity Name]`**: [Define the operation behavior based on entity requirements] ## 3. Custom Hooks ### 3.1. `use[Entity Name (plural)]` **Location:** `src/hooks/use[Entity Name (plural)].ts` The hook will be the primary interface for UI components to interact with [Entity Name] data. **Hook Return Value:** [TypeScript interface definition] **Hook Implementation:** [List all properties and methods returned by this hook, and briefly explain the logic behind them, including data transformations, memoization. Do not write the actual code here.] ``` --- ## Final Instructions - **No Assumptions:** Base every detail in the specification on the conceptual model or visual evidence in the sketch, not on common design patterns. - **Double-Check:** After composing the entire document, read through it to ensure the hierarchy is logical, the descriptions are unambiguous, and the formatting is consistent. The final document should be a self-contained, comprehensive specification. - **Do not add redundant empty lines between items.** Your final output should be the complete, raw markdown content for `DAL.md`. </code></pre></div></div></dd><dt aria-expanded="false" id="accordion-item-2" tabindex="0"><div><p>Appendix 3: Sketch to UI Spec</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-2"><div><div><pre><code>You are an expert Senior Frontend Developer specializing in React, TypeScript, and the Ant Design library. You are tasked with creating a comprehensive technical specification by translating a UI sketch into a structured markdown document for the development team. ## Workflow Follow these steps precisely: **Step 1:** Analyze the documentation carefully: - `Sketch.png`: the UI sketch - Note that red lines, red arrows, and red text within the sketch are annotations for you and should not be part of the final UI design. They provide hints and clarification. Never translate them to UI elements directly. - `Model.md`: the conceptual model - `DAL.md`: the Data Access Layer spec There should be no ambiguity about what we are building. **Step 2:** Check out the guidelines: - `TS-guidelines.md`: TypeScript Best Practices - `React-guidelines.md`: React Best Practices **Step 3:** Generate the complete markdown content for a new file, `UI.md`. --- ## Markdown Output Structure Use this template for the entire document. ```markdown # UI Layer Specification This document specifies the UI layer of the application, breaking it down into pages and reusable components based on the provided sketches. All components will adhere to Ant Design's principles and utilize the data access patterns defined in `docs/guidelines/Zustand-guidelines.md`. ## 1. High-Level Structure The application is a single-page application (SPA). It will be composed of a main layout, one primary page, and several reusable components. ### 1.1. `App` Component The root component that sets up routing and global providers. - **Location**: `src/App.tsx` - **Purpose**: To provide global context, including Ant Design's `ConfigProvider` and `App` contexts for message notifications, and to render the main page. - **Composition**: - Wraps the application with `ConfigProvider` and `App as AntApp` from 'antd' to enable global message notifications as per `simple-ice/antd-messages.mdc`. - Renders `[Page Name]`. ## 2. Pages ### 2.1. `[Page Name]` - **Location:** `src/pages/PageName.tsx` - **Purpose:** [Briefly describe the main goal and function of this page] - **Data Access:** [List the specific hooks and functions this component uses to fetch or manage its data] - **Internal State:** [Describe any state managed internally by this page using `useState`] - **Composition:** [Briefly describe the content of this page] - **User Interactions:** [Describe how the user interacts with this page] - **Logic:** [If applicable, provide additional comments on how this page should work] ## 3. Components ### 3.1. `[Component Name]` - **Location:** `src/components/ComponentName.tsx` - **Purpose:** [Explain what this component does and where it's used] - **Props:** [TypeScript interface definition for the component's props. Props should be minimal. Avoid prop drilling by using hooks for data access.] - **Data Access:** [List the specific hooks and functions this component uses to fetch or manage its data] - **Internal State:** [Describe any state managed internally by this component using `useState`] - **Composition:** [Briefly describe the content of this component] - **User Interactions:** [Describe how the user interacts with the component] - **Logic:** [If applicable, provide additional comments on how this component should work] ``` --- ## Final Instructions - **No Assumptions:** Base every detail on the visual evidence in the sketch, not on common design patterns. - **Double-Check:** After composing the entire document, read through it to ensure the hierarchy is logical, the descriptions are unambiguous, and the formatting is consistent. The final document should be a self-contained, comprehensive specification. - **Do not add redundant empty lines between items.** Your final output should be the complete, raw markdown content for `UI.md`. </code></pre></div></div></dd><dt aria-expanded="false" id="accordion-item-3" tabindex="0"><div><p>Appendix 4: DAL Spec to Plan</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-3"><div><div><pre><code>You are an expert Senior Frontend Developer specializing in React, TypeScript, and Zustand. You are tasked with creating a plan to build a Data Access Layer for an application based on a spec. ## Workflow Follow these steps precisely: **Step 1:** Analyze the documentation carefully: - `DAL.md`: The full technical specification for the Data Access Layer of the application. Follow it carefully and to the letter. There should be no ambiguity about what we are building. **Step 2:** Check out the guidelines: - `TS-guidelines.md`: TypeScript Best Practices - `React-guidelines.md`: React Best Practices - `Zustand-guidelines.md`: Zustand Best Practices **Step 3:** Create a step-by-step plan to build a Data Access Layer according to the spec. Each task should: - Focus on one concern - Be reasonably small - Have a clear start + end - Contain clearly defined Objectives and Acceptance Criteria The last step of the plan should include creating a page to test all the capabilities of our Data Access Layer, and making it the start page of this application, so that I can manually check if it works properly. I will hand this plan over to an engineering LLM that will be told to complete one task at a time, allowing me to review results in between. ## Final Instructions - Note that we are not starting from scratch; the basic template has already been created using Vite. - Do not add redundant empty lines between items. Your final output should be the complete, raw markdown content for `DAL-plan.md`. </code></pre></div></div></dd><dt aria-expanded="false" id="accordion-item-4" tabindex="0"><div><p>Appendix 5: UI Spec to Plan</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-4"><div><div><pre><code>You are an expert Senior Frontend Developer specializing in React, TypeScript, and the Ant Design library. You are tasked with creating a plan to build a UI layer for an application based on a spec and a sketch. ## Workflow Follow these steps precisely: **Step 1:** Analyze the documentation carefully: - `UI.md`: The full technical specification for the UI layer of the application. Follow it carefully and to the letter. - `Sketch.png`: Contains important information about the layout and style, complements the UI Layer Specification. The final UI must be as close to this sketch as possible. There should be no ambiguity about what we are building. **Step 2:** Check out the guidelines: - `TS-guidelines.md`: TypeScript Best Practices - `React-guidelines.md`: React Best Practices **Step 3:** Create a step-by-step plan to build a UI layer according to the spec and the sketch. Each task must: - Focus on one concern. - Be reasonably small. - Have a clear start + end. - Result in a verifiable increment of the application. Each increment should be manually testable to allow for functional review and approval before proceeding. - Contain clearly defined Objectives, Acceptance Criteria, and Manual Testing Plan. I will hand this plan over to an engineering LLM that will be told to complete one task at a time, allowing me to test in between. ## Final Instructions - Note that we are not starting from scratch, the basic template has already been created using Vite, and the Data Access Layer has been built successfully. - For every task, describe how components should be integrated for verification. You must use the provided hooks to connect to the live Zustand store data—do not use mock data (note that the Data Access Layer has been already built successfully). - The Manual Testing Plan should read like a user guide. It must only contain actions a user can perform in the browser and must never reference any code files or programming tasks. - Do not add redundant empty lines between items. Your final output should be the complete, raw markdown content for `UI-plan.md`. </code></pre></div></div></dd><dt aria-expanded="false" id="accordion-item-4" tabindex="0"><div><p>Appendix 6: DAL Plan to Code</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-4"><div><div><pre><code>You are an expert Senior Frontend Developer specializing in React, TypeScript, and Zustand. You are tasked with building a Data Access Layer for an application based on a spec. ## Workflow Follow these steps precisely: **Step 1:** Analyze the documentation carefully: - @docs/specs/DAL.md: The full technical specification for the Data Access Layer of the application. Follow it carefully and to the letter. There should be no ambiguity about what we are building. **Step 2:** Check out the guidelines: - @docs/guidelines/TS-guidelines.md: TypeScript Best Practices - @docs/guidelines/React-guidelines.md: React Best Practices - @docs/guidelines/Zustand-guidelines.md: Zustand Best Practices **Step 3:** Read the plan: - @docs/plans/DAL-plan.md: The step-by-step plan to build the Data Access Layer of the application. **Step 4:** Build a Data Access Layer for this application according to the spec and following the plan. - Complete one task from the plan at a time. - After each task, stop, so that I can test it. Don’t move to the next task before I tell you to do so. - Do not do anything else. At this point, we are focused on building the Data Access Layer. ## Final Instructions - Do not make assumptions based on common patterns; always verify them with the actual data from the spec and the sketch. - Do not start the development server, I'll do it by myself. </code></pre></div></div></dd><dt aria-expanded="false" id="accordion-item-4" tabindex="0"><div><p>Appendix 7: UI Plan to Code</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-4"><div><div><pre><code>You are an expert Senior Frontend Developer specializing in React, TypeScript, and the Ant Design library. You are tasked with building a UI layer for an application based on a spec and a sketch. ## Workflow Follow these steps precisely: **Step 1:** Analyze the documentation carefully: - @docs/specs/UI.md: The full technical specification for the UI layer of the application. Follow it carefully and to the letter. - @docs/intent/Sketch.png: Contains important information about the layout and style, complements the UI Layer Specification. The final UI must be as close to this sketch as possible. - @docs/specs/DAL.md: The full technical specification for the Data Access Layer of the application. That layer is already ready. Use this spec to understand how to work with it. There should be no ambiguity about what we are building. **Step 2:** Check out the guidelines: - @docs/guidelines/TS-guidelines.md: TypeScript Best Practices - @docs/guidelines/React-guidelines.md: React Best Practices **Step 3:** Read the plan: - @docs/plans/UI-plan.md: The step-by-step plan to build the UI layer of the application. **Step 4:** Build a UI layer for this application according to the spec and the sketch, following the step-by-step plan: - Complete one task from the plan at a time. - Make sure you build the UI according to the sketch; this is very important. - After each task, stop, so that I can test it. Don’t move to the next task before I tell you to do so. ## Final Instructions - Do not make assumptions based on common patterns; always verify them with the actual data from the spec and the sketch. - Follow Ant Design's default styles and components. - Do not touch the data access layer: it's ready and it's perfect. - Do not start the development server, I'll do it by myself. </code></pre></div></div></dd><dt aria-expanded="false" id="accordion-item-4" tabindex="0"><div><p>Appendix 8: TS-guidelines.md</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-4"><div><div><pre><code># Guidelines: TypeScript Best Practices ## Type System &amp; Type Safety - Use TypeScript for all code and enable strict mode. - Ensure complete type safety throughout stores, hooks, and component interfaces. - Prefer interfaces over types for object definitions; use types for unions, intersections, and mapped types. - Entity interfaces should extend common patterns while maintaining their specific properties. - Use TypeScript type guards in filtering operations for relationship safety. - Avoid the 'any' type; prefer 'unknown' when necessary. - Use generics to create reusable components and functions. - Utilize TypeScript's features to enforce type safety. - Use type-only imports (import type { MyType } from './types') when importing types, because verbatimModuleSyntax is enabled. - Avoid enums; use maps instead. ## Naming Conventions - Names should reveal intent and purpose. - Use PascalCase for component names and types/interfaces. - Prefix interfaces for React props with 'Props' (e.g., ButtonProps). - Use camelCase for variables and functions. - Use UPPER_CASE for constants. - Use lowercase with dashes for directories, and PascalCase for files with components (e.g., components/auth-wizard/AuthForm.tsx). - Use descriptive variable names with auxiliary verbs (e.g., isLoading, hasError). - Favor named exports for components. ## Code Structure &amp; Patterns - Write concise, technical TypeScript code with accurate examples. - Use functional and declarative programming patterns; avoid classes. - Prefer iteration and modularization over code duplication. - Use the "function" keyword for pure functions. - Use curly braces for all conditionals for consistency and clarity. - Structure files appropriately based on their purpose. - Keep related code together and encapsulate implementation details. ## Performance &amp; Error Handling - Use immutable and efficient data structures and algorithms. - Create custom error types for domain-specific errors. - Use try-catch blocks with typed catch clauses. - Handle Promise rejections and async errors properly. - Log errors appropriately and handle edge cases gracefully. ## Project Organization - Place shared types in a types directory. - Use barrel exports (index.ts) for organizing exports. - Structure files and directories based on their purpose. ## Other Rules - Use comments to explain complex logic or non-obvious decisions. - Follow the single responsibility principle: each function should do exactly one thing. - Follow the DRY (Don't Repeat Yourself) principle. - Do not implement placeholder functions, empty methods, or "just in case" logic. Code should serve the current specification's requirements only. - Use 2 spaces for indentation (no tabs). </code></pre></div></div></dd><dt aria-expanded="false" id="accordion-item-4" tabindex="0"><div><p>Appendix 9: React-guidelines.md</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-4"><div><div><pre><code># Guidelines: React Best Practices ## Component Structure - Use functional components over class components - Keep components small and focused - Extract reusable logic into custom hooks - Use composition over inheritance - Implement proper prop types with TypeScript - Structure React files: exported component, subcomponents, helpers, static content, types - Use declarative TSX for React components - Ensure that UI components use custom hooks for data fetching and operations rather than receive data via props, except for simplest components ## React Patterns - Utilize useState and useEffect hooks for state and side effects - Use React.memo for performance optimization when needed - Utilize React.lazy and Suspense for code-splitting - Implement error boundaries for robust error handling - Keep styles close to components ## React Performance - Avoid unnecessary re-renders - Lazy load components and images when possible - Implement efficient state management - Optimize rendering strategies - Optimize network requests - Employ memoization techniques (e.g., React.memo, useMemo, useCallback) ## React Project Structure ``` /src - /components - UI components (every component in a separate file) - /hooks - public-facing custom hooks (every hook in a separate file) - /providers - React context providers (every provider in a separate file) - /pages - page components (every page in a separate file) - /stores - entity-specific Zustand stores (every store in a separate file) - /styles - global styles (if needed) - /types - shared TypeScript types and interfaces ``` </code></pre></div></div></dd><dt aria-expanded="false" id="accordion-item-4" tabindex="0"><div><p>Appendix 10: Zustand-guidelines.md</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-4"><div><div><pre><code># Guidelines: Zustand Best Practices ## Core Principles - **Implement a data layer** for this React application following this specification carefully and to the letter. - **Complete separation of concerns**: All data operations should be accessible in UI components through simple and clean entity-specific hooks, ensuring state management logic is fully separated from UI logic. - **Shared state architecture**: Different UI components should work with the same shared state, despite using entity-specific hooks separately. ## Technology Stack - **State management**: Use Zustand for state management with automatic localStorage persistence via the `persist` middleware. ## Store Architecture - **Base entity:** Implement a BaseEntity interface with common properties that all entities extend: ```typescript export interface BaseEntity { id: string; createdAt: string; // ISO 8601 format updatedAt: string; // ISO 8601 format } ``` - **Entity-specific stores**: Create separate Zustand stores for each entity type. - **Dictionary-based storage**: Use dictionary/map structures (`Record<string entity="">`) rather than arrays for O(1) access by ID. - **Handle relationships**: Implement cross-entity relationships (like cascade deletes) within the stores where appropriate. ## Hook Layer The hook layer is the exclusive interface between UI components and the Zustand stores. It is designed to be simple, predictable, and follow a consistent pattern across all entities. ### Core Principles 1. **One Hook Per Entity**: There will be a single, comprehensive custom hook for each entity (e.g., `useBlogPosts`, `useCategories`). This hook is the sole entry point for all data and operations related to that entity. Separate hooks for single-item access will not be created. 2. **Return reactive data, not getter functions**: To prevent stale data, hooks must return the state itself, not a function that retrieves state. Parameterize hooks to accept filters and return the derived data directly. A component calling a getter function will not update when the underlying data changes. 3. **Expose Dictionaries for O(1) Access**: To provide simple and direct access to data, every hook will return a dictionary (`Record<string entity="">`) of the relevant items. ### The Standard Hook Pattern Every entity hook will follow this implementation pattern: 1. **Subscribe** to the entire dictionary of entities from the corresponding Zustand store. This ensures the hook is reactive to any change in the data. 2. **Filter** the data based on the parameters passed into the hook. This logic will be memoized with `useMemo` for efficiency. If no parameters are provided, the hook will operate on the entire dataset. 3. **Return a Consistent Shape**: The hook will always return an object containing: * A **filtered and sorted array** (e.g., `blogPosts`) for rendering lists. * A **filtered dictionary** (e.g., `blogPostsDict`) for convenient `O(1)` lookup within the component. * All necessary **action functions** (`add`, `update`, `remove`) and **relationship operations**. * All necessary **helper functions** and **derived data objects**. Helper functions are suitable for pure, stateless logic (e.g., calculators). Derived data objects are memoized values that provide aggregated or summarized information from the state (e.g., an object containing status counts). They must be derived directly from the reactive state to ensure they update automatically when the underlying data changes. ## API Design Standards - **Object Parameters**: Use object parameters instead of multiple direct parameters for better extensibility: ```typescript // ✅ Preferred add({ title, categoryIds }) // ❌ Avoid add(title, categoryIds) ``` - **Internal Methods**: Use underscore-prefixed methods for cross-store operations to maintain clean separation. ## State Validation Standards - **Existence checks**: All `update` and `remove` operations should validate entity existence before proceeding. - **Relationship validation**: Verify both entities exist before establishing relationships between them. ## Error Handling Patterns - **Operation failures**: Define behavior when operations fail (e.g., updating non-existent entities). - **Graceful degradation**: How to handle missing related entities in helper functions. ## Other Standards - **Secure ID generation**: Use `crypto.randomUUID()` for entity ID generation instead of custom implementations for better uniqueness guarantees and security. - **Return type consistency**: `add` operations return generated IDs for component workflows requiring immediate entity access, while `update` and `remove` operations return `void` to maintain clean modification APIs. </string></string></code></pre></div></div></dd><span></span></dl></div><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/intent-prototyping-practical-guide-building-clarity.jpg" /><h1>A Practical Guide To Building With Clarity (Part 2) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>34 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/process">Process</a>, <a href="http://www.smashingmagazine.com/category/ai">AI</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Ready to move beyond static mockups? Here is a practical, step-by-step guide to Intent Prototyping — a disciplined method that uses AI to turn your design intent (UI sketches, conceptual models, and user flows) directly into a live prototype, making it your primary canvas for ideation.</section></p><p>In <strong><a href="https://www.smashingmagazine.com/2025/09/intent-prototyping-pure-vibe-coding-enterprise-ux/">Part 1</a></strong> of this series, we explored the “lopsided horse” problem born from mockup-centric design and demonstrated how the seductive promise of vibe coding often leads to structural flaws. The main question remains:</p><blockquote>How might we close the gap between our design intent and a live prototype, so that we can iterate on real functionality from day one, without getting caught in the ambiguity trap?</blockquote><p>In other words, we need a way to build prototypes that are both fast to create and founded on a clear, unambiguous blueprint.</p><p>The answer is a more disciplined process I call <strong>Intent Prototyping</strong> (kudos to Marco Kotrotsos, who coined <a href="https://kotrotsos.medium.com/intent-oriented-programming-bridging-human-thought-and-ai-machine-execution-3a92373cc1b6">Intent-Oriented Programming</a>). This method embraces the power of AI-assisted coding but rejects ambiguity, putting the designer’s explicit <em>intent</em> at the very center of the process. It receives a holistic expression of <em>intent</em> (sketches for screen layouts, conceptual model description, boxes-and-arrows for user flows) and uses it to generate a live, testable prototype.</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/1-intent-prototyping.jpg"><img alt="Diagram showing sketches, a conceptual model, and user flows as inputs to Intent Prototyping, which outputs a live prototype." decoding="async" fetchpriority="low" height="491" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/1-intent-prototyping.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/1-intent-prototyping.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/1-intent-prototyping.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/1-intent-prototyping.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/1-intent-prototyping.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/1-intent-prototyping.jpg 2000w" width="800"></img></a><figcaption>The Intent Prototyping workflow. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/1-intent-prototyping.jpg">Large preview</a>)</figcaption></figure><p>This method solves the concerns we’ve discussed in Part 1 in the best way possible:</p><ul><li><strong>Unlike static mockups,</strong> the prototype is fully interactive and can be easily populated with a large amount of realistic data. This lets us test the system’s underlying logic as well as its surface.</li><li><strong>Unlike a vibe-coded prototype</strong>, it is built from a stable, unambiguous specification. This prevents the conceptual model failures and design debt that happen when things are unclear. The engineering team doesn’t need to reverse-engineer a black box or become “code archaeologists” to guess at the designer’s vision, as they receive not only a live prototype but also a clearly documented design intent behind it.</li></ul><p>This combination makes the method especially suited for designing complex enterprise applications. It allows us to test the system’s most critical point of failure, its underlying structure, at a speed and flexibility that was previously impossible. Furthermore, the process is built for iteration. You can explore as many directions as you want simply by changing the intent and evolving the design based on what you learn from user testing.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="my-workflow">My Workflow</h2><p>To illustrate this process in action, let’s walk through a case study. It’s the very same example I’ve used to illustrate the vibe coding trap: a simple tool to track tests to validate product ideas. You can find the complete project, including all the source code and documentation files discussed below, in this <a href="https://github.com/YegorGilyov/reality-check">GitHub repository</a>.</p><h3 id="step-1-expressing-an-intent">Step 1: Expressing An Intent</h3><p>Imagine we’ve already done proper research, and having mused on the defined problem, I begin to form a vague idea of what the solution might look like. I need to capture this idea immediately, so I quickly sketch it out:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/2-low-fidelity-sketch-initial-idea.png"><img alt="A rough sketch of screens to manage product ideas and reality checks." decoding="async" fetchpriority="low" height="583" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/2-low-fidelity-sketch-initial-idea.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/2-low-fidelity-sketch-initial-idea.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/2-low-fidelity-sketch-initial-idea.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/2-low-fidelity-sketch-initial-idea.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/2-low-fidelity-sketch-initial-idea.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/2-low-fidelity-sketch-initial-idea.png 2000w" width="800"></img></a><figcaption>A low-fidelity sketch of the initial idea. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/2-low-fidelity-sketch-initial-idea.png">Large preview</a>)</figcaption></figure><p>In this example, I used Excalidraw, but the tool doesn’t really matter. Note that we deliberately keep it rough, as visual details are not something we need to focus on at this stage. And we are not going to be stuck here: we want to make a leap from this initial sketch directly to a live prototype that we can put in front of potential users. Polishing those sketches would not bring us any closer to achieving our goal.</p><p>What we need to move forward is to add to those sketches just enough details so that they may serve as a sufficient input for a junior frontend developer (or, in our case, an AI assistant). This requires explaining the following:</p><ul><li>Navigational paths (clicking here takes you to).</li><li>Interaction details that can’t be shown in a static picture (e.g., non-scrollable areas, adaptive layout, drag-and-drop behavior).</li><li>What parts might make sense to build as reusable components.</li><li>Which components from the design system (I’m using <a href="https://ant.design/">Ant Design Library</a>) should be used.</li><li>Any other comments that help understand how this thing should work (while sketches illustrate how it should look).</li></ul><p>Having added all those details, we end up with such an annotated sketch:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/3-sketch-annotated-details.png"><img alt="The initial sketch with annotations specifying components, navigation, and interaction details." decoding="async" fetchpriority="low" height="399" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/3-sketch-annotated-details.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/3-sketch-annotated-details.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/3-sketch-annotated-details.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/3-sketch-annotated-details.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/3-sketch-annotated-details.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/3-sketch-annotated-details.png 2000w" width="800"></img></a><figcaption>The sketch annotated with details. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/3-sketch-annotated-details.png">Large preview</a>)</figcaption></figure><p>As you see, this sketch covers both the Visualization and Flow aspects. You may ask, what about the Conceptual Model? Without that part, the expression of our <em>intent</em> will not be complete. One way would be to add it somewhere in the margins of the sketch (for example, as a UML Class Diagram), and I would do so in the case of a more complex application, where the model cannot be simply derived from the UI. But in our case, we can save effort and ask an LLM to generate a comprehensive description of the conceptual model based on the sketch.</p><p>For tasks of this sort, the LLM of my choice is Gemini 2.5 Pro. What is important is that this is a multimodal model that can accept not only text but also images as input (GPT-5 and Claude-4 also fit that criteria). I use Google AI Studio, as it gives me enough control and visibility into what’s happening:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/4-google-ai-studio.png"><img alt="Screenshot of Google AI Studio with an annotated sketch as input." decoding="async" fetchpriority="low" height="579" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/4-google-ai-studio.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/4-google-ai-studio.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/4-google-ai-studio.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/4-google-ai-studio.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/4-google-ai-studio.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/4-google-ai-studio.png 2000w" width="800"></img></a><figcaption>Generating a conceptual model from the sketch using Google AI Studio. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/4-google-ai-studio.png">Large preview</a>)</figcaption></figure><p><strong>Note</strong>: <em>All the prompts that I use here and below can be found in the <a href="#appendices">Appendices</a>. The prompts are not custom-tailored to any particular project; they are supposed to be reused as they are.</em></p><p>As a result, Gemini gives us a description and the following diagram:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/5-uml-class.jpg"><img alt="UML class diagram showing two connected entities: “ProductIdea” and “RealityCheck”." decoding="async" fetchpriority="low" height="480" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/5-uml-class.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/5-uml-class.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/5-uml-class.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/5-uml-class.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/5-uml-class.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/5-uml-class.jpg 2000w" width="800"></img></a><figcaption>UML class diagram. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/5-uml-class.jpg">Large preview</a>)</figcaption></figure><p>The diagram might look technical, but I believe that a clear understanding of all objects, their attributes, and relationships between them is key to good design. That’s why I consider the Conceptual Model to be an essential part of expressing <em>intent</em>, along with the Flow and Visualization.</p><p>As a result of this step, our <em>intent</em> is fully expressed in two files: <code>Sketch.png</code> and <code>Model.md</code>. This will be our durable source of truth.</p><h3 id="step-2-preparing-a-spec-and-a-plan">Step 2: Preparing A Spec And A Plan</h3><p>The purpose of this step is to create a comprehensive technical specification and a step-by-step plan. Most of the work here is done by AI; you just need to keep an eye on it.</p><p>I separate the Data Access Layer and the UI layer, and create specifications for them using two different prompts (see <a href="#appendices">Appendices 2 and 3</a>). The output of the first prompt (the Data Access Layer spec) serves as an input for the second one. Note that, as an additional input, we give the guidelines tailored for prototyping needs (see <a href="#appendices">Appendices 8, 9, and 10</a>). They are not specific to this project. The technical approach encoded in those guidelines is out of the scope of this article.</p><p>As a result, Gemini provides us with content for <code>DAL.md</code> and <code>UI.md</code>. Although in most cases this result is quite reliable enough, you might want to scrutinize the output. You don’t need to be a real programmer to make sense of it, but some level of programming literacy would be really helpful. However, even if you don’t have such skills, don’t get discouraged. The good news is that if you don’t understand something, you always know who to ask. Do it in Google AI Studio before refreshing the context window. If you believe you’ve spotted a problem, let Gemini know, and it will either fix it or explain why the suggested approach is actually better.</p><p>It’s important to remember that by their nature, <strong>LLMs are not deterministic</strong> and, to put it simply, can be forgetful about small details, especially when it comes to details in sketches. Fortunately, you don’t have to be an expert to notice that the “Delete” button, which is in the upper right corner of the sketch, is not mentioned in the spec.</p><p>Don’t get me wrong: Gemini does a stellar job most of the time, but there are still times when it slips up. Just let it know about the problems you’ve spotted, and everything will be fixed.</p><p>Once we have <code>Sketch.png</code>, <code>Model.md</code>, <code>DAL.md</code>, <code>UI.md</code>, and we have reviewed the specs, we can grab a coffee. We deserve it: our technical design documentation is complete. It will serve as a stable foundation for building the actual thing, without deviating from our original intent, and ensuring that all components fit together perfectly, and all layers are stacked correctly.</p><p>One last thing we can do before moving on to the next steps is to prepare a step-by-step plan. We split that plan into two parts: one for the Data Access Layer and another for the UI. You can find prompts I use to create such a plan in <a href="#appendices">Appendices 4 and 5</a>.</p><h3 id="step-3-executing-the-plan">Step 3: Executing The Plan</h3><p>To start building the actual thing, we need to switch to another category of AI tools. Up until this point, we have relied on Generative AI. It excels at creating new content (in our case, specifications and plans) based on a single prompt. I’m using Google Gemini 2.5 Pro in Google AI Studio, but other similar tools may also fit such one-off tasks: ChatGPT, Claude, Grok, and DeepSeek.</p><p>However, at this step, this wouldn’t be enough. Building a prototype based on specs and according to a plan requires an AI that can read context from multiple files, execute a sequence of tasks, and maintain coherence. A simple generative AI can’t do this. It would be like asking a person to build a house by only ever showing them a single brick. What we need is an agentic AI that can be given the full house blueprint and a project plan, and then get to work building the foundation, framing the walls, and adding the roof in the correct sequence.</p><p>My coding agent of choice is Google Gemini CLI, simply because Gemini 2.5 Pro serves me well, and I don’t think we need any middleman like Cursor or Windsurf (which would use Claude, Gemini, or GPT under the hood anyway). If I used Claude, my choice would be Claude Code, but since I’m sticking with Gemini, Gemini CLI it is. But if you prefer Cursor or Windsurf, I believe you can apply the same process with your favourite tool.</p><p>Before tasking the agent, we need to create a basic template for our React application. I won’t go into this here. You can find plenty of tutorials on how to scaffold an empty React project using Vite.</p><p>Then we put all our files into that project:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/6-project-structure-design-intent-spec-files.png"><img alt="A file directory showing the docs folder containing DAL.md, Model.md, Sketch.png, and UI.md." decoding="async" fetchpriority="low" height="666" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/6-project-structure-design-intent-spec-files.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/6-project-structure-design-intent-spec-files.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/6-project-structure-design-intent-spec-files.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/6-project-structure-design-intent-spec-files.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/6-project-structure-design-intent-spec-files.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/6-project-structure-design-intent-spec-files.png 2000w" width="800"></img></a><figcaption>Project structure with design intent and spec files. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/6-project-structure-design-intent-spec-files.png">Large preview</a>)</figcaption></figure><p>Once the basic template with all our files is ready, we open Terminal, go to the folder where our project resides, and type “gemini”:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/7-gemini.png"><img alt="Screenshot of a terminal showing the Gemini CLI." decoding="async" fetchpriority="low" height="419" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/7-gemini.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/7-gemini.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/7-gemini.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/7-gemini.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/7-gemini.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/7-gemini.png 2000w" width="800"></img></a><figcaption>Gemini CLI. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/7-gemini.png">Large preview</a>)</figcaption></figure><p>And we send the prompt to build the Data Access Layer (see <a href="#appendices">Appendix 6</a>). That prompt implies step-by-step execution, so upon completion of each step, I send the following:</p><div><pre><code>Thank you! Now, please move to the next task. Remember that you must not make assumptions based on common patterns; always verify them with the actual data from the spec. After each task, stop so that I can test it. Don’t move to the next task before I tell you to do so. </code></pre></div><p>As the last task in the plan, the agent builds a special page where we can test all the capabilities of our Data Access Layer, so that we can manually test it. It may look like this:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/8-ai-generated-test-page-data-access-layer.png"><img alt="A basic webpage with forms and buttons to test the Data Access Layer’s CRUD functions." decoding="async" fetchpriority="low" height="572" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/8-ai-generated-test-page-data-access-layer.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/8-ai-generated-test-page-data-access-layer.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/8-ai-generated-test-page-data-access-layer.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/8-ai-generated-test-page-data-access-layer.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/8-ai-generated-test-page-data-access-layer.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/8-ai-generated-test-page-data-access-layer.png 2000w" width="800"></img></a><figcaption>The AI-generated test page for the Data Access Layer. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/8-ai-generated-test-page-data-access-layer.png">Large preview</a>)</figcaption></figure><p>It doesn’t look fancy, to say the least, but it allows us to ensure that the Data Access Layer works correctly before we proceed with building the final UI.</p><p>And finally, we clear the Gemini CLI context window to give it more headspace and send the prompt to build the UI (see <a href="#appendices">Appendix 7</a>). This prompt also implies step-by-step execution. Upon completion of each step, we test how it works and how it looks, following the “Manual Testing Plan” from <code>UI-plan.md</code>. I have to say that despite the fact that the sketch has been uploaded to the model context and, in general, Gemini tries to follow it, attention to visual detail is not one of its strengths (yet). Usually, a few additional nudges are needed at each step to improve the look and feel:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/9-refined-ai-generated-ui.png"><img alt="A before-and-after comparison showing the UI's visual improvement." decoding="async" fetchpriority="low" height="320" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/9-refined-ai-generated-ui.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/9-refined-ai-generated-ui.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/9-refined-ai-generated-ui.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/9-refined-ai-generated-ui.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/9-refined-ai-generated-ui.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/9-refined-ai-generated-ui.png 2000w" width="800"></img></a><figcaption>Refining the AI-generated UI to match the sketch. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/9-refined-ai-generated-ui.png">Large preview</a>)</figcaption></figure><p>Once I’m happy with the result of a step, I ask Gemini to move on:</p><div><pre><code>Thank you! Now, please move to the next task. Make sure you build the UI according to the sketch; this is very important. Remember that you must not make assumptions based on common patterns; always verify them with the actual data from the spec and the sketch. After each task, stop so that I can test it. Don’t move to the next task before I tell you to do so. </code></pre></div><p>Before long, the result looks like this, and in every detail it works exactly as we <em>intended</em>:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/10-final-interactive-prototype.png"><img alt="Screenshots of the final, polished application UI." decoding="async" fetchpriority="low" height="486" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/10-final-interactive-prototype.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/10-final-interactive-prototype.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/10-final-interactive-prototype.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/10-final-interactive-prototype.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/10-final-interactive-prototype.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/10-final-interactive-prototype.png 2000w" width="800"></img></a><figcaption>The final interactive prototype. (<a href="https://files.smashing.media/articles/intent-prototyping-practical-guide-building-clarity/10-final-interactive-prototype.png">Large preview</a>)</figcaption></figure><p>The prototype is up and running and looking nice. Does it mean that we are done with our work? Surely not, the most fascinating part is just beginning.</p><h3 id="step-4-learning-and-iterating">Step 4: Learning And Iterating</h3><p>It’s time to put the prototype in front of potential users and learn more about whether this solution relieves their pain or not.</p><p>And as soon as we learn something new, we iterate. We adjust or extend the sketches and the conceptual model, based on that new input, we update the specifications, create plans to make changes according to the new specifications, and execute those plans. In other words, for every iteration, we repeat the steps I’ve just walked you through.</p><h3 id="is-this-workflow-too-heavy">Is This Workflow Too Heavy?</h3><p>This four-step workflow may create an impression of a somewhat heavy process that requires too much thinking upfront and doesn’t really facilitate creativity. But before jumping to that conclusion, consider the following:</p><ul><li>In practice, only the first step requires real effort, as well as learning in the last step. AI does most of the work in between; you just need to keep an eye on it.</li><li>Individual iterations don’t need to be big. You can start with a <a href="https://wiki.c2.com/?WalkingSkeleton">Walking Skeleton</a>: the bare minimum implementation of the thing you have in mind, and add more substance in subsequent iterations. You are welcome to change your mind about the overall direction in between iterations.</li><li>And last but not least, maybe the idea of “think before you do” is not something you need to run away from. A clear and unambiguous statement of intent can prevent many unnecessary mistakes and save a lot of effort down the road.</li></ul><h2 id="intent-prototyping-vs-other-methods">Intent Prototyping Vs. Other Methods</h2><p>There is no method that fits all situations, and Intent Prototyping is not an exception. Like any specialized tool, it has a specific purpose. The most effective teams are not those who master a single method, but those who understand which approach to use to mitigate the most significant risk at each stage. The table below gives you a way to make this choice clearer. It puts Intent Prototyping next to other common methods and tools and explains each one in terms of the primary goal it helps achieve and the specific risks it is best suited to mitigate.</p><table><thead><tr><th>Method/Tool</th><th>Goal</th><th>Risks it is best suited to mitigate</th><th>Examples</th><th>Why</th></tr></thead><tbody><tr><td>Intent Prototyping</td><td>To rapidly iterate on the fundamental architecture of a data-heavy application with a complex conceptual model, sophisticated business logic, and non-linear user flows.</td><td>Building a system with a flawed or incoherent conceptual model, leading to critical bugs and costly refactoring.</td><td><ul><li>A CRM (Customer Relationship Management system).</li><li>A Resource Management Tool.</li><li>A No-Code Integration Platform (admin’s UI).</li></ul></td><td>It enforces conceptual clarity. This not only de-risks the core structure but also produces a clear, documented blueprint that serves as a superior specification for the engineering handoff.</td></tr><tr><td>Vibe Coding (Conversational)</td><td>To rapidly explore interactive ideas through improvisation.</td><td>Losing momentum because of analysis paralysis.</td><td><ul><li>An interactive data table with live sorting/filtering.</li><li>A novel navigation concept.</li><li>A proof-of-concept for a single, complex component.</li></ul></td><td>It has the smallest loop between an idea conveyed in natural language and an interactive outcome.</td></tr><tr><td>Axure</td><td>To test complicated conditional logic within a specific user journey, without having to worry about how the whole system works.</td><td>Designing flows that break when users don’t follow the “happy path.”</td><td><ul><li>A multi-step e-commerce checkout.</li><li>A software configuration wizard.</li><li>A dynamic form with dependent fields.</li></ul></td><td>It’s made to create complex <code>if-then</code> logic and manage variables visually. This lets you test complicated paths and edge cases in a user journey without writing any code.</td></tr><tr><td>Figma</td><td>To make sure that the user interface looks good, aligns with the brand, and has a clear information architecture.</td><td>Making a product that looks bad, doesn't fit with the brand, or has a layout that is hard to understand.</td><td><ul><li>A marketing landing page.</li><li>A user onboarding flow.</li><li>Presenting a new visual identity.</li></ul></td><td>It excels at high-fidelity visual design and provides simple, fast tools for linking static screens.</td></tr><tr><td>ProtoPie, Framer</td><td>To make high-fidelity micro-interactions feel just right.</td><td>Shipping an application that feels cumbersome and unpleasant to use because of poorly executed interactions.</td><td><ul><li>A custom pull-to-refresh animation.</li><li>A fluid drag-and-drop interface.</li><li>An animated chart or data visualization.</li></ul></td><td>These tools let you manipulate animation timelines, physics, and device sensor inputs in great detail. Designers can carefully work on and test the small things that make an interface feel really polished and fun to use.</td></tr><tr><td>Low-code / No-code Tools (e.g., Bubble, Retool)</td><td>To create a working, data-driven app as quickly as possible.</td><td>The application will never be built because traditional development is too expensive.</td><td><ul><li>An internal inventory tracker.</li><li>A customer support dashboard.</li><li>A simple directory website.</li></ul></td><td>They put a UI builder, a database, and hosting all in one place. The goal is not merely to make a prototype of an idea, but to make and release an actual, working product. This is the last step for many internal tools or MVPs.</td></tr></tbody></table><p>The key takeaway is that each method is a <strong>specialized tool for mitigating a specific type of risk</strong>. For example, Figma de-risks the visual presentation. ProtoPie de-risks the feel of an interaction. Intent Prototyping is in a unique position to tackle the most foundational risk in complex applications: building on a flawed or incoherent conceptual model.</p><h2 id="bringing-it-all-together">Bringing It All Together</h2><p>The era of the “lopsided horse” design, sleek on the surface but structurally unsound, is a direct result of the trade-off between fidelity and flexibility. This trade-off has led to a process filled with redundant effort and misplaced focus. Intent Prototyping, powered by modern AI, eliminates that conflict. It’s not just a shortcut to building faster — it’s a <strong>fundamental shift in how we design</strong>. By putting a clear, unambiguous <em>intent</em> at the heart of the process, it lets us get rid of the redundant work and focus on architecting a sound and robust system.</p><p>There are three major benefits to this renewed focus. First, by going straight to live, interactive prototypes, we shift our validation efforts from the surface to the deep, testing the system’s actual logic with users from day one. Second, the very act of documenting the design <em>intent</em> makes us clear about our ideas, ensuring that we fully understand the system’s underlying logic. Finally, this documented <em>intent</em> becomes a durable source of truth, eliminating the ambiguous handoffs and the redundant, error-prone work of having engineers reverse-engineer a designer’s vision from a black box.</p><p>Ultimately, Intent Prototyping changes the object of our work. It allows us to move beyond creating <strong>pictures of a product</strong> and empowers us to become architects of <strong>blueprints for a system</strong>. With the help of AI, we can finally make the live prototype the primary canvas for ideation, not just a high-effort afterthought.</p><h3 id="appendices">Appendices</h3><p>You can find the full <strong>Intent Prototyping Starter Kit</strong>, which includes all those prompts and guidelines, as well as the example from this article and a minimal boilerplate project, in this <a href="https://github.com/YegorGilyov/intent-prototyping-starter-kit">GitHub repository</a>.</p><div aria-multiselectable="true" id="TOC"><dl data-handler="Accordion"><dt aria-expanded="false" id="accordion-item-0" tabindex="0"><div><p>Appendix 1: Sketch to UML Class Diagram</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-0"><div><div><pre><code>You are an expert Senior Software Architect specializing in Domain-Driven Design. You are tasked with defining a conceptual model for an app based on information from a UI sketch. ## Workflow Follow these steps precisely: **Step 1:** Analyze the sketch carefully. There should be no ambiguity about what we are building. **Step 2:** Generate the conceptual model description in the Mermaid format using a UML class diagram. ## Ground Rules - Every entity must have the following attributes: - `id` (string) - `createdAt` (string, ISO 8601 format) - `updatedAt` (string, ISO 8601 format) - Include all attributes shown in the UI: If a piece of data is visually represented as a field for an entity, include it in the model, even if it's calculated from other attributes. - Do not add any speculative entities, attributes, or relationships ("just in case"). The model should serve the current sketch's requirements only. - Pay special attention to cardinality definitions (e.g., if a relationship is optional on both sides, it cannot be `"1" -- "0..*"`, it must be `"0..1" -- "0..*"`). - Use only valid syntax in the Mermaid diagram. - Do not include enumerations in the Mermaid diagram. - Add comments explaining the purpose of every entity, attribute, and relationship, and their expected behavior (not as a part of the diagram, in the Markdown file). ## Naming Conventions - Names should reveal intent and purpose. - Use PascalCase for entity names. - Use camelCase for attributes and relationships. - Use descriptive variable names with auxiliary verbs (e.g., isLoading, hasError). ## Final Instructions - **No Assumptions:** Base every detail on visual evidence in the sketch, not on common design patterns. - **Double-Check:** After composing the entire document, read through it to ensure the hierarchy is logical, the descriptions are unambiguous, and the formatting is consistent. The final document should be a self-contained, comprehensive specification. - **Do not add redundant empty lines between items.** Your final output should be the complete, raw markdown content for `Model.md`. </code></pre></div></div></dd><dt aria-expanded="false" id="accordion-item-1" tabindex="0"><div><p>Appendix 2: Sketch to DAL Spec</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-1"><div><div><pre><code>You are an expert Senior Frontend Developer specializing in React, TypeScript, and Zustand. You are tasked with creating a comprehensive technical specification for the development team in a structured markdown document, based on a UI sketch and a conceptual model description. ## Workflow Follow these steps precisely: **Step 1:** Analyze the documentation carefully: - `Model.md`: the conceptual model - `Sketch.png`: the UI sketch There should be no ambiguity about what we are building. **Step 2:** Check out the guidelines: - `TS-guidelines.md`: TypeScript Best Practices - `React-guidelines.md`: React Best Practices - `Zustand-guidelines.md`: Zustand Best Practices **Step 3:** Create a Markdown specification for the stores and entity-specific hook that implements all the logic and provides all required operations. --- ## Markdown Output Structure Use this template for the entire document. ```markdown # Data Access Layer Specification This document outlines the specification for the data access layer of the application, following the principles defined in `docs/guidelines/Zustand-guidelines.md`. ## 1. Type Definitions Location: `src/types/entities.ts` ### 1.1. `BaseEntity` A shared interface that all entities should extend. [TypeScript interface definition] ### 1.2. `[Entity Name]` The interface for the [Entity Name] entity. [TypeScript interface definition] ## 2. Zustand Stores ### 2.1. Store for `[Entity Name]` **Location:** `src/stores/[Entity Name (plural)].ts` The Zustand store will manage the state of all [Entity Name] items. **Store State (`[Entity Name]State`):** [TypeScript interface definition] **Store Implementation (`use[Entity Name]Store`):** - The store will be created using `create<[Entity Name]State>()(...)`. - It will use the `persist` middleware from `zustand/middleware` to save state to `localStorage`. The persistence key will be `[entity-storage-key]`. - `[Entity Name (plural, camelCase)]` will be a dictionary (`Record<string, [Entity]>`) for O(1) access. **Actions:** - **`add[Entity Name]`**: [Define the operation behavior based on entity requirements] - **`update[Entity Name]`**: [Define the operation behavior based on entity requirements] - **`remove[Entity Name]`**: [Define the operation behavior based on entity requirements] - **`doSomethingElseWith[Entity Name]`**: [Define the operation behavior based on entity requirements] ## 3. Custom Hooks ### 3.1. `use[Entity Name (plural)]` **Location:** `src/hooks/use[Entity Name (plural)].ts` The hook will be the primary interface for UI components to interact with [Entity Name] data. **Hook Return Value:** [TypeScript interface definition] **Hook Implementation:** [List all properties and methods returned by this hook, and briefly explain the logic behind them, including data transformations, memoization. Do not write the actual code here.] ``` --- ## Final Instructions - **No Assumptions:** Base every detail in the specification on the conceptual model or visual evidence in the sketch, not on common design patterns. - **Double-Check:** After composing the entire document, read through it to ensure the hierarchy is logical, the descriptions are unambiguous, and the formatting is consistent. The final document should be a self-contained, comprehensive specification. - **Do not add redundant empty lines between items.** Your final output should be the complete, raw markdown content for `DAL.md`. </code></pre></div></div></dd><dt aria-expanded="false" id="accordion-item-2" tabindex="0"><div><p>Appendix 3: Sketch to UI Spec</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-2"><div><div><pre><code>You are an expert Senior Frontend Developer specializing in React, TypeScript, and the Ant Design library. You are tasked with creating a comprehensive technical specification by translating a UI sketch into a structured markdown document for the development team. ## Workflow Follow these steps precisely: **Step 1:** Analyze the documentation carefully: - `Sketch.png`: the UI sketch - Note that red lines, red arrows, and red text within the sketch are annotations for you and should not be part of the final UI design. They provide hints and clarification. Never translate them to UI elements directly. - `Model.md`: the conceptual model - `DAL.md`: the Data Access Layer spec There should be no ambiguity about what we are building. **Step 2:** Check out the guidelines: - `TS-guidelines.md`: TypeScript Best Practices - `React-guidelines.md`: React Best Practices **Step 3:** Generate the complete markdown content for a new file, `UI.md`. --- ## Markdown Output Structure Use this template for the entire document. ```markdown # UI Layer Specification This document specifies the UI layer of the application, breaking it down into pages and reusable components based on the provided sketches. All components will adhere to Ant Design's principles and utilize the data access patterns defined in `docs/guidelines/Zustand-guidelines.md`. ## 1. High-Level Structure The application is a single-page application (SPA). It will be composed of a main layout, one primary page, and several reusable components. ### 1.1. `App` Component The root component that sets up routing and global providers. - **Location**: `src/App.tsx` - **Purpose**: To provide global context, including Ant Design's `ConfigProvider` and `App` contexts for message notifications, and to render the main page. - **Composition**: - Wraps the application with `ConfigProvider` and `App as AntApp` from 'antd' to enable global message notifications as per `simple-ice/antd-messages.mdc`. - Renders `[Page Name]`. ## 2. Pages ### 2.1. `[Page Name]` - **Location:** `src/pages/PageName.tsx` - **Purpose:** [Briefly describe the main goal and function of this page] - **Data Access:** [List the specific hooks and functions this component uses to fetch or manage its data] - **Internal State:** [Describe any state managed internally by this page using `useState`] - **Composition:** [Briefly describe the content of this page] - **User Interactions:** [Describe how the user interacts with this page] - **Logic:** [If applicable, provide additional comments on how this page should work] ## 3. Components ### 3.1. `[Component Name]` - **Location:** `src/components/ComponentName.tsx` - **Purpose:** [Explain what this component does and where it's used] - **Props:** [TypeScript interface definition for the component's props. Props should be minimal. Avoid prop drilling by using hooks for data access.] - **Data Access:** [List the specific hooks and functions this component uses to fetch or manage its data] - **Internal State:** [Describe any state managed internally by this component using `useState`] - **Composition:** [Briefly describe the content of this component] - **User Interactions:** [Describe how the user interacts with the component] - **Logic:** [If applicable, provide additional comments on how this component should work] ``` --- ## Final Instructions - **No Assumptions:** Base every detail on the visual evidence in the sketch, not on common design patterns. - **Double-Check:** After composing the entire document, read through it to ensure the hierarchy is logical, the descriptions are unambiguous, and the formatting is consistent. The final document should be a self-contained, comprehensive specification. - **Do not add redundant empty lines between items.** Your final output should be the complete, raw markdown content for `UI.md`. </code></pre></div></div></dd><dt aria-expanded="false" id="accordion-item-3" tabindex="0"><div><p>Appendix 4: DAL Spec to Plan</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-3"><div><div><pre><code>You are an expert Senior Frontend Developer specializing in React, TypeScript, and Zustand. You are tasked with creating a plan to build a Data Access Layer for an application based on a spec. ## Workflow Follow these steps precisely: **Step 1:** Analyze the documentation carefully: - `DAL.md`: The full technical specification for the Data Access Layer of the application. Follow it carefully and to the letter. There should be no ambiguity about what we are building. **Step 2:** Check out the guidelines: - `TS-guidelines.md`: TypeScript Best Practices - `React-guidelines.md`: React Best Practices - `Zustand-guidelines.md`: Zustand Best Practices **Step 3:** Create a step-by-step plan to build a Data Access Layer according to the spec. Each task should: - Focus on one concern - Be reasonably small - Have a clear start + end - Contain clearly defined Objectives and Acceptance Criteria The last step of the plan should include creating a page to test all the capabilities of our Data Access Layer, and making it the start page of this application, so that I can manually check if it works properly. I will hand this plan over to an engineering LLM that will be told to complete one task at a time, allowing me to review results in between. ## Final Instructions - Note that we are not starting from scratch; the basic template has already been created using Vite. - Do not add redundant empty lines between items. Your final output should be the complete, raw markdown content for `DAL-plan.md`. </code></pre></div></div></dd><dt aria-expanded="false" id="accordion-item-4" tabindex="0"><div><p>Appendix 5: UI Spec to Plan</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-4"><div><div><pre><code>You are an expert Senior Frontend Developer specializing in React, TypeScript, and the Ant Design library. You are tasked with creating a plan to build a UI layer for an application based on a spec and a sketch. ## Workflow Follow these steps precisely: **Step 1:** Analyze the documentation carefully: - `UI.md`: The full technical specification for the UI layer of the application. Follow it carefully and to the letter. - `Sketch.png`: Contains important information about the layout and style, complements the UI Layer Specification. The final UI must be as close to this sketch as possible. There should be no ambiguity about what we are building. **Step 2:** Check out the guidelines: - `TS-guidelines.md`: TypeScript Best Practices - `React-guidelines.md`: React Best Practices **Step 3:** Create a step-by-step plan to build a UI layer according to the spec and the sketch. Each task must: - Focus on one concern. - Be reasonably small. - Have a clear start + end. - Result in a verifiable increment of the application. Each increment should be manually testable to allow for functional review and approval before proceeding. - Contain clearly defined Objectives, Acceptance Criteria, and Manual Testing Plan. I will hand this plan over to an engineering LLM that will be told to complete one task at a time, allowing me to test in between. ## Final Instructions - Note that we are not starting from scratch, the basic template has already been created using Vite, and the Data Access Layer has been built successfully. - For every task, describe how components should be integrated for verification. You must use the provided hooks to connect to the live Zustand store data—do not use mock data (note that the Data Access Layer has been already built successfully). - The Manual Testing Plan should read like a user guide. It must only contain actions a user can perform in the browser and must never reference any code files or programming tasks. - Do not add redundant empty lines between items. Your final output should be the complete, raw markdown content for `UI-plan.md`. </code></pre></div></div></dd><dt aria-expanded="false" id="accordion-item-4" tabindex="0"><div><p>Appendix 6: DAL Plan to Code</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-4"><div><div><pre><code>You are an expert Senior Frontend Developer specializing in React, TypeScript, and Zustand. You are tasked with building a Data Access Layer for an application based on a spec. ## Workflow Follow these steps precisely: **Step 1:** Analyze the documentation carefully: - @docs/specs/DAL.md: The full technical specification for the Data Access Layer of the application. Follow it carefully and to the letter. There should be no ambiguity about what we are building. **Step 2:** Check out the guidelines: - @docs/guidelines/TS-guidelines.md: TypeScript Best Practices - @docs/guidelines/React-guidelines.md: React Best Practices - @docs/guidelines/Zustand-guidelines.md: Zustand Best Practices **Step 3:** Read the plan: - @docs/plans/DAL-plan.md: The step-by-step plan to build the Data Access Layer of the application. **Step 4:** Build a Data Access Layer for this application according to the spec and following the plan. - Complete one task from the plan at a time. - After each task, stop, so that I can test it. Don’t move to the next task before I tell you to do so. - Do not do anything else. At this point, we are focused on building the Data Access Layer. ## Final Instructions - Do not make assumptions based on common patterns; always verify them with the actual data from the spec and the sketch. - Do not start the development server, I'll do it by myself. </code></pre></div></div></dd><dt aria-expanded="false" id="accordion-item-4" tabindex="0"><div><p>Appendix 7: UI Plan to Code</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-4"><div><div><pre><code>You are an expert Senior Frontend Developer specializing in React, TypeScript, and the Ant Design library. You are tasked with building a UI layer for an application based on a spec and a sketch. ## Workflow Follow these steps precisely: **Step 1:** Analyze the documentation carefully: - @docs/specs/UI.md: The full technical specification for the UI layer of the application. Follow it carefully and to the letter. - @docs/intent/Sketch.png: Contains important information about the layout and style, complements the UI Layer Specification. The final UI must be as close to this sketch as possible. - @docs/specs/DAL.md: The full technical specification for the Data Access Layer of the application. That layer is already ready. Use this spec to understand how to work with it. There should be no ambiguity about what we are building. **Step 2:** Check out the guidelines: - @docs/guidelines/TS-guidelines.md: TypeScript Best Practices - @docs/guidelines/React-guidelines.md: React Best Practices **Step 3:** Read the plan: - @docs/plans/UI-plan.md: The step-by-step plan to build the UI layer of the application. **Step 4:** Build a UI layer for this application according to the spec and the sketch, following the step-by-step plan: - Complete one task from the plan at a time. - Make sure you build the UI according to the sketch; this is very important. - After each task, stop, so that I can test it. Don’t move to the next task before I tell you to do so. ## Final Instructions - Do not make assumptions based on common patterns; always verify them with the actual data from the spec and the sketch. - Follow Ant Design's default styles and components. - Do not touch the data access layer: it's ready and it's perfect. - Do not start the development server, I'll do it by myself. </code></pre></div></div></dd><dt aria-expanded="false" id="accordion-item-4" tabindex="0"><div><p>Appendix 8: TS-guidelines.md</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-4"><div><div><pre><code># Guidelines: TypeScript Best Practices ## Type System &amp; Type Safety - Use TypeScript for all code and enable strict mode. - Ensure complete type safety throughout stores, hooks, and component interfaces. - Prefer interfaces over types for object definitions; use types for unions, intersections, and mapped types. - Entity interfaces should extend common patterns while maintaining their specific properties. - Use TypeScript type guards in filtering operations for relationship safety. - Avoid the 'any' type; prefer 'unknown' when necessary. - Use generics to create reusable components and functions. - Utilize TypeScript's features to enforce type safety. - Use type-only imports (import type { MyType } from './types') when importing types, because verbatimModuleSyntax is enabled. - Avoid enums; use maps instead. ## Naming Conventions - Names should reveal intent and purpose. - Use PascalCase for component names and types/interfaces. - Prefix interfaces for React props with 'Props' (e.g., ButtonProps). - Use camelCase for variables and functions. - Use UPPER_CASE for constants. - Use lowercase with dashes for directories, and PascalCase for files with components (e.g., components/auth-wizard/AuthForm.tsx). - Use descriptive variable names with auxiliary verbs (e.g., isLoading, hasError). - Favor named exports for components. ## Code Structure &amp; Patterns - Write concise, technical TypeScript code with accurate examples. - Use functional and declarative programming patterns; avoid classes. - Prefer iteration and modularization over code duplication. - Use the "function" keyword for pure functions. - Use curly braces for all conditionals for consistency and clarity. - Structure files appropriately based on their purpose. - Keep related code together and encapsulate implementation details. ## Performance &amp; Error Handling - Use immutable and efficient data structures and algorithms. - Create custom error types for domain-specific errors. - Use try-catch blocks with typed catch clauses. - Handle Promise rejections and async errors properly. - Log errors appropriately and handle edge cases gracefully. ## Project Organization - Place shared types in a types directory. - Use barrel exports (index.ts) for organizing exports. - Structure files and directories based on their purpose. ## Other Rules - Use comments to explain complex logic or non-obvious decisions. - Follow the single responsibility principle: each function should do exactly one thing. - Follow the DRY (Don't Repeat Yourself) principle. - Do not implement placeholder functions, empty methods, or "just in case" logic. Code should serve the current specification's requirements only. - Use 2 spaces for indentation (no tabs). </code></pre></div></div></dd><dt aria-expanded="false" id="accordion-item-4" tabindex="0"><div><p>Appendix 9: React-guidelines.md</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-4"><div><div><pre><code># Guidelines: React Best Practices ## Component Structure - Use functional components over class components - Keep components small and focused - Extract reusable logic into custom hooks - Use composition over inheritance - Implement proper prop types with TypeScript - Structure React files: exported component, subcomponents, helpers, static content, types - Use declarative TSX for React components - Ensure that UI components use custom hooks for data fetching and operations rather than receive data via props, except for simplest components ## React Patterns - Utilize useState and useEffect hooks for state and side effects - Use React.memo for performance optimization when needed - Utilize React.lazy and Suspense for code-splitting - Implement error boundaries for robust error handling - Keep styles close to components ## React Performance - Avoid unnecessary re-renders - Lazy load components and images when possible - Implement efficient state management - Optimize rendering strategies - Optimize network requests - Employ memoization techniques (e.g., React.memo, useMemo, useCallback) ## React Project Structure ``` /src - /components - UI components (every component in a separate file) - /hooks - public-facing custom hooks (every hook in a separate file) - /providers - React context providers (every provider in a separate file) - /pages - page components (every page in a separate file) - /stores - entity-specific Zustand stores (every store in a separate file) - /styles - global styles (if needed) - /types - shared TypeScript types and interfaces ``` </code></pre></div></div></dd><dt aria-expanded="false" id="accordion-item-4" tabindex="0"><div><p>Appendix 10: Zustand-guidelines.md</p></div><p><span>+</span></p></dt><dd aria-hidden="true" id="accordion-desc-4"><div><div><pre><code># Guidelines: Zustand Best Practices ## Core Principles - **Implement a data layer** for this React application following this specification carefully and to the letter. - **Complete separation of concerns**: All data operations should be accessible in UI components through simple and clean entity-specific hooks, ensuring state management logic is fully separated from UI logic. - **Shared state architecture**: Different UI components should work with the same shared state, despite using entity-specific hooks separately. ## Technology Stack - **State management**: Use Zustand for state management with automatic localStorage persistence via the `persist` middleware. ## Store Architecture - **Base entity:** Implement a BaseEntity interface with common properties that all entities extend: ```typescript export interface BaseEntity { id: string; createdAt: string; // ISO 8601 format updatedAt: string; // ISO 8601 format } ``` - **Entity-specific stores**: Create separate Zustand stores for each entity type. - **Dictionary-based storage**: Use dictionary/map structures (`Record<string entity="">`) rather than arrays for O(1) access by ID. - **Handle relationships**: Implement cross-entity relationships (like cascade deletes) within the stores where appropriate. ## Hook Layer The hook layer is the exclusive interface between UI components and the Zustand stores. It is designed to be simple, predictable, and follow a consistent pattern across all entities. ### Core Principles 1. **One Hook Per Entity**: There will be a single, comprehensive custom hook for each entity (e.g., `useBlogPosts`, `useCategories`). This hook is the sole entry point for all data and operations related to that entity. Separate hooks for single-item access will not be created. 2. **Return reactive data, not getter functions**: To prevent stale data, hooks must return the state itself, not a function that retrieves state. Parameterize hooks to accept filters and return the derived data directly. A component calling a getter function will not update when the underlying data changes. 3. **Expose Dictionaries for O(1) Access**: To provide simple and direct access to data, every hook will return a dictionary (`Record<string entity="">`) of the relevant items. ### The Standard Hook Pattern Every entity hook will follow this implementation pattern: 1. **Subscribe** to the entire dictionary of entities from the corresponding Zustand store. This ensures the hook is reactive to any change in the data. 2. **Filter** the data based on the parameters passed into the hook. This logic will be memoized with `useMemo` for efficiency. If no parameters are provided, the hook will operate on the entire dataset. 3. **Return a Consistent Shape**: The hook will always return an object containing: * A **filtered and sorted array** (e.g., `blogPosts`) for rendering lists. * A **filtered dictionary** (e.g., `blogPostsDict`) for convenient `O(1)` lookup within the component. * All necessary **action functions** (`add`, `update`, `remove`) and **relationship operations**. * All necessary **helper functions** and **derived data objects**. Helper functions are suitable for pure, stateless logic (e.g., calculators). Derived data objects are memoized values that provide aggregated or summarized information from the state (e.g., an object containing status counts). They must be derived directly from the reactive state to ensure they update automatically when the underlying data changes. ## API Design Standards - **Object Parameters**: Use object parameters instead of multiple direct parameters for better extensibility: ```typescript // ✅ Preferred add({ title, categoryIds }) // ❌ Avoid add(title, categoryIds) ``` - **Internal Methods**: Use underscore-prefixed methods for cross-store operations to maintain clean separation. ## State Validation Standards - **Existence checks**: All `update` and `remove` operations should validate entity existence before proceeding. - **Relationship validation**: Verify both entities exist before establishing relationships between them. ## Error Handling Patterns - **Operation failures**: Define behavior when operations fail (e.g., updating non-existent entities). - **Graceful degradation**: How to handle missing related entities in helper functions. ## Other Standards - **Secure ID generation**: Use `crypto.randomUUID()` for entity ID generation instead of custom implementations for better uniqueness guarantees and security. - **Return type consistency**: `add` operations return generated IDs for component workflows requiring immediate entity access, while `update` and `remove` operations return `void` to maintain clean modification APIs. </string></string></code></pre></div></div></dd><span></span></dl></div><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (Yegor Gilyov) <![CDATA[Shades Of October (2025 Wallpapers Edition)]]> https://smashingmagazine.com/2025/09/desktop-wallpaper-calendars-october-2025/ https://smashingmagazine.com/2025/09/desktop-wallpaper-calendars-october-2025/ Tue, 30 Sep 2025 11:00:00 GMT <h1>Shades Of October (2025 Wallpapers Edition) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>12 min read</li><li><a href="http://www.smashingmagazine.com/category/wallpapers">Wallpapers</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>How about some new wallpapers to get your desktop ready for fall and the upcoming Halloween season? We’ve got you covered! Following our monthly tradition, the wallpapers in this post were created with love by the community for the community and can be downloaded for free. Enjoy!</section></p><p>As September comes to a close and October takes over, we are in the midst of a <strong>time of transition</strong>. The air in the morning feels crisper, the leaves are changing colors, and winding down with a warm cup of tea regains its almost-forgotten appeal after a busy summer. When we look closely, October is full of little moments that have the power to inspire, and whatever <em>your</em> secret to finding new inspiration might be, our monthly wallpapers series is bound to give you a little inspiration boost, too.</p><p>For this October edition, artists and designers from across the globe once again challenged their creative skills and designed <strong>wallpapers to spark your imagination</strong>. You find them compiled below, along with a selection of timeless October treasures from our <a href="https://www.smashingmagazine.com/category/wallpapers">wallpapers archives</a> that are just too good to gather dust.</p><p>A huge thank you to everyone who shared their designs with us this month — this post wouldn’t exist without your creativity and kind support! Happy October!</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></br>Feeling inspired? 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><h2 id="midnight-mischief-10-2025">Midnight Mischief</h2><p>Designed by <a href="https://www.librafire.com/">Libra Fire</a> from Serbia.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/oct-25-midnight-mischief-full.png" title="Midnight Mischief"><img alt="Midnight Mischief" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2025/oct-25-midnight-mischief-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/oct-25-midnight-mischief-preview.png" title="Midnight Mischief - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-320x480.png" title="Midnight Mischief - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-640x480.png" title="Midnight Mischief - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-800x480.png" title="Midnight Mischief - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-800x600.png" title="Midnight Mischief - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1024x768.png" title="Midnight Mischief - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1024x1024.png" title="Midnight Mischief - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1152x864.png" title="Midnight Mischief - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1280x720.png" title="Midnight Mischief - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1280x800.png" title="Midnight Mischief - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1280x960.png" title="Midnight Mischief - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1280x1024.png" title="Midnight Mischief - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1400x1050.png" title="Midnight Mischief - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1440x900.png" title="Midnight Mischief - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1600x1200.png" title="Midnight Mischief - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1680x1050.png" title="Midnight Mischief - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1680x1200.png" title="Midnight Mischief - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1920x1080.png" title="Midnight Mischief - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1920x1200.png" title="Midnight Mischief - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1920x1440.png" title="Midnight Mischief - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-2560x1440.png" title="Midnight Mischief - 2560x1440">2560x1440</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-320x480.png" title="Midnight Mischief - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-640x480.png" title="Midnight Mischief - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-800x480.png" title="Midnight Mischief - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-800x600.png" title="Midnight Mischief - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1024x768.png" title="Midnight Mischief - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1024x1024.png" title="Midnight Mischief - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1152x864.png" title="Midnight Mischief - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1280x720.png" title="Midnight Mischief - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1280x800.png" title="Midnight Mischief - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1280x960.png" title="Midnight Mischief - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1280x1024.png" title="Midnight Mischief - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1400x1050.png" title="Midnight Mischief - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1440x900.png" title="Midnight Mischief - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1600x1200.png" title="Midnight Mischief - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1680x1050.png" title="Midnight Mischief - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1680x1200.png" title="Midnight Mischief - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1920x1080.png" title="Midnight Mischief - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1920x1200.png" title="Midnight Mischief - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1920x1440.png" title="Midnight Mischief - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-2560x1440.png" title="Midnight Mischief - 2560x1440">2560x1440</a></li></ul><h2 id="ai-10-2025">AI</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/oct-25-ai-full.png" title="AI"><img alt="AI" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2025/oct-25-ai-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/oct-25-ai-preview.png" title="AI - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-640x480.png" title="AI - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-800x480.png" title="AI - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-800x600.png" title="AI - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1024x768.png" title="AI - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1024x1024.png" title="AI - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1152x864.png" title="AI - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1280x720.png" title="AI - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1280x800.png" title="AI - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1280x960.png" title="AI - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1280x1024.png" title="AI - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1366x768.png" title="AI - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1400x1050.png" title="AI - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1440x900.png" title="AI - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1600x1200.png" title="AI - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1680x1050.png" title="AI - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1680x1200.png" title="AI - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1920x1080.png" title="AI - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1920x1200.png" title="AI - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1920x1440.png" title="AI - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-2560x1440.png" title="AI - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-3840x2160.png" title="AI - 3840x2160">3840x2160</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-640x480.png" title="AI - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-800x480.png" title="AI - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-800x600.png" title="AI - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1024x768.png" title="AI - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1024x1024.png" title="AI - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1152x864.png" title="AI - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1280x720.png" title="AI - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1280x800.png" title="AI - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1280x960.png" title="AI - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1280x1024.png" title="AI - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1366x768.png" title="AI - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1400x1050.png" title="AI - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1440x900.png" title="AI - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1600x1200.png" title="AI - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1680x1050.png" title="AI - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1680x1200.png" title="AI - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1920x1080.png" title="AI - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1920x1200.png" title="AI - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1920x1440.png" title="AI - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-2560x1440.png" title="AI - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-3840x2160.png" title="AI - 3840x2160">3840x2160</a></li></ul><h2 id="glowing-pumpkin-lanterns-10-2025">Glowing Pumpkin Lanterns</h2><p>“I was inspired by the classic orange and purple colors of October and Halloween, and wanted to combine those two themes to create a fun pumpkin lantern background.” — Designed by <a href="https://melissabdesigning.wixsite.com/home">Melissa Bostjancic</a> from New Jersey, United States.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/oct-25-glowing-pumpkin-lanterns-full.png" title="Glowing Pumpkin Lanterns"><img alt="Glowing Pumpkin Lanterns" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2025/oct-25-glowing-pumpkin-lanterns-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/oct-25-glowing-pumpkin-lanterns-preview.png" title="Glowing Pumpkin Lanterns - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-320x480.png" title="Glowing Pumpkin Lanterns - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-640x480.png" title="Glowing Pumpkin Lanterns - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-800x480.png" title="Glowing Pumpkin Lanterns - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-800x600.png" title="Glowing Pumpkin Lanterns - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1024x768.png" title="Glowing Pumpkin Lanterns - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1024x1024.png" title="Glowing Pumpkin Lanterns - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1152x864.png" title="Glowing Pumpkin Lanterns - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1280x720.png" title="Glowing Pumpkin Lanterns - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1280x800.png" title="Glowing Pumpkin Lanterns - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1280x960.png" title="Glowing Pumpkin Lanterns - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1280x1024.png" title="Glowing Pumpkin Lanterns - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1400x1050.png" title="Glowing Pumpkin Lanterns - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1440x900.png" title="Glowing Pumpkin Lanterns - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1600x1200.png" title="Glowing Pumpkin Lanterns - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1680x1050.png" title="Glowing Pumpkin Lanterns - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1680x1200.png" title="Glowing Pumpkin Lanterns - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1920x1080.png" title="Glowing Pumpkin Lanterns - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1920x1200.png" title="Glowing Pumpkin Lanterns - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1920x1440.png" title="Glowing Pumpkin Lanterns - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-2560x1440.png" title="Glowing Pumpkin Lanterns - 2560x1440">2560x1440</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-320x480.png" title="Glowing Pumpkin Lanterns - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-640x480.png" title="Glowing Pumpkin Lanterns - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-800x480.png" title="Glowing Pumpkin Lanterns - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-800x600.png" title="Glowing Pumpkin Lanterns - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1024x768.png" title="Glowing Pumpkin Lanterns - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1024x1024.png" title="Glowing Pumpkin Lanterns - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1152x864.png" title="Glowing Pumpkin Lanterns - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1280x720.png" title="Glowing Pumpkin Lanterns - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1280x800.png" title="Glowing Pumpkin Lanterns - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1280x960.png" title="Glowing Pumpkin Lanterns - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1280x1024.png" title="Glowing Pumpkin Lanterns - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1400x1050.png" title="Glowing Pumpkin Lanterns - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1440x900.png" title="Glowing Pumpkin Lanterns - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1600x1200.png" title="Glowing Pumpkin Lanterns - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1680x1050.png" title="Glowing Pumpkin Lanterns - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1680x1200.png" title="Glowing Pumpkin Lanterns - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1920x1080.png" title="Glowing Pumpkin Lanterns - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1920x1200.png" title="Glowing Pumpkin Lanterns - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1920x1440.png" title="Glowing Pumpkin Lanterns - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-2560x1440.png" title="Glowing Pumpkin Lanterns - 2560x1440">2560x1440</a></li></ul><h2 id="halloween-2040-10-2025">Halloween 2040</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/oct-25-halloween-2040-full.png" title="Halloween 2040"><img alt="Halloween 2040" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2025/oct-25-halloween-2040-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/oct-25-halloween-2040-preview.png" title="Halloween 2040 - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-640x480.png" title="Halloween 2040 - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-800x600.png" title="Halloween 2040 - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1024x768.png" title="Halloween 2040 - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1024x1024.png" title="Halloween 2040 - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1152x864.png" title="Halloween 2040 - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1280x720.png" title="Halloween 2040 - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1280x800.png" title="Halloween 2040 - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1280x960.png" title="Halloween 2040 - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1280x1024.png" title="Halloween 2040 - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1366x768.png" title="Halloween 2040 - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1400x1050.png" title="Halloween 2040 - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1440x900.png" title="Halloween 2040 - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1600x1200.png" title="Halloween 2040 - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1680x1050.png" title="Halloween 2040 - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1680x1200.png" title="Halloween 2040 - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1920x1080.png" title="Halloween 2040 - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1920x1200.png" title="Halloween 2040 - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1920x1440.png" title="Halloween 2040 - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-2560x1440.png" title="Halloween 2040 - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-3840x2160.png" title="Halloween 2040 - 3840x2160">3840x2160</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-640x480.png" title="Halloween 2040 - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-800x600.png" title="Halloween 2040 - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1024x768.png" title="Halloween 2040 - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1024x1024.png" title="Halloween 2040 - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1152x864.png" title="Halloween 2040 - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1280x720.png" title="Halloween 2040 - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1280x800.png" title="Halloween 2040 - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1280x960.png" title="Halloween 2040 - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1280x1024.png" title="Halloween 2040 - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1366x768.png" title="Halloween 2040 - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1400x1050.png" title="Halloween 2040 - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1440x900.png" title="Halloween 2040 - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1600x1200.png" title="Halloween 2040 - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1680x1050.png" title="Halloween 2040 - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1680x1200.png" title="Halloween 2040 - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1920x1080.png" title="Halloween 2040 - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1920x1200.png" title="Halloween 2040 - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1920x1440.png" title="Halloween 2040 - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-2560x1440.png" title="Halloween 2040 - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-3840x2160.png" title="Halloween 2040 - 3840x2160">3840x2160</a></li></ul><h2 id="when-the-mind-opens-10-2025">When The Mind Opens</h2><p>“In October, we observe World Mental Health Day. The open window in the head symbolizes light and fresh thoughts, the plant represents quiet inner growth and resilience, and the bird brings freedom and connection with the world. Together, they create an image of a mind that breathes, grows, and remains open to new beginnings.” — Designed by <a href="https://www.gingeritsolutions.com/">Ginger IT Solutions</a> from Serbia.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/oct-25-when-the-mind-opens-full.png" title="When The Mind Opens"><img alt="When The Mind Opens" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2025/oct-25-when-the-mind-opens-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/oct-25-when-the-mind-opens-preview.png" title="When The Mind Opens - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-320x480.png" title="When The Mind Opens - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-640x480.png" title="When The Mind Opens - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-800x480.png" title="When The Mind Opens - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-800x600.png" title="When The Mind Opens - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1024x768.png" title="When The Mind Opens - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1024x1024.png" title="When The Mind Opens - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1152x864.png" title="When The Mind Opens - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1280x720.png" title="When The Mind Opens - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1280x800.png" title="When The Mind Opens - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1280x960.png" title="When The Mind Opens - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1280x1024.png" title="When The Mind Opens - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1400x1050.png" title="When The Mind Opens - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1440x900.png" title="When The Mind Opens - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1600x1200.png" title="When The Mind Opens - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1680x1050.png" title="When The Mind Opens - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1680x1200.png" title="When The Mind Opens - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1920x1080.png" title="When The Mind Opens - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1920x1200.png" title="When The Mind Opens - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1920x1440.png" title="When The Mind Opens - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-2560x1440.png" title="When The Mind Opens - 2560x1440">2560x1440</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-320x480.png" title="When The Mind Opens - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-640x480.png" title="When The Mind Opens - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-800x480.png" title="When The Mind Opens - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-800x600.png" title="When The Mind Opens - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1024x768.png" title="When The Mind Opens - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1024x1024.png" title="When The Mind Opens - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1152x864.png" title="When The Mind Opens - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1280x720.png" title="When The Mind Opens - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1280x800.png" title="When The Mind Opens - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1280x960.png" title="When The Mind Opens - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1280x1024.png" title="When The Mind Opens - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1400x1050.png" title="When The Mind Opens - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1440x900.png" title="When The Mind Opens - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1600x1200.png" title="When The Mind Opens - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1680x1050.png" title="When The Mind Opens - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1680x1200.png" title="When The Mind Opens - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1920x1080.png" title="When The Mind Opens - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1920x1200.png" title="When The Mind Opens - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1920x1440.png" title="When The Mind Opens - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-2560x1440.png" title="When The Mind Opens - 2560x1440">2560x1440</a></li></ul><h2 id="enter-the-factory-10-2025">Enter The Factory</h2><p>“I took this photo while visiting an old factory. The red light was astonishing.” — Designed by <a href="https://www.philippebrouard.fr/">Philippe Brouard</a> from France.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/oct-25-enter-the-factory-full.png" title="Enter The Factory"><img alt="Enter The Factory" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2025/oct-25-enter-the-factory-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/oct-25-enter-the-factory-preview.png" title="Enter The Factory - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-1024x768.jpg" title="Enter The Factory - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-1366x768.jpg" title="Enter The Factory - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-1600x1200.jpg" title="Enter The Factory - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-1920x1080.jpg" title="Enter The Factory - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-1920x1200.jpg" title="Enter The Factory - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-1920x1440.jpg" title="Enter The Factory - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-2560x1440.jpg" title="Enter The Factory - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-2560x1600.jpg" title="Enter The Factory - 2560x1600">2560x1600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-2880x1800.jpg" title="Enter The Factory - 2880x1800">2880x1800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-3840x2160.jpg" title="Enter The Factory - 3840x2160">3840x2160</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-1024x768.jpg" title="Enter The Factory - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-1366x768.jpg" title="Enter The Factory - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-1600x1200.jpg" title="Enter The Factory - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-1920x1080.jpg" title="Enter The Factory - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-1920x1200.jpg" title="Enter The Factory - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-1920x1440.jpg" title="Enter The Factory - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-2560x1440.jpg" title="Enter The Factory - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-2560x1600.jpg" title="Enter The Factory - 2560x1600">2560x1600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-2880x1800.jpg" title="Enter The Factory - 2880x1800">2880x1800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-3840x2160.jpg" title="Enter The Factory - 3840x2160">3840x2160</a></li></ul><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smart-interface-design-patterns.com/"><div><picture><source srcset="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3155f571-450d-42f9-81b4-494aa9b52841/video-course-smart-interface-design-patterns-vitaly-friedman.avif" type="image/avif"><img alt="Feature Panel" decoding="async" height="790" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8c98e7f9-8e62-4c43-b833-fc6bf9fea0a9/video-course-smart-interface-design-patterns-vitaly-friedman.jpg" width="690"></img></source></picture></div></a></div></aside></div><h2 id="the-crow-and-the-ghosts">The Crow And The Ghosts</h2><p>“If my heart were a season, it would be autumn.” — Designed by <a href="https://www.instagram.com/lenartlivia/">Lívia Lénárt</a> from Hungary.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/oct-23-the-crow-and-the-ghosts-full.png" title="The Crow And The Ghosts"><img alt="The Crow And The Ghosts" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-23-the-crow-and-the-ghosts-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/oct-23-the-crow-and-the-ghosts-preview.png" title="The Crow And The Ghosts - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-320x480.png" title="The Crow And The Ghosts - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-1024x1024.png" title="The Crow And The Ghosts - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-1280x1024.png" title="The Crow And The Ghosts - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-1600x1200.png" title="The Crow And The Ghosts - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-1680x1200.png" title="The Crow And The Ghosts - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-1920x1080.png" title="The Crow And The Ghosts - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-1920x1200.png" title="The Crow And The Ghosts - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-1920x1440.png" title="The Crow And The Ghosts - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-2560x1440.png" title="The Crow And The Ghosts - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-3840x2160.png" title="The Crow And The Ghosts - 3840x2160">3840x2160</a></li></ul><h2 id="the-night-drive">The Night Drive</h2><p>Designed by <a href="https://vlad.studio/">Vlad Gerasimov</a> from Georgia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4d2855e9-dfb9-4bbb-88d2-179407686170/oct-21-the-night-drive-nocal-large-opt.png" title="The Night Drive"><img alt="The Night Drive" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c857e80c-d2c5-49b1-9664-50fd96b1b71b/oct-21-the-night-drive-nocal-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c857e80c-d2c5-49b1-9664-50fd96b1b71b/oct-21-the-night-drive-nocal-preview-opt.png" title="The Night Drive - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-800x480.jpg" title="The Night Drive - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-800x600.jpg" title="The Night Drive - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1024x600.jpg" title="The Night Drive - 1024x600">1024x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1024x768.jpg" title="The Night Drive - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1152x864.jpg" title="The Night Drive - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1280x720.jpg" title="The Night Drive - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1280x800.jpg" title="The Night Drive - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1280x960.jpg" title="The Night Drive - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1280x1024.jpg" title="The Night Drive - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1366x768.jpg" title="The Night Drive - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1440x900.jpg" title="The Night Drive - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1440x960.jpg" title="The Night Drive - 1440x960">1440x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1400x1050.jpg" title="The Night Drive - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1600x900.jpg" title="The Night Drive - 1600x900">1600x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1600x1200.jpg" title="The Night Drive - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1680x1050.jpg" title="The Night Drive - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1680x1200.jpg" title="The Night Drive - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1920x1080.jpg" title="The Night Drive - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1920x1200.jpg" title="The Night Drive - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1920x1440.jpg" title="The Night Drive - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-2560x1440.jpg" title="The Night Drive - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-2560x1600.jpg" title="The Night Drive - 2560x1600">2560x1600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-2880x1800.jpg" title="The Night Drive - 2880x1800">2880x1800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-3072x1920.jpg" title="The Night Drive - 3072x1920">3072x1920</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-3840x2160.jpg" title="The Night Drive - 3840x2160">3840x2160</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-5120x2880.jpg" title="The Night Drive - 5120x2880">5120x2880</a></li></ul><h2 id="spooky-town">Spooky Town</h2><p>Designed by <a href="https://www.behance.net/xenialatii">Xenia Latii</a> from Germany.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5612781d-646a-4dd3-a4f6-bf6fd797a922/oct-16-spooky-town-full.png" title="Spooky Town"><img alt="Spooky Town" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8904f434-8f44-42f6-9c70-dc8316b99e07/oct-16-spooky-town-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8904f434-8f44-42f6-9c70-dc8316b99e07/oct-16-spooky-town-preview-opt.png" title="Spooky Town - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-320x480.jpg" title="Spooky Town - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-640x480.jpg" title="Spooky Town - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-800x480.jpg" title="Spooky Town - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-800x600.jpg" title="Spooky Town - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1024x768.jpg" title="Spooky Town - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1152x864.jpg" title="Spooky Town - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1280x720.jpg" title="Spooky Town - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1280x800.jpg" title="Spooky Town - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1280x960.jpg" title="Spooky Town - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1280x1024.jpg" title="Spooky Town - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1366x768.jpg" title="Spooky Town - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1400x1050.jpg" title="Spooky Town - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1440x900.jpg" title="Spooky Town - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1600x1200.jpg" title="Spooky Town - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1680x1050.jpg" title="Spooky Town - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1680x1200.jpg" title="Spooky Town - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1920x1080.jpg" title="Spooky Town - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1920x1200.jpg" title="Spooky Town - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1920x1440.jpg" title="Spooky Town - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-2560x1440.jpg" title="Spooky Town - 2560x1440">2560x1440</a></li></ul><h2 id="bird-migration-portal">Bird Migration Portal</h2><p>“When I was young, I had a bird’s nest not so far from my room window. I watched the birds almost every day; because those swallows always left their nests in October. As a child, I dreamt that they all flew together to a nicer place, where they were not so cold.” — Designed by <a href="https://www.behance.net/elineclaeye6ad">Eline Claeys</a> from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/22c08dc4-e293-4f69-a2ad-abc693077f16/oct-20-bird-migration-portal-full-opt.png" title="Bird Migration Portal"><img alt="Bird Migration Portal" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8c93b9d2-ef73-482c-93e3-2ad30539c17f/oct-20-bird-migration-portal-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8c93b9d2-ef73-482c-93e3-2ad30539c17f/oct-20-bird-migration-portal-preview-opt.png" title="Bird Migration Portal - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-20/bird-migration-portal/nocal/oct-20-bird-migration-portal-nocal-1280x1024.jpg" title="Bird Migration Portal - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/bird-migration-portal/nocal/oct-20-bird-migration-portal-nocal-1440x900.jpg" title="Bird Migration Portal - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/bird-migration-portal/nocal/oct-20-bird-migration-portal-nocal-1600x1200.jpg" title="Bird Migration Portal - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/bird-migration-portal/nocal/oct-20-bird-migration-portal-nocal-1680x1050.jpg" title="Bird Migration Portal - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/bird-migration-portal/nocal/oct-20-bird-migration-portal-nocal-1680x1200.jpg" title="Bird Migration Portal - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/bird-migration-portal/nocal/oct-20-bird-migration-portal-nocal-1920x1080.jpg" title="Bird Migration Portal - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/bird-migration-portal/nocal/oct-20-bird-migration-portal-nocal-1920x1200.jpg" title="Bird Migration Portal - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/bird-migration-portal/nocal/oct-20-bird-migration-portal-nocal-1920x1440.jpg" title="Bird Migration Portal - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/bird-migration-portal/nocal/oct-20-bird-migration-portal-nocal-2560x1440.jpg" title="Bird Migration Portal - 2560x1440">2560x1440</a></li></ul><h2 id="hanlu">Hanlu</h2><p>“The term ‘Hanlu’ literally translates as ‘Cold Dew.’ The cold dew brings brisk mornings and evenings. Eventually the briskness will turn cold, as winter is coming soon. And chrysanthemum is the iconic flower of Cold Dew.” — Designed by Hong, ZI-Qing from Taiwan.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/22ee06e5-367f-4ead-bc44-4c2756c91dda/oct-17-hanlu-full-opt.png" title="Hanlu"><img alt="Hanlu" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/48624d04-9f50-4195-b7f7-3b686095b1e7/oct-17-hanlu-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/48624d04-9f50-4195-b7f7-3b686095b1e7/oct-17-hanlu-preview-opt.png" title="Hanlu - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-640x480.png" title="Hanlu - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-800x600.png" title="Hanlu - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1024x768.png" title="Hanlu - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1080x1920.png" title="Hanlu - 1080x1920">1080x1920</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1152x864.png" title="Hanlu - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1280x720.png" title="Hanlu - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1280x960.png" title="Hanlu - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1366x768.png" title="Hanlu - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1400x1050.png" title="Hanlu - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1600x1200.png" title="Hanlu - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1920x1080.png" title="Hanlu - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1920x1440.png" title="Hanlu - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-2560x1440.png" title="Hanlu - 2560x1440">2560x1440</a></li></ul><h2 id="autumns-splendor">Autumn’s Splendor</h2><p>“The transition to autumn brings forth a rich visual tapestry of warm colors and falling leaves, making it a natural choice for a wallpaper theme.” — Designed by <a href="https://farhansrambiyan.com/">Farhan Srambiyan</a> from India.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2024/oct-23-autumns-splendor-full-opt.png" title="Autumn’s Splendor"><img alt="Autumn’s Splendor" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2024/oct-23-autumns-splendor-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2024/oct-23-autumns-splendor-preview-opt.png" title="Autumn’s Splendor - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1280x960.png" title="Autumn’s Splendor - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1280x1024.png" title="Autumn’s Splendor - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1400x1050.png" title="Autumn’s Splendor - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1440x900.png" title="Autumn’s Splendor - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1600x1200.png" title="Autumn’s Splendor - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1680x1050.png" title="Autumn’s Splendor - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1680x1200.png" title="Autumn’s Splendor - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1920x1080.png" title="Autumn’s Splendor - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1920x1200.png" title="Autumn’s Splendor - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1920x1440.png" title="Autumn’s Splendor - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-2560x1440.png" title="Autumn’s Splendor - 2560x1440">2560x1440</a></li></ul><h2 id="ghostbusters">Ghostbusters</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8db976cc-7160-4d24-9dfb-c8e7a39b0c3a/oct-18-ghostbusters-full-opt.png" title="Ghostbusters"><img alt="Ghostbusters" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/fb08fc1e-0d62-454f-8cf3-0221a2ee23da/oct-18-ghostbusters-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/fb08fc1e-0d62-454f-8cf3-0221a2ee23da/oct-18-ghostbusters-preview-opt.png" title="Ghostbusters - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-320x480.png" title="Ghostbusters - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-640x480.png" title="Ghostbusters - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-800x480.png" title="Ghostbusters - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-800x600.png" title="Ghostbusters - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1024x768.png" title="Ghostbusters - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1024x1024.png" title="Ghostbusters - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1152x864.png" title="Ghostbusters - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1280x720.png" title="Ghostbusters - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1280x800.png" title="Ghostbusters - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1280x960.png" title="Ghostbusters - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1280x1024.png" title="Ghostbusters - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1366x768.png" title="Ghostbusters - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1400x1050.png" title="Ghostbusters - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1440x900.png" title="Ghostbusters - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1600x1200.png" title="Ghostbusters - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1680x1050.png" title="Ghostbusters - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1680x1200.png" title="Ghostbusters - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1920x1080.png" title="Ghostbusters - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1920x1200.png" title="Ghostbusters - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1920x1440.png" title="Ghostbusters - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-2560x1440.png" title="Ghostbusters - 2560x1440">2560x1440</a></li></ul><h2 id="hello-autumn">Hello Autumn</h2><p>“Did you know that squirrels don’t just eat nuts? They really like to eat fruit, too. Since apples are the seasonal fruit of October, I decided to combine both things into a beautiful image.” — Designed by Erin Troch from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0ec017fd-d9c1-4e06-bf96-81693ff5ee05/oct-20-hello-autumn-full-opt.png" title="Hello Autumn"><img alt="Hello Autumn" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b5f4a682-cf25-4c76-80d9-06092b3ba73d/oct-20-hello-autumn-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b5f4a682-cf25-4c76-80d9-06092b3ba73d/oct-20-hello-autumn-preview-opt.png" title="Hello Autumn - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-320x480.jpg" title="Hello Autumn - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-800x480.jpg" title="Hello Autumn - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-1024x1024.jpg" title="Hello Autumn - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-1280x800.jpg" title="Hello Autumn - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-1366x768.jpg" title="Hello Autumn - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-1600x1200.jpg" title="Hello Autumn - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-1680x1050.jpg" title="Hello Autumn - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-1680x1200.jpg" title="Hello Autumn - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-1920x1440.jpg" title="Hello Autumn - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-2560x1440.jpg" title="Hello Autumn - 2560x1440">2560x1440</a></li></ul><h2 id="discovering-the-universe">Discovering The Universe</h2><p>“Autumn is the best moment for discovering the universe. I am looking for a new galaxy or maybe&amp;mldr; a UFO!” — Designed by <a href="https://www.silocreativo.com/en/">Verónica Valenzuela</a> from Spain.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6b1865c0-e710-4289-b3f0-39a3723b91a1/oct-15-discovering-the-universe-full-opt.png" title="Discovering The Universe!"><img alt="Discovering The Universe!" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/99368568-d685-4fa9-adeb-036a518e6214/oct-15-discovering-the-universe-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/99368568-d685-4fa9-adeb-036a518e6214/oct-15-discovering-the-universe-preview-opt.png" title="Discovering The Universe! - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-15/discovering-the-universe/nocal/oct-15-discovering-the-universe-nocal-800x480.png" title="Discovering The Universe! - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-15/discovering-the-universe/nocal/oct-15-discovering-the-universe-nocal-1024x768.png" title="Discovering The Universe! - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-15/discovering-the-universe/nocal/oct-15-discovering-the-universe-nocal-1152x864.png" title="Discovering The Universe! - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-15/discovering-the-universe/nocal/oct-15-discovering-the-universe-nocal-1280x800.png" title="Discovering The Universe! - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-15/discovering-the-universe/nocal/oct-15-discovering-the-universe-nocal-1280x960.png" title="Discovering The Universe! - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-15/discovering-the-universe/nocal/oct-15-discovering-the-universe-nocal-1440x900.png" title="Discovering The Universe! - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-15/discovering-the-universe/nocal/oct-15-discovering-the-universe-nocal-1680x1200.png" title="Discovering The Universe! - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-15/discovering-the-universe/nocal/oct-15-discovering-the-universe-nocal-1920x1080.png" title="Discovering The Universe! - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-15/discovering-the-universe/nocal/oct-15-discovering-the-universe-nocal-2560x1440.png" title="Discovering The Universe! - 2560x1440">2560x1440</a></li></ul><h2 id="the-return-of-the-living-dead">The Return Of The Living Dead</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9b8f09e5-f54e-4906-8850-7bccb0b78d76/oct-21-the-return-of-the-living-dead-nocal-large-opt.png" title="The Return Of The Living Dead"><img alt="The Return Of The Living Dead" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a00ddee6-5e43-4657-a42a-5f9ecb577f49/oct-21-the-return-of-the-living-dead-nocal-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a00ddee6-5e43-4657-a42a-5f9ecb577f49/oct-21-the-return-of-the-living-dead-nocal-preview-opt.png" title="The Return Of The Living Dead - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-640x480.png" title="The Return Of The Living Dead - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-800x480.png" title="The Return Of The Living Dead - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-800x600.png" title="The Return Of The Living Dead - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1024x768.png" title="The Return Of The Living Dead - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1024x1024.png" title="The Return Of The Living Dead - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1152x864.png" title="The Return Of The Living Dead - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1280x720.png" title="The Return Of The Living Dead - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1280x800.png" title="The Return Of The Living Dead - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1280x960.png" title="The Return Of The Living Dead - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1280x1024.png" title="The Return Of The Living Dead - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1366x768.png" title="The Return Of The Living Dead - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1400x1050.png" title="The Return Of The Living Dead - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1440x900.png" title="The Return Of The Living Dead - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1600x1200.png" title="The Return Of The Living Dead - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1680x1050.png" title="The Return Of The Living Dead - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1680x1200.png" title="The Return Of The Living Dead - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1920x1080.png" title="The Return Of The Living Dead - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1920x1200.png" title="The Return Of The Living Dead - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1920x1440.png" title="The Return Of The Living Dead - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-2560x1440.png" title="The Return Of The Living Dead - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-3840x2160.png" title="The Return Of The Living Dead - 3840x2160">3840x2160</a></li></ul><h2 id="goddess-makosh">Goddess Makosh</h2><p>“At the end of the kolodar, as everything begins to ripen, the village sets out to harvesting. Together with the farmers goes Makosh, the Goddess of fields and crops, ensuring a prosperous harvest. What she gave her life and health all year round is now mature and rich, thus, as a sign of gratitude, the girls bring her bread and wine. The beautiful game of the goddess makes the hard harvest easier, while the song of the farmer permeates the field.” — Designed by <a href="https://www.popwebdesign.net/graphic_design.html">PopArt Studio</a> from Serbia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1a1f6bf8-8622-49ca-be64-91aa92112914/oct-21-goddess-makosh-light-mode-nocal-large-opt.png" title="Goddess Makosh Light Mode"><img alt="Goddess Makosh Light Mode" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a2d30a76-3e20-4e2a-9e4b-d80850f439d4/oct-21-goddess-makosh-light-mode-nocal-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a2d30a76-3e20-4e2a-9e4b-d80850f439d4/oct-21-goddess-makosh-light-mode-nocal-preview-opt.png" title="Goddess Makosh Light Mode - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-320x480.jpg" title="Goddess Makosh Light Mode - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-640x480.jpg" title="Goddess Makosh Light Mode - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-800x480.jpg" title="Goddess Makosh Light Mode - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-800x600.jpg" title="Goddess Makosh Light Mode - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1024x768.jpg" title="Goddess Makosh Light Mode - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1024x1024.jpg" title="Goddess Makosh Light Mode - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1152x864.jpg" title="Goddess Makosh Light Mode - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1280x720.jpg" title="Goddess Makosh Light Mode - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1280x800.jpg" title="Goddess Makosh Light Mode - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1280x960.jpg" title="Goddess Makosh Light Mode - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1280x1024.jpg" title="Goddess Makosh Light Mode - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1366x768.jpg" title="Goddess Makosh Light Mode - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1400x1050.jpg" title="Goddess Makosh Light Mode - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1440x900.jpg" title="Goddess Makosh Light Mode - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1600x1200.jpg" title="Goddess Makosh Light Mode - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1680x1050.jpg" title="Goddess Makosh Light Mode - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1680x1200.jpg" title="Goddess Makosh Light Mode - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1920x1080.jpg" title="Goddess Makosh Light Mode - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1920x1200.jpg" title="Goddess Makosh Light Mode - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1920x1440.jpg" title="Goddess Makosh Light Mode - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-2560x1440.jpg" title="Goddess Makosh Light Mode - 2560x1440">2560x1440</a></li></ul><h2 id="strange-october-journey">Strange October Journey</h2><p>“October makes the leaves fall to cover the land with lovely auburn colors and brings out all types of weird with them.” — Designed by Mi Ni Studio from Serbia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e75e3229-dc11-4b40-9dd1-cda9d7759053/oct-18-strange-october-journey-full-opt.png" title="Strange October Journey"><img alt="Strange October Journey" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5b80137e-9fbb-46d8-a2c2-198d267acf14/oct-18-strange-october-journey-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5b80137e-9fbb-46d8-a2c2-198d267acf14/oct-18-strange-october-journey-preview-opt.png" title="Strange October Journey - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-320x480.jpg" title="Strange October Journey - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-640x480.jpg" title="Strange October Journey - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-800x480.jpg" title="Strange October Journey - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-800x600.jpg" title="Strange October Journey - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1024x768.jpg" title="Strange October Journey - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1024x1024.jpg" title="Strange October Journey - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1152x864.jpg" title="Strange October Journey - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1280x720.jpg" title="Strange October Journey - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1280x800.jpg" title="Strange October Journey - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1280x960.jpg" title="Strange October Journey - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1280x1024.jpg" title="Strange October Journey - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1400x1050.jpg" title="Strange October Journey - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1440x900.jpg" title="Strange October Journey - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1600x1200.jpg" title="Strange October Journey - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1680x1050.jpg" title="Strange October Journey - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1680x1200.jpg" title="Strange October Journey - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1920x1080.jpg" title="Strange October Journey - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1920x1200.jpg" title="Strange October Journey - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1920x1440.jpg" title="Strange October Journey - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-2560x1440.jpg" title="Strange October Journey - 2560x1440">2560x1440</a></li></ul><h2 id="autumn-deer">Autumn Deer</h2><p>Designed by <a href="https://www.amyhamilton.ca">Amy Hamilton</a> from Canada.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2e446fd6-d2a5-40db-b663-c3f0ee847942/october-12-autumn-deer-38-full-opt.png"><img alt="Autumn Deer" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2b7b5459-8a92-402d-96a1-9af754dec432/october-12-autumn-deer-38-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2b7b5459-8a92-402d-96a1-9af754dec432/october-12-autumn-deer-38-preview-opt.png">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-2048x1536.png">2048x1536</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-2560x1440.png">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-2880x1800.png">2880x1800</a></li></ul><h2 id="transitions">Transitions</h2><p>“To me, October is a transitional month. We gradually slide from summer to autumn. That’s why I chose to use a lot of gradients. I also wanted to work with simple shapes, because I think of October as the ‘back to nature/back to basics month’.” — Designed by Jelle Denturck from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/858d73a0-2432-4322-8abd-a7be0cc4ff2c/oct-19-transitions-full-opt.jpg" title="Transitions"><img alt="Transitions" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1d2b9f18-9994-4a95-af77-91c83d1bb7b7/oct-19-transitions-preview-opt.jpg"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1d2b9f18-9994-4a95-af77-91c83d1bb7b7/oct-19-transitions-preview-opt.jpg" title="Transitions - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-19/transitions/nocal/oct-19-transitions-nocal-1600x1200.jpg" title="Transitions - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/transitions/nocal/oct-19-transitions-nocal-1680x1050.jpg" title="Transitions - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/transitions/nocal/oct-19-transitions-nocal-1680x1200.jpg" title="Transitions - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/transitions/nocal/oct-19-transitions-nocal-1920x1080.jpg" title="Transitions - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/transitions/nocal/oct-19-transitions-nocal-1920x1200.jpg" title="Transitions - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/transitions/nocal/oct-19-transitions-nocal-1920x1440.jpg" title="Transitions - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/transitions/nocal/oct-19-transitions-nocal-2560x1440.jpg" title="Transitions - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/transitions/nocal/oct-19-transitions-nocal-2880x1800.jpg" title="Transitions - 2880x1800">2880x1800</a></li></ul><h2 id="happy-fall">Happy Fall!</h2><p>“Fall is my favorite season!” — Designed by Thuy Truong from the United States.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/776ce190-11b7-4e0d-a348-ec1fa7acc816/oct-17-happy-fall-full-opt.png" title="Happy Fall!"><img alt="Happy Fall!" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0661d9b8-4573-497a-9356-9c5fa1ff6dbb/oct-17-happy-fall-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0661d9b8-4573-497a-9356-9c5fa1ff6dbb/oct-17-happy-fall-preview-opt.png">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-2560x1440.png">2560x1440</a></li></ul><h2 id="roger-that-rogue-rover">Roger That Rogue Rover</h2><p>“The story is a mash-up of retro science fiction and zombie infection. What would happen if a Mars rover came into contact with an unknown Martian material and got infected with a virus? What if it reversed its intended purpose of research and exploration? Instead choosing a life of chaos and evil. What if they all ran rogue on Mars? Would humans ever dare to voyage to the red planet?” Designed by <a href="https://rise.net">Frank Candamil</a> from the United States.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/937e00e1-af58-44d2-a3f2-14e1bfbe86cc/october-12-rogue-rover-10-full.png"><img alt="Desktop Wallpaper - October 2012" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/55c804bc-31f1-4f43-b1fa-156d5711fbaf/october-12-rogue-rover-10-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/55c804bc-31f1-4f43-b1fa-156d5711fbaf/october-12-rogue-rover-10-preview-opt.png">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-rogue_rover__10-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-rogue_rover__10-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-rogue_rover__10-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-rogue_rover__10-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-rogue_rover__10-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-rogue_rover__10-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-rogue_rover__10-nocal-2560x1440.jpg">2560x1440</a></li></ul><h2 id="turtles-in-space">Turtles In Space</h2><p>“Finished September, with October comes the month of routines. This year we share it with turtles that explore space.” — Designed by <a href="https://www.silocreativo.com/en/">Veronica Valenzuela</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2024/oct-19-turtles-in-space-full-opt.png" title="Turtles In Space"><img alt="Turtles In Space" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2024/oct-19-turtles-in-space-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2024/oct-19-turtles-in-space-preview-opt.png" title="Turtles In Space - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-640x480.jpg" title="Turtles In Space - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-800x480.jpg" title="Turtles In Space - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-1024x768.jpg" title="Turtles In Space - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-1280x720.jpg" title="Turtles In Space - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-1280x800.jpg" title="Turtles In Space - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-1440x900.jpg" title="Turtles In Space - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-1600x1200.jpg" title="Turtles In Space - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-1920x1080.jpg" title="Turtles In Space - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-1920x1440.jpg" title="Turtles In Space - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-2560x1440.jpg" title="Turtles In Space - 2560x1440">2560x1440</a></li></ul><h2 id="first-scarf-at-the-beach">First Scarf And The Beach</h2><p>“When I was little, my parents always took me and my sister for a walk at the beach in Nieuwpoort. We didn't really do those beach walks in the summer but always when the sky started to turn gray and the days became colder. My sister and I always took out our warmest scarfs and played in the sand while my parents walked behind us. I really loved those Saturday or Sunday mornings where we were all together. I think October (when it’s not raining) is the perfect month to go to the beach for ‘uitwaaien’ (to blow out), to walk in the wind and take a break and clear your head, relieve the stress or forget one’s problems.” — Designed by <a href="https://www.instagram.com/bogaertgwen/">Gwen Bogaert</a> from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0538b839-82b6-442b-82ab-cf9d5ad98b37/oct-19-first-scarf-and-the-beach-full-opt.png" title="First Scarf And The Beach"><img alt="First Scarf And The Beach" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/58d65e6a-4878-49f7-b406-95abb0a70cb0/oct-19-first-scarf-and-the-beach-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/58d65e6a-4878-49f7-b406-95abb0a70cb0/oct-19-first-scarf-and-the-beach-preview-opt.png" title="First Scarf And The Beach - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-19/first-scarf-and-the-beach/nocal/oct-19-first-scarf-and-the-beach-nocal-320x480.jpg" title="First Scarf And The Beach - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/first-scarf-and-the-beach/nocal/oct-19-first-scarf-and-the-beach-nocal-1280x1024.jpg" title="First Scarf And The Beach - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/first-scarf-and-the-beach/nocal/oct-19-first-scarf-and-the-beach-nocal-2560x1440.jpg" title="First Scarf And The Beach - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/first-scarf-and-the-beach/nocal/oct-19-first-scarf-and-the-beach-nocal-2880x1800.jpg" title="First Scarf And The Beach - 2880x1800">2880x1800</a></li></ul><h2 id="shades-of-gold">Shades Of Gold</h2><p>“We are about to experience the magical imagery of nature, with all the yellows, ochers, oranges, and reds coming our way this fall. With all the subtle sunrises and the burning sunsets before us, we feel so joyful that we are going to shout it out to the world from the top of the mountains.” — Designed by <a href="https://www.popwebdesign.net/index_eng.html">PopArt Studio</a> from Serbia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/938af6df-e010-4361-bee6-166a15195356/oct-18-shades-of-gold-full-opt.png" title="Shades Of Gold"><img alt="Shades Of Gold" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/386d6b0b-3d3c-462f-8eb4-6a07a680ac26/oct-18-shades-of-gold-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/386d6b0b-3d3c-462f-8eb4-6a07a680ac26/oct-18-shades-of-gold-preview-opt.png" title="Shades Of Gold - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-320x480.jpg" title="Shades Of Gold - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-640x480.jpg" title="Shades Of Gold - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-800x480.jpg" title="Shades Of Gold - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-800x600.jpg" title="Shades Of Gold - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1024x768.jpg" title="Shades Of Gold - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1024x1024.jpg" title="Shades Of Gold - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1152x864.jpg" title="Shades Of Gold - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1280x720.jpg" title="Shades Of Gold - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1280x800.jpg" title="Shades Of Gold - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1280x960.jpg" title="Shades Of Gold - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1280x1024.jpg" title="Shades Of Gold - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1366x768.jpg" title="Shades Of Gold - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1400x1050.jpg" title="Shades Of Gold - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1440x900.jpg" title="Shades Of Gold - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1600x1200.jpg" title="Shades Of Gold - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1680x1050.jpg" title="Shades Of Gold - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1680x1200.jpg" title="Shades Of Gold - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1920x1080.jpg" title="Shades Of Gold - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1920x1200.jpg" title="Shades Of Gold - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1920x1440.jpg" title="Shades Of Gold - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-2560x1440.jpg" title="Shades Of Gold - 2560x1440">2560x1440</a></li></ul><h2 id="autumn-vibes">Autumn Vibes</h2><p>“Autumn has come, the time of long walks in the rain, weekends spent with loved ones, with hot drinks, and a lot of tenderness. Enjoy.” — Designed by <a href="https://www.librafire.com/">LibraFire</a> from Serbia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/44511b2c-54dd-4a41-bf37-8e371feca3f0/oct-21-autumn-vibes-nocal-large-opt.png" title="Autumn Vibes"><img alt="Autumn Vibes" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/47909e5f-5e88-409c-9534-543c4018191a/oct-21-autumn-vibes-nocal-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/47909e5f-5e88-409c-9534-543c4018191a/oct-21-autumn-vibes-nocal-preview-opt.png" title="Autumn Vibes - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-320x480.png" title="Autumn Vibes - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-640x480.png" title="Autumn Vibes - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-800x480.png" title="Autumn Vibes - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-800x600.png" title="Autumn Vibes - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1024x768.png" title="Autumn Vibes - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1024x1024.png" title="Autumn Vibes - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1152x864.png" title="Autumn Vibes - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1280x720.png" title="Autumn Vibes - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1280x800.png" title="Autumn Vibes - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1280x960.png" title="Autumn Vibes - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1280x1024.png" title="Autumn Vibes - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1366x768.png" title="Autumn Vibes - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1400x1050.png" title="Autumn Vibes - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1440x900.png" title="Autumn Vibes - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1600x1200.png" title="Autumn Vibes - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1680x1050.png" title="Autumn Vibes - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1680x1200.png" title="Autumn Vibes - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1920x1080.png" title="Autumn Vibes - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1920x1200.png" title="Autumn Vibes - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1920x1440.png" title="Autumn Vibes - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-2560x1440.png" title="Autumn Vibes - 2560x1440">2560x1440</a></li></ul><h2 id="game-night-and-hot-chocolate">Game Night And Hot Chocolate</h2><p>“To me, October is all about cozy evenings with hot chocolate, freshly baked cookies, and a game night with friends or family.” — Designed by Lieselot Geirnaert from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5ddff2f5-0667-472f-8dd1-45338d9dcf1b/oct-20-game-night-and-hot-chocolate-full-opt.png" title="Game Night And Hot Chocolate"><img alt="Game Night And Hot Chocolate" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/64f8726a-ac04-4d72-b048-c0dfcc6fefd7/oct-20-game-night-and-hot-chocolate-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/64f8726a-ac04-4d72-b048-c0dfcc6fefd7/oct-20-game-night-and-hot-chocolate-preview-opt.png" title="Game Night And Hot Chocolate - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-20/game-night-and-hot-chocolate/nocal/oct-20-game-night-and-hot-chocolate-nocal-320x480.png" title="Game Night And Hot Chocolate - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/game-night-and-hot-chocolate/nocal/oct-20-game-night-and-hot-chocolate-nocal-1024x1024.png" title="Game Night And Hot Chocolate - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/game-night-and-hot-chocolate/nocal/oct-20-game-night-and-hot-chocolate-nocal-1280x1024.png" title="Game Night And Hot Chocolate - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/game-night-and-hot-chocolate/nocal/oct-20-game-night-and-hot-chocolate-nocal-2560x1440.png" title="Game Night And Hot Chocolate - 2560x1440">2560x1440</a></li></ul><h2 id="haunted-house">Haunted House</h2><p>“Love all the Halloween costumes and decorations!” — Designed by <a href="https://www.tazi.com.au">Tazi</a> from Australia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ed9e47d2-2cf0-457f-bca9-be87b1569314/oct-17-haunted-house-full-opt.png" title="Haunted House"><img alt="Haunted House" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b3f87bf9-b8cf-4038-8b9a-edbca1d21dc8/oct-17-haunted-house-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b3f87bf9-b8cf-4038-8b9a-edbca1d21dc8/oct-17-haunted-house-preview-opt.png" title="Haunted House - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-320x480.jpg" title="Haunted House - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-640x480.jpg" title="Haunted House - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-800x600.jpg" title="Haunted House - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-1024x768.jpg" title="Haunted House - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-1152x864.jpg" title="Haunted House - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-1280x720.jpg" title="Haunted House - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-1280x960.jpg" title="Haunted House - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-1600x1200.jpg" title="Haunted House - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-1920x1080.jpg" title="Haunted House - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-1920x1440.jpg" title="Haunted House - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-2560x1440.jpg" title="Haunted House - 2560x1440">2560x1440</a></li></ul><h2 id="say-bye-to-summer">Say Bye To Summer</h2><p>“And hello to autumn! The summer heat and high season is over. It’s time to pack our backpacks and head for the mountains — there are many treasures waiting to be discovered!” Designed by Agnes Sobon from Poland.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/48d101c4-75c8-41ce-bf57-9558e4035d86/october-12-bye-summer-82-full-opt.png"><img alt="Bye Summer" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cd9b790f-f383-45e0-abd4-b466d4016f66/october-12-bye-summer-82-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cd9b790f-f383-45e0-abd4-b466d4016f66/october-12-bye-summer-82-preview-opt.png">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-bye_summer__82-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-bye_summer__82-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-bye_summer__82-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-bye_summer__82-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-bye_summer__82-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-bye_summer__82-nocal-2560x1440.jpg">2560x1440</a></li></ul><h2 id="tea-and-cookies">Tea And Cookies</h2><p>“As it gets colder outside, all I want to do is stay inside with a big pot of tea, eat cookies and read or watch a movie, wrapped in a blanket. Is it just me?” — Designed by Miruna Sfia from Romania.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8e29d8b5-6f10-4bd0-ab24-5835bc906fb7/oct-17-tea-and-cookies-full-opt.png" title="Tea And Cookies"><img alt="Tea And Cookies" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/53ac53b9-8895-4352-b585-aacd3405bf95/oct-17-tea-and-cookies-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/53ac53b9-8895-4352-b585-aacd3405bf95/oct-17-tea-and-cookies-preview-opt.png" title="Tea And Cookies - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-320x480.png" title="Tea And Cookies - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-640x480.png" title="Tea And Cookies - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-800x480.png" title="Tea And Cookies - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-800x600.png" title="Tea And Cookies - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1024x768.png" title="Tea And Cookies - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1024x1024.png" title="Tea And Cookies - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1152x864.png" title="Tea And Cookies - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1280x720.png" title="Tea And Cookies - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1280x800.png" title="Tea And Cookies - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1280x960.png" title="Tea And Cookies - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1280x1024.png" title="Tea And Cookies - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1440x900.png" title="Tea And Cookies - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1440x1050.png" title="Tea And Cookies - 1440x1050">1440x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1600x1200.png" title="Tea And Cookies - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1680x1050.png" title="Tea And Cookies - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1680x1200.png" title="Tea And Cookies - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1920x1080.png" title="Tea And Cookies - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1920x1200.png" title="Tea And Cookies - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1920x1440.png" title="Tea And Cookies - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-2560x1440.png" title="Tea And Cookies - 2560x1440">2560x1440</a></li></ul><h2 id="the-return">The Return</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-19-the-return-full-opt.png" title="The Return"><img alt="The Return" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-19-the-return-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-19-the-return-preview-opt.png" title="The Return - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-320x480.png" title="The Return - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-640x480.png" title="The Return - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-800x480.png" title="The Return - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-800x600.png" title="The Return - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1024x768.png" title="The Return - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1024x1024.png" title="The Return - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1152x864.png" title="The Return - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1280x720.png" title="The Return - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1280x800.png" title="The Return - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1280x960.png" title="The Return - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1280x1024.png" title="The Return - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1366x768.png" title="The Return - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1400x1050.png" title="The Return - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1440x900.png" title="The Return - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1600x1200.png" title="The Return - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1680x1050.png" title="The Return - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1680x1200.png" title="The Return - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1920x1080.png" title="The Return - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1920x1200.png" title="The Return - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1920x1440.png" title="The Return - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-2560x1440.png" title="The Return - 2560x1440">2560x1440</a></li></ul><h2 id="boo!">Boo!</h2><p>Designed by <a href="https://www.madfishdigital.com/">Mad Fish Digital</a> from Portland, OR.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-22-boo-full-opt.png" title="Boo!"><img alt="Boo!" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-22-boo-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-22-boo-preview-opt.png" title="Boo! - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-22/boo/nocal/oct-22-boo-nocal-320x480.jpg" title="Boo! - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-22/boo/nocal/oct-22-boo-nocal-1024x1024.jpg" title="Boo! - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-22/boo/nocal/oct-22-boo-nocal-1280x720.jpg" title="Boo! - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-22/boo/nocal/oct-22-boo-nocal-1680x1200.jpg" title="Boo! - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-22/boo/nocal/oct-22-boo-nocal-1920x1080.jpg" title="Boo! - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-22/boo/nocal/oct-22-boo-nocal-2560x1440.jpg" title="Boo! - 2560x1440">2560x1440</a></li></ul><h2 id="trick-or-treat">Trick Or Treat</h2><p>“Have you ever wondered if all the little creatures of the animal kingdom celebrate Halloween as humans do? My answer is definitely ‘YES! They do!’ They use acorns as baskets to collect all the treats, pastry brushes as brooms for the spookiest witches and hats made from the tips set of your pastry bag. So, if you happen to miss something from your kitchen or from your tool box, it may be one of them, trying to get ready for All Hallows’ Eve.” — Designed by <a href="https://carladipasquale.tumblr.com">Carla Dipasquale</a> from Italy.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-17-trick-or-treat-full-opt.png" title="Trick Or Treat"><img alt="Trick Or Treat" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-17-trick-or-treat-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-17-trick-or-treat-preview-opt.png" title="Trick Or Treat - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-640x480.jpg" title="Trick Or Treat - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-800x600.jpg" title="Trick Or Treat - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-1024x768.jpg" title="Trick Or Treat - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-1280x960.jpg" title="Trick Or Treat - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-1440x900.jpg" title="Trick Or Treat - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-1600x1200.jpg" title="Trick Or Treat - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-1680x1200.jpg" title="Trick Or Treat - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-1920x1080.jpg" title="Trick Or Treat - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-1920x1440.jpg" title="Trick Or Treat - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-2560x1440.jpg" title="Trick Or Treat - 2560x1440">2560x1440</a></li></ul><h2 id="dope-code">Dope Code</h2><p>“October is the month when the weather in Poland starts to get colder, and it gets very rainy, too. You can’t always spend your free time outside, so it’s the perfect opportunity to get some hot coffee and work on your next cool web project!” — Designed by Robert Brodziak from Poland.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/590480b2-8a92-4475-b85d-58f4df8241ef/oct-14-dope-code-full-opt.png" title="Dope Code"><img alt="Dope Code" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b752bf3c-d8ad-45fc-b20b-5de9fe272e1b/oct-14-dope-code-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b752bf3c-d8ad-45fc-b20b-5de9fe272e1b/oct-14-dope-code-preview-opt.png" title="Dope Code - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1024x768.jpg" title="Dope Code - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1024x1024.jpg" title="Dope Code - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1152x864.jpg" title="Dope Code - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1280x720.jpg" title="Dope Code - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1280x800.jpg" title="Dope Code - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1280x960.jpg" title="Dope Code - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1280x1024.jpg" title="Dope Code - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1400x1050.jpg" title="Dope Code - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1440x900.jpg" title="Dope Code - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1600x1200.jpg" title="Dope Code - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1680x1050.jpg" title="Dope Code - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1680x1200.jpg" title="Dope Code - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1920x1080.jpg" title="Dope Code - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1920x1200.jpg" title="Dope Code - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1920x1440.jpg" title="Dope Code - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-2560x1440.jpg" title="Dope Code - 2560x1440">2560x1440</a></li></ul><h2 id="happy-halloween">Happy Halloween</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2025/oct-24-happy-halloween-full-opt.png" title="Happy Halloween"><img alt="Happy Halloween" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2025/oct-24-happy-halloween-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2025/oct-24-happy-halloween-preview-opt.png" title="Happy Halloween - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-640x480.png" title="Happy Halloween - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-800x480.png" title="Happy Halloween - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-800x600.png" title="Happy Halloween - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1024x768.png" title="Happy Halloween - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1024x1024.png" title="Happy Halloween - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1152x864.png" title="Happy Halloween - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1280x720.png" title="Happy Halloween - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1280x800.png" title="Happy Halloween - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1280x960.png" title="Happy Halloween - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1280x1024.png" title="Happy Halloween - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1366x768.png" title="Happy Halloween - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1400x1050.png" title="Happy Halloween - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1440x900.png" title="Happy Halloween - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1600x1200.png" title="Happy Halloween - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1680x1050.png" title="Happy Halloween - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1680x1200.png" title="Happy Halloween - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1920x1080.png" title="Happy Halloween - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1920x1200.png" title="Happy Halloween - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1920x1440.png" title="Happy Halloween - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-2560x1440.png" title="Happy Halloween - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-3840x2160.png" title="Happy Halloween - 3840x2160">3840x2160</a></li></ul><h2 id="ghostober">Ghostober</h2><p>Designed by <a href="https://simpi.deviantart.com">Ricardo Delgado</a> from Mexico City.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9e6f3779-5634-4545-b3a0-852c9278d9d6/october-10-ghostober-full.png"><img alt="Smashing Wallpaper - October 2010" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a01c4b3b-26b9-45e3-91f3-31af816fca9b/october-10-ghostober-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a01c4b3b-26b9-45e3-91f3-31af816fca9b/october-10-ghostober-preview-opt.png" title="Ghostober - Preview">preview</a></li><li>without calendar: <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6b966ccf-20eb-49eb-a35c-e7d0a1afe4f1/october-10-ghostober-33-nocal-1024x768.jpg">1024x768</a>, <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5b6742e3-d005-4819-a016-039eaa841d2b/october-10-ghostober-33-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/49c365cb-b298-4ebe-8a11-edf02e7cbcbb/october-10-ghostober-33-nocal-1280x800.jpg">1280x800</a>, <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c54c8e27-dc89-443a-a56b-b6524f231fe6/october-10-ghostober-33-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/48dea281-f86b-45ca-8dcc-1bdbea077762/october-10-ghostober-33-nocal-2560x1440.jpg">2560x1440</a></li></ul><h2 id="get-featured-next-month">Get Featured Next Month</h2><p>Would you like to get featured in our next wallpapers post? We’ll publish the <strong>November wallpapers</strong> on October 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 can’t wait to see what you’ll come up with!</p></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <h1>Shades Of October (2025 Wallpapers Edition) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>12 min read</li><li><a href="http://www.smashingmagazine.com/category/wallpapers">Wallpapers</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>How about some new wallpapers to get your desktop ready for fall and the upcoming Halloween season? We’ve got you covered! Following our monthly tradition, the wallpapers in this post were created with love by the community for the community and can be downloaded for free. Enjoy!</section></p><p>As September comes to a close and October takes over, we are in the midst of a <strong>time of transition</strong>. The air in the morning feels crisper, the leaves are changing colors, and winding down with a warm cup of tea regains its almost-forgotten appeal after a busy summer. When we look closely, October is full of little moments that have the power to inspire, and whatever <em>your</em> secret to finding new inspiration might be, our monthly wallpapers series is bound to give you a little inspiration boost, too.</p><p>For this October edition, artists and designers from across the globe once again challenged their creative skills and designed <strong>wallpapers to spark your imagination</strong>. You find them compiled below, along with a selection of timeless October treasures from our <a href="https://www.smashingmagazine.com/category/wallpapers">wallpapers archives</a> that are just too good to gather dust.</p><p>A huge thank you to everyone who shared their designs with us this month — this post wouldn’t exist without your creativity and kind support! Happy October!</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></br>Feeling inspired? 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><h2 id="midnight-mischief-10-2025">Midnight Mischief</h2><p>Designed by <a href="https://www.librafire.com/">Libra Fire</a> from Serbia.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/oct-25-midnight-mischief-full.png" title="Midnight Mischief"><img alt="Midnight Mischief" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2025/oct-25-midnight-mischief-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/oct-25-midnight-mischief-preview.png" title="Midnight Mischief - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-320x480.png" title="Midnight Mischief - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-640x480.png" title="Midnight Mischief - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-800x480.png" title="Midnight Mischief - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-800x600.png" title="Midnight Mischief - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1024x768.png" title="Midnight Mischief - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1024x1024.png" title="Midnight Mischief - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1152x864.png" title="Midnight Mischief - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1280x720.png" title="Midnight Mischief - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1280x800.png" title="Midnight Mischief - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1280x960.png" title="Midnight Mischief - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1280x1024.png" title="Midnight Mischief - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1400x1050.png" title="Midnight Mischief - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1440x900.png" title="Midnight Mischief - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1600x1200.png" title="Midnight Mischief - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1680x1050.png" title="Midnight Mischief - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1680x1200.png" title="Midnight Mischief - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1920x1080.png" title="Midnight Mischief - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1920x1200.png" title="Midnight Mischief - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-1920x1440.png" title="Midnight Mischief - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/cal/oct-25-midnight-mischief-cal-2560x1440.png" title="Midnight Mischief - 2560x1440">2560x1440</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-320x480.png" title="Midnight Mischief - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-640x480.png" title="Midnight Mischief - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-800x480.png" title="Midnight Mischief - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-800x600.png" title="Midnight Mischief - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1024x768.png" title="Midnight Mischief - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1024x1024.png" title="Midnight Mischief - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1152x864.png" title="Midnight Mischief - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1280x720.png" title="Midnight Mischief - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1280x800.png" title="Midnight Mischief - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1280x960.png" title="Midnight Mischief - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1280x1024.png" title="Midnight Mischief - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1400x1050.png" title="Midnight Mischief - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1440x900.png" title="Midnight Mischief - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1600x1200.png" title="Midnight Mischief - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1680x1050.png" title="Midnight Mischief - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1680x1200.png" title="Midnight Mischief - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1920x1080.png" title="Midnight Mischief - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1920x1200.png" title="Midnight Mischief - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-1920x1440.png" title="Midnight Mischief - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/midnight-mischief/nocal/oct-25-midnight-mischief-nocal-2560x1440.png" title="Midnight Mischief - 2560x1440">2560x1440</a></li></ul><h2 id="ai-10-2025">AI</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/oct-25-ai-full.png" title="AI"><img alt="AI" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2025/oct-25-ai-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/oct-25-ai-preview.png" title="AI - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-640x480.png" title="AI - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-800x480.png" title="AI - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-800x600.png" title="AI - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1024x768.png" title="AI - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1024x1024.png" title="AI - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1152x864.png" title="AI - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1280x720.png" title="AI - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1280x800.png" title="AI - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1280x960.png" title="AI - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1280x1024.png" title="AI - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1366x768.png" title="AI - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1400x1050.png" title="AI - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1440x900.png" title="AI - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1600x1200.png" title="AI - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1680x1050.png" title="AI - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1680x1200.png" title="AI - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1920x1080.png" title="AI - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1920x1200.png" title="AI - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-1920x1440.png" title="AI - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-2560x1440.png" title="AI - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/cal/oct-25-ai-cal-3840x2160.png" title="AI - 3840x2160">3840x2160</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-640x480.png" title="AI - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-800x480.png" title="AI - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-800x600.png" title="AI - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1024x768.png" title="AI - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1024x1024.png" title="AI - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1152x864.png" title="AI - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1280x720.png" title="AI - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1280x800.png" title="AI - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1280x960.png" title="AI - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1280x1024.png" title="AI - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1366x768.png" title="AI - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1400x1050.png" title="AI - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1440x900.png" title="AI - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1600x1200.png" title="AI - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1680x1050.png" title="AI - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1680x1200.png" title="AI - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1920x1080.png" title="AI - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1920x1200.png" title="AI - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-1920x1440.png" title="AI - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-2560x1440.png" title="AI - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/ai/nocal/oct-25-ai-nocal-3840x2160.png" title="AI - 3840x2160">3840x2160</a></li></ul><h2 id="glowing-pumpkin-lanterns-10-2025">Glowing Pumpkin Lanterns</h2><p>“I was inspired by the classic orange and purple colors of October and Halloween, and wanted to combine those two themes to create a fun pumpkin lantern background.” — Designed by <a href="https://melissabdesigning.wixsite.com/home">Melissa Bostjancic</a> from New Jersey, United States.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/oct-25-glowing-pumpkin-lanterns-full.png" title="Glowing Pumpkin Lanterns"><img alt="Glowing Pumpkin Lanterns" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2025/oct-25-glowing-pumpkin-lanterns-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/oct-25-glowing-pumpkin-lanterns-preview.png" title="Glowing Pumpkin Lanterns - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-320x480.png" title="Glowing Pumpkin Lanterns - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-640x480.png" title="Glowing Pumpkin Lanterns - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-800x480.png" title="Glowing Pumpkin Lanterns - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-800x600.png" title="Glowing Pumpkin Lanterns - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1024x768.png" title="Glowing Pumpkin Lanterns - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1024x1024.png" title="Glowing Pumpkin Lanterns - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1152x864.png" title="Glowing Pumpkin Lanterns - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1280x720.png" title="Glowing Pumpkin Lanterns - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1280x800.png" title="Glowing Pumpkin Lanterns - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1280x960.png" title="Glowing Pumpkin Lanterns - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1280x1024.png" title="Glowing Pumpkin Lanterns - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1400x1050.png" title="Glowing Pumpkin Lanterns - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1440x900.png" title="Glowing Pumpkin Lanterns - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1600x1200.png" title="Glowing Pumpkin Lanterns - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1680x1050.png" title="Glowing Pumpkin Lanterns - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1680x1200.png" title="Glowing Pumpkin Lanterns - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1920x1080.png" title="Glowing Pumpkin Lanterns - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1920x1200.png" title="Glowing Pumpkin Lanterns - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-1920x1440.png" title="Glowing Pumpkin Lanterns - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/cal/oct-25-glowing-pumpkin-lanterns-cal-2560x1440.png" title="Glowing Pumpkin Lanterns - 2560x1440">2560x1440</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-320x480.png" title="Glowing Pumpkin Lanterns - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-640x480.png" title="Glowing Pumpkin Lanterns - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-800x480.png" title="Glowing Pumpkin Lanterns - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-800x600.png" title="Glowing Pumpkin Lanterns - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1024x768.png" title="Glowing Pumpkin Lanterns - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1024x1024.png" title="Glowing Pumpkin Lanterns - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1152x864.png" title="Glowing Pumpkin Lanterns - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1280x720.png" title="Glowing Pumpkin Lanterns - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1280x800.png" title="Glowing Pumpkin Lanterns - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1280x960.png" title="Glowing Pumpkin Lanterns - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1280x1024.png" title="Glowing Pumpkin Lanterns - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1400x1050.png" title="Glowing Pumpkin Lanterns - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1440x900.png" title="Glowing Pumpkin Lanterns - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1600x1200.png" title="Glowing Pumpkin Lanterns - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1680x1050.png" title="Glowing Pumpkin Lanterns - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1680x1200.png" title="Glowing Pumpkin Lanterns - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1920x1080.png" title="Glowing Pumpkin Lanterns - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1920x1200.png" title="Glowing Pumpkin Lanterns - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-1920x1440.png" title="Glowing Pumpkin Lanterns - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/glowing-pumpkin-lanterns/nocal/oct-25-glowing-pumpkin-lanterns-nocal-2560x1440.png" title="Glowing Pumpkin Lanterns - 2560x1440">2560x1440</a></li></ul><h2 id="halloween-2040-10-2025">Halloween 2040</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/oct-25-halloween-2040-full.png" title="Halloween 2040"><img alt="Halloween 2040" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2025/oct-25-halloween-2040-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/oct-25-halloween-2040-preview.png" title="Halloween 2040 - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-640x480.png" title="Halloween 2040 - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-800x600.png" title="Halloween 2040 - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1024x768.png" title="Halloween 2040 - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1024x1024.png" title="Halloween 2040 - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1152x864.png" title="Halloween 2040 - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1280x720.png" title="Halloween 2040 - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1280x800.png" title="Halloween 2040 - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1280x960.png" title="Halloween 2040 - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1280x1024.png" title="Halloween 2040 - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1366x768.png" title="Halloween 2040 - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1400x1050.png" title="Halloween 2040 - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1440x900.png" title="Halloween 2040 - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1600x1200.png" title="Halloween 2040 - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1680x1050.png" title="Halloween 2040 - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1680x1200.png" title="Halloween 2040 - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1920x1080.png" title="Halloween 2040 - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1920x1200.png" title="Halloween 2040 - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-1920x1440.png" title="Halloween 2040 - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-2560x1440.png" title="Halloween 2040 - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/cal/oct-25-halloween-2040-cal-3840x2160.png" title="Halloween 2040 - 3840x2160">3840x2160</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-640x480.png" title="Halloween 2040 - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-800x600.png" title="Halloween 2040 - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1024x768.png" title="Halloween 2040 - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1024x1024.png" title="Halloween 2040 - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1152x864.png" title="Halloween 2040 - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1280x720.png" title="Halloween 2040 - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1280x800.png" title="Halloween 2040 - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1280x960.png" title="Halloween 2040 - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1280x1024.png" title="Halloween 2040 - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1366x768.png" title="Halloween 2040 - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1400x1050.png" title="Halloween 2040 - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1440x900.png" title="Halloween 2040 - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1600x1200.png" title="Halloween 2040 - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1680x1050.png" title="Halloween 2040 - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1680x1200.png" title="Halloween 2040 - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1920x1080.png" title="Halloween 2040 - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1920x1200.png" title="Halloween 2040 - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-1920x1440.png" title="Halloween 2040 - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-2560x1440.png" title="Halloween 2040 - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/halloween-2040/nocal/oct-25-halloween-2040-nocal-3840x2160.png" title="Halloween 2040 - 3840x2160">3840x2160</a></li></ul><h2 id="when-the-mind-opens-10-2025">When The Mind Opens</h2><p>“In October, we observe World Mental Health Day. The open window in the head symbolizes light and fresh thoughts, the plant represents quiet inner growth and resilience, and the bird brings freedom and connection with the world. Together, they create an image of a mind that breathes, grows, and remains open to new beginnings.” — Designed by <a href="https://www.gingeritsolutions.com/">Ginger IT Solutions</a> from Serbia.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/oct-25-when-the-mind-opens-full.png" title="When The Mind Opens"><img alt="When The Mind Opens" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2025/oct-25-when-the-mind-opens-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/oct-25-when-the-mind-opens-preview.png" title="When The Mind Opens - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-320x480.png" title="When The Mind Opens - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-640x480.png" title="When The Mind Opens - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-800x480.png" title="When The Mind Opens - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-800x600.png" title="When The Mind Opens - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1024x768.png" title="When The Mind Opens - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1024x1024.png" title="When The Mind Opens - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1152x864.png" title="When The Mind Opens - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1280x720.png" title="When The Mind Opens - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1280x800.png" title="When The Mind Opens - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1280x960.png" title="When The Mind Opens - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1280x1024.png" title="When The Mind Opens - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1400x1050.png" title="When The Mind Opens - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1440x900.png" title="When The Mind Opens - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1600x1200.png" title="When The Mind Opens - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1680x1050.png" title="When The Mind Opens - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1680x1200.png" title="When The Mind Opens - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1920x1080.png" title="When The Mind Opens - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1920x1200.png" title="When The Mind Opens - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-1920x1440.png" title="When The Mind Opens - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/cal/oct-25-when-the-mind-opens-cal-2560x1440.png" title="When The Mind Opens - 2560x1440">2560x1440</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-320x480.png" title="When The Mind Opens - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-640x480.png" title="When The Mind Opens - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-800x480.png" title="When The Mind Opens - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-800x600.png" title="When The Mind Opens - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1024x768.png" title="When The Mind Opens - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1024x1024.png" title="When The Mind Opens - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1152x864.png" title="When The Mind Opens - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1280x720.png" title="When The Mind Opens - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1280x800.png" title="When The Mind Opens - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1280x960.png" title="When The Mind Opens - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1280x1024.png" title="When The Mind Opens - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1400x1050.png" title="When The Mind Opens - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1440x900.png" title="When The Mind Opens - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1600x1200.png" title="When The Mind Opens - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1680x1050.png" title="When The Mind Opens - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1680x1200.png" title="When The Mind Opens - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1920x1080.png" title="When The Mind Opens - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1920x1200.png" title="When The Mind Opens - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-1920x1440.png" title="When The Mind Opens - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/when-the-mind-opens/nocal/oct-25-when-the-mind-opens-nocal-2560x1440.png" title="When The Mind Opens - 2560x1440">2560x1440</a></li></ul><h2 id="enter-the-factory-10-2025">Enter The Factory</h2><p>“I took this photo while visiting an old factory. The red light was astonishing.” — Designed by <a href="https://www.philippebrouard.fr/">Philippe Brouard</a> from France.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/oct-25-enter-the-factory-full.png" title="Enter The Factory"><img alt="Enter The Factory" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2025/oct-25-enter-the-factory-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/oct-25-enter-the-factory-preview.png" title="Enter The Factory - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-1024x768.jpg" title="Enter The Factory - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-1366x768.jpg" title="Enter The Factory - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-1600x1200.jpg" title="Enter The Factory - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-1920x1080.jpg" title="Enter The Factory - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-1920x1200.jpg" title="Enter The Factory - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-1920x1440.jpg" title="Enter The Factory - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-2560x1440.jpg" title="Enter The Factory - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-2560x1600.jpg" title="Enter The Factory - 2560x1600">2560x1600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-2880x1800.jpg" title="Enter The Factory - 2880x1800">2880x1800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/cal/oct-25-enter-the-factory-cal-3840x2160.jpg" title="Enter The Factory - 3840x2160">3840x2160</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-1024x768.jpg" title="Enter The Factory - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-1366x768.jpg" title="Enter The Factory - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-1600x1200.jpg" title="Enter The Factory - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-1920x1080.jpg" title="Enter The Factory - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-1920x1200.jpg" title="Enter The Factory - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-1920x1440.jpg" title="Enter The Factory - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-2560x1440.jpg" title="Enter The Factory - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-2560x1600.jpg" title="Enter The Factory - 2560x1600">2560x1600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-2880x1800.jpg" title="Enter The Factory - 2880x1800">2880x1800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-25/enter-the-factory/nocal/oct-25-enter-the-factory-nocal-3840x2160.jpg" title="Enter The Factory - 3840x2160">3840x2160</a></li></ul><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smart-interface-design-patterns.com/"><div><picture><source srcset="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3155f571-450d-42f9-81b4-494aa9b52841/video-course-smart-interface-design-patterns-vitaly-friedman.avif" type="image/avif"><img alt="Feature Panel" decoding="async" height="790" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8c98e7f9-8e62-4c43-b833-fc6bf9fea0a9/video-course-smart-interface-design-patterns-vitaly-friedman.jpg" width="690"></img></source></picture></div></a></div></aside></div><h2 id="the-crow-and-the-ghosts">The Crow And The Ghosts</h2><p>“If my heart were a season, it would be autumn.” — Designed by <a href="https://www.instagram.com/lenartlivia/">Lívia Lénárt</a> from Hungary.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/oct-23-the-crow-and-the-ghosts-full.png" title="The Crow And The Ghosts"><img alt="The Crow And The Ghosts" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-23-the-crow-and-the-ghosts-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/oct-23-the-crow-and-the-ghosts-preview.png" title="The Crow And The Ghosts - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-320x480.png" title="The Crow And The Ghosts - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-1024x1024.png" title="The Crow And The Ghosts - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-1280x1024.png" title="The Crow And The Ghosts - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-1600x1200.png" title="The Crow And The Ghosts - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-1680x1200.png" title="The Crow And The Ghosts - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-1920x1080.png" title="The Crow And The Ghosts - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-1920x1200.png" title="The Crow And The Ghosts - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-1920x1440.png" title="The Crow And The Ghosts - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-2560x1440.png" title="The Crow And The Ghosts - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/the-crow-and-the-ghosts/nocal/oct-23-the-crow-and-the-ghosts-nocal-3840x2160.png" title="The Crow And The Ghosts - 3840x2160">3840x2160</a></li></ul><h2 id="the-night-drive">The Night Drive</h2><p>Designed by <a href="https://vlad.studio/">Vlad Gerasimov</a> from Georgia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4d2855e9-dfb9-4bbb-88d2-179407686170/oct-21-the-night-drive-nocal-large-opt.png" title="The Night Drive"><img alt="The Night Drive" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c857e80c-d2c5-49b1-9664-50fd96b1b71b/oct-21-the-night-drive-nocal-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c857e80c-d2c5-49b1-9664-50fd96b1b71b/oct-21-the-night-drive-nocal-preview-opt.png" title="The Night Drive - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-800x480.jpg" title="The Night Drive - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-800x600.jpg" title="The Night Drive - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1024x600.jpg" title="The Night Drive - 1024x600">1024x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1024x768.jpg" title="The Night Drive - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1152x864.jpg" title="The Night Drive - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1280x720.jpg" title="The Night Drive - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1280x800.jpg" title="The Night Drive - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1280x960.jpg" title="The Night Drive - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1280x1024.jpg" title="The Night Drive - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1366x768.jpg" title="The Night Drive - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1440x900.jpg" title="The Night Drive - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1440x960.jpg" title="The Night Drive - 1440x960">1440x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1400x1050.jpg" title="The Night Drive - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1600x900.jpg" title="The Night Drive - 1600x900">1600x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1600x1200.jpg" title="The Night Drive - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1680x1050.jpg" title="The Night Drive - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1680x1200.jpg" title="The Night Drive - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1920x1080.jpg" title="The Night Drive - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1920x1200.jpg" title="The Night Drive - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-1920x1440.jpg" title="The Night Drive - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-2560x1440.jpg" title="The Night Drive - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-2560x1600.jpg" title="The Night Drive - 2560x1600">2560x1600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-2880x1800.jpg" title="The Night Drive - 2880x1800">2880x1800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-3072x1920.jpg" title="The Night Drive - 3072x1920">3072x1920</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-3840x2160.jpg" title="The Night Drive - 3840x2160">3840x2160</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-night-drive/nocal/oct-21-the-night-drive-nocal-5120x2880.jpg" title="The Night Drive - 5120x2880">5120x2880</a></li></ul><h2 id="spooky-town">Spooky Town</h2><p>Designed by <a href="https://www.behance.net/xenialatii">Xenia Latii</a> from Germany.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5612781d-646a-4dd3-a4f6-bf6fd797a922/oct-16-spooky-town-full.png" title="Spooky Town"><img alt="Spooky Town" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8904f434-8f44-42f6-9c70-dc8316b99e07/oct-16-spooky-town-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8904f434-8f44-42f6-9c70-dc8316b99e07/oct-16-spooky-town-preview-opt.png" title="Spooky Town - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-320x480.jpg" title="Spooky Town - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-640x480.jpg" title="Spooky Town - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-800x480.jpg" title="Spooky Town - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-800x600.jpg" title="Spooky Town - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1024x768.jpg" title="Spooky Town - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1152x864.jpg" title="Spooky Town - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1280x720.jpg" title="Spooky Town - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1280x800.jpg" title="Spooky Town - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1280x960.jpg" title="Spooky Town - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1280x1024.jpg" title="Spooky Town - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1366x768.jpg" title="Spooky Town - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1400x1050.jpg" title="Spooky Town - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1440x900.jpg" title="Spooky Town - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1600x1200.jpg" title="Spooky Town - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1680x1050.jpg" title="Spooky Town - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1680x1200.jpg" title="Spooky Town - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1920x1080.jpg" title="Spooky Town - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1920x1200.jpg" title="Spooky Town - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-1920x1440.jpg" title="Spooky Town - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-16/spooky-town/nocal/oct-16-spooky-town-nocal-2560x1440.jpg" title="Spooky Town - 2560x1440">2560x1440</a></li></ul><h2 id="bird-migration-portal">Bird Migration Portal</h2><p>“When I was young, I had a bird’s nest not so far from my room window. I watched the birds almost every day; because those swallows always left their nests in October. As a child, I dreamt that they all flew together to a nicer place, where they were not so cold.” — Designed by <a href="https://www.behance.net/elineclaeye6ad">Eline Claeys</a> from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/22c08dc4-e293-4f69-a2ad-abc693077f16/oct-20-bird-migration-portal-full-opt.png" title="Bird Migration Portal"><img alt="Bird Migration Portal" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8c93b9d2-ef73-482c-93e3-2ad30539c17f/oct-20-bird-migration-portal-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8c93b9d2-ef73-482c-93e3-2ad30539c17f/oct-20-bird-migration-portal-preview-opt.png" title="Bird Migration Portal - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-20/bird-migration-portal/nocal/oct-20-bird-migration-portal-nocal-1280x1024.jpg" title="Bird Migration Portal - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/bird-migration-portal/nocal/oct-20-bird-migration-portal-nocal-1440x900.jpg" title="Bird Migration Portal - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/bird-migration-portal/nocal/oct-20-bird-migration-portal-nocal-1600x1200.jpg" title="Bird Migration Portal - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/bird-migration-portal/nocal/oct-20-bird-migration-portal-nocal-1680x1050.jpg" title="Bird Migration Portal - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/bird-migration-portal/nocal/oct-20-bird-migration-portal-nocal-1680x1200.jpg" title="Bird Migration Portal - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/bird-migration-portal/nocal/oct-20-bird-migration-portal-nocal-1920x1080.jpg" title="Bird Migration Portal - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/bird-migration-portal/nocal/oct-20-bird-migration-portal-nocal-1920x1200.jpg" title="Bird Migration Portal - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/bird-migration-portal/nocal/oct-20-bird-migration-portal-nocal-1920x1440.jpg" title="Bird Migration Portal - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/bird-migration-portal/nocal/oct-20-bird-migration-portal-nocal-2560x1440.jpg" title="Bird Migration Portal - 2560x1440">2560x1440</a></li></ul><h2 id="hanlu">Hanlu</h2><p>“The term ‘Hanlu’ literally translates as ‘Cold Dew.’ The cold dew brings brisk mornings and evenings. Eventually the briskness will turn cold, as winter is coming soon. And chrysanthemum is the iconic flower of Cold Dew.” — Designed by Hong, ZI-Qing from Taiwan.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/22ee06e5-367f-4ead-bc44-4c2756c91dda/oct-17-hanlu-full-opt.png" title="Hanlu"><img alt="Hanlu" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/48624d04-9f50-4195-b7f7-3b686095b1e7/oct-17-hanlu-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/48624d04-9f50-4195-b7f7-3b686095b1e7/oct-17-hanlu-preview-opt.png" title="Hanlu - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-640x480.png" title="Hanlu - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-800x600.png" title="Hanlu - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1024x768.png" title="Hanlu - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1080x1920.png" title="Hanlu - 1080x1920">1080x1920</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1152x864.png" title="Hanlu - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1280x720.png" title="Hanlu - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1280x960.png" title="Hanlu - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1366x768.png" title="Hanlu - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1400x1050.png" title="Hanlu - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1600x1200.png" title="Hanlu - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1920x1080.png" title="Hanlu - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-1920x1440.png" title="Hanlu - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/hanlu/nocal/oct-17-hanlu-nocal-2560x1440.png" title="Hanlu - 2560x1440">2560x1440</a></li></ul><h2 id="autumns-splendor">Autumn’s Splendor</h2><p>“The transition to autumn brings forth a rich visual tapestry of warm colors and falling leaves, making it a natural choice for a wallpaper theme.” — Designed by <a href="https://farhansrambiyan.com/">Farhan Srambiyan</a> from India.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2024/oct-23-autumns-splendor-full-opt.png" title="Autumn’s Splendor"><img alt="Autumn’s Splendor" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2024/oct-23-autumns-splendor-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2024/oct-23-autumns-splendor-preview-opt.png" title="Autumn’s Splendor - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1280x960.png" title="Autumn’s Splendor - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1280x1024.png" title="Autumn’s Splendor - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1400x1050.png" title="Autumn’s Splendor - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1440x900.png" title="Autumn’s Splendor - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1600x1200.png" title="Autumn’s Splendor - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1680x1050.png" title="Autumn’s Splendor - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1680x1200.png" title="Autumn’s Splendor - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1920x1080.png" title="Autumn’s Splendor - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1920x1200.png" title="Autumn’s Splendor - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-1920x1440.png" title="Autumn’s Splendor - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-23/autumns-splendor/nocal/oct-23-autumns-splendor-nocal-2560x1440.png" title="Autumn’s Splendor - 2560x1440">2560x1440</a></li></ul><h2 id="ghostbusters">Ghostbusters</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8db976cc-7160-4d24-9dfb-c8e7a39b0c3a/oct-18-ghostbusters-full-opt.png" title="Ghostbusters"><img alt="Ghostbusters" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/fb08fc1e-0d62-454f-8cf3-0221a2ee23da/oct-18-ghostbusters-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/fb08fc1e-0d62-454f-8cf3-0221a2ee23da/oct-18-ghostbusters-preview-opt.png" title="Ghostbusters - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-320x480.png" title="Ghostbusters - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-640x480.png" title="Ghostbusters - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-800x480.png" title="Ghostbusters - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-800x600.png" title="Ghostbusters - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1024x768.png" title="Ghostbusters - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1024x1024.png" title="Ghostbusters - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1152x864.png" title="Ghostbusters - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1280x720.png" title="Ghostbusters - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1280x800.png" title="Ghostbusters - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1280x960.png" title="Ghostbusters - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1280x1024.png" title="Ghostbusters - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1366x768.png" title="Ghostbusters - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1400x1050.png" title="Ghostbusters - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1440x900.png" title="Ghostbusters - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1600x1200.png" title="Ghostbusters - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1680x1050.png" title="Ghostbusters - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1680x1200.png" title="Ghostbusters - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1920x1080.png" title="Ghostbusters - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1920x1200.png" title="Ghostbusters - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-1920x1440.png" title="Ghostbusters - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/ghostbusters/nocal/oct-18-ghostbusters-nocal-2560x1440.png" title="Ghostbusters - 2560x1440">2560x1440</a></li></ul><h2 id="hello-autumn">Hello Autumn</h2><p>“Did you know that squirrels don’t just eat nuts? They really like to eat fruit, too. Since apples are the seasonal fruit of October, I decided to combine both things into a beautiful image.” — Designed by Erin Troch from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0ec017fd-d9c1-4e06-bf96-81693ff5ee05/oct-20-hello-autumn-full-opt.png" title="Hello Autumn"><img alt="Hello Autumn" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b5f4a682-cf25-4c76-80d9-06092b3ba73d/oct-20-hello-autumn-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b5f4a682-cf25-4c76-80d9-06092b3ba73d/oct-20-hello-autumn-preview-opt.png" title="Hello Autumn - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-320x480.jpg" title="Hello Autumn - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-800x480.jpg" title="Hello Autumn - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-1024x1024.jpg" title="Hello Autumn - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-1280x800.jpg" title="Hello Autumn - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-1366x768.jpg" title="Hello Autumn - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-1600x1200.jpg" title="Hello Autumn - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-1680x1050.jpg" title="Hello Autumn - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-1680x1200.jpg" title="Hello Autumn - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-1920x1440.jpg" title="Hello Autumn - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/hello-autumn/nocal/oct-20-hello-autumn-nocal-2560x1440.jpg" title="Hello Autumn - 2560x1440">2560x1440</a></li></ul><h2 id="discovering-the-universe">Discovering The Universe</h2><p>“Autumn is the best moment for discovering the universe. I am looking for a new galaxy or maybe&amp;mldr; a UFO!” — Designed by <a href="https://www.silocreativo.com/en/">Verónica Valenzuela</a> from Spain.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6b1865c0-e710-4289-b3f0-39a3723b91a1/oct-15-discovering-the-universe-full-opt.png" title="Discovering The Universe!"><img alt="Discovering The Universe!" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/99368568-d685-4fa9-adeb-036a518e6214/oct-15-discovering-the-universe-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/99368568-d685-4fa9-adeb-036a518e6214/oct-15-discovering-the-universe-preview-opt.png" title="Discovering The Universe! - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-15/discovering-the-universe/nocal/oct-15-discovering-the-universe-nocal-800x480.png" title="Discovering The Universe! - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-15/discovering-the-universe/nocal/oct-15-discovering-the-universe-nocal-1024x768.png" title="Discovering The Universe! - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-15/discovering-the-universe/nocal/oct-15-discovering-the-universe-nocal-1152x864.png" title="Discovering The Universe! - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-15/discovering-the-universe/nocal/oct-15-discovering-the-universe-nocal-1280x800.png" title="Discovering The Universe! - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-15/discovering-the-universe/nocal/oct-15-discovering-the-universe-nocal-1280x960.png" title="Discovering The Universe! - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-15/discovering-the-universe/nocal/oct-15-discovering-the-universe-nocal-1440x900.png" title="Discovering The Universe! - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-15/discovering-the-universe/nocal/oct-15-discovering-the-universe-nocal-1680x1200.png" title="Discovering The Universe! - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-15/discovering-the-universe/nocal/oct-15-discovering-the-universe-nocal-1920x1080.png" title="Discovering The Universe! - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-15/discovering-the-universe/nocal/oct-15-discovering-the-universe-nocal-2560x1440.png" title="Discovering The Universe! - 2560x1440">2560x1440</a></li></ul><h2 id="the-return-of-the-living-dead">The Return Of The Living Dead</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9b8f09e5-f54e-4906-8850-7bccb0b78d76/oct-21-the-return-of-the-living-dead-nocal-large-opt.png" title="The Return Of The Living Dead"><img alt="The Return Of The Living Dead" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a00ddee6-5e43-4657-a42a-5f9ecb577f49/oct-21-the-return-of-the-living-dead-nocal-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a00ddee6-5e43-4657-a42a-5f9ecb577f49/oct-21-the-return-of-the-living-dead-nocal-preview-opt.png" title="The Return Of The Living Dead - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-640x480.png" title="The Return Of The Living Dead - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-800x480.png" title="The Return Of The Living Dead - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-800x600.png" title="The Return Of The Living Dead - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1024x768.png" title="The Return Of The Living Dead - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1024x1024.png" title="The Return Of The Living Dead - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1152x864.png" title="The Return Of The Living Dead - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1280x720.png" title="The Return Of The Living Dead - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1280x800.png" title="The Return Of The Living Dead - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1280x960.png" title="The Return Of The Living Dead - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1280x1024.png" title="The Return Of The Living Dead - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1366x768.png" title="The Return Of The Living Dead - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1400x1050.png" title="The Return Of The Living Dead - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1440x900.png" title="The Return Of The Living Dead - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1600x1200.png" title="The Return Of The Living Dead - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1680x1050.png" title="The Return Of The Living Dead - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1680x1200.png" title="The Return Of The Living Dead - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1920x1080.png" title="The Return Of The Living Dead - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1920x1200.png" title="The Return Of The Living Dead - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-1920x1440.png" title="The Return Of The Living Dead - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-2560x1440.png" title="The Return Of The Living Dead - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/the-return-of-the-living-dead/nocal/oct-21-the-return-of-the-living-dead-nocal-3840x2160.png" title="The Return Of The Living Dead - 3840x2160">3840x2160</a></li></ul><h2 id="goddess-makosh">Goddess Makosh</h2><p>“At the end of the kolodar, as everything begins to ripen, the village sets out to harvesting. Together with the farmers goes Makosh, the Goddess of fields and crops, ensuring a prosperous harvest. What she gave her life and health all year round is now mature and rich, thus, as a sign of gratitude, the girls bring her bread and wine. The beautiful game of the goddess makes the hard harvest easier, while the song of the farmer permeates the field.” — Designed by <a href="https://www.popwebdesign.net/graphic_design.html">PopArt Studio</a> from Serbia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1a1f6bf8-8622-49ca-be64-91aa92112914/oct-21-goddess-makosh-light-mode-nocal-large-opt.png" title="Goddess Makosh Light Mode"><img alt="Goddess Makosh Light Mode" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a2d30a76-3e20-4e2a-9e4b-d80850f439d4/oct-21-goddess-makosh-light-mode-nocal-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a2d30a76-3e20-4e2a-9e4b-d80850f439d4/oct-21-goddess-makosh-light-mode-nocal-preview-opt.png" title="Goddess Makosh Light Mode - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-320x480.jpg" title="Goddess Makosh Light Mode - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-640x480.jpg" title="Goddess Makosh Light Mode - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-800x480.jpg" title="Goddess Makosh Light Mode - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-800x600.jpg" title="Goddess Makosh Light Mode - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1024x768.jpg" title="Goddess Makosh Light Mode - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1024x1024.jpg" title="Goddess Makosh Light Mode - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1152x864.jpg" title="Goddess Makosh Light Mode - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1280x720.jpg" title="Goddess Makosh Light Mode - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1280x800.jpg" title="Goddess Makosh Light Mode - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1280x960.jpg" title="Goddess Makosh Light Mode - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1280x1024.jpg" title="Goddess Makosh Light Mode - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1366x768.jpg" title="Goddess Makosh Light Mode - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1400x1050.jpg" title="Goddess Makosh Light Mode - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1440x900.jpg" title="Goddess Makosh Light Mode - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1600x1200.jpg" title="Goddess Makosh Light Mode - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1680x1050.jpg" title="Goddess Makosh Light Mode - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1680x1200.jpg" title="Goddess Makosh Light Mode - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1920x1080.jpg" title="Goddess Makosh Light Mode - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1920x1200.jpg" title="Goddess Makosh Light Mode - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-1920x1440.jpg" title="Goddess Makosh Light Mode - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/goddess-makosh-light-mode/nocal/oct-21-goddess-makosh-light-mode-nocal-2560x1440.jpg" title="Goddess Makosh Light Mode - 2560x1440">2560x1440</a></li></ul><h2 id="strange-october-journey">Strange October Journey</h2><p>“October makes the leaves fall to cover the land with lovely auburn colors and brings out all types of weird with them.” — Designed by Mi Ni Studio from Serbia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e75e3229-dc11-4b40-9dd1-cda9d7759053/oct-18-strange-october-journey-full-opt.png" title="Strange October Journey"><img alt="Strange October Journey" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5b80137e-9fbb-46d8-a2c2-198d267acf14/oct-18-strange-october-journey-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5b80137e-9fbb-46d8-a2c2-198d267acf14/oct-18-strange-october-journey-preview-opt.png" title="Strange October Journey - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-320x480.jpg" title="Strange October Journey - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-640x480.jpg" title="Strange October Journey - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-800x480.jpg" title="Strange October Journey - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-800x600.jpg" title="Strange October Journey - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1024x768.jpg" title="Strange October Journey - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1024x1024.jpg" title="Strange October Journey - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1152x864.jpg" title="Strange October Journey - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1280x720.jpg" title="Strange October Journey - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1280x800.jpg" title="Strange October Journey - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1280x960.jpg" title="Strange October Journey - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1280x1024.jpg" title="Strange October Journey - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1400x1050.jpg" title="Strange October Journey - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1440x900.jpg" title="Strange October Journey - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1600x1200.jpg" title="Strange October Journey - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1680x1050.jpg" title="Strange October Journey - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1680x1200.jpg" title="Strange October Journey - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1920x1080.jpg" title="Strange October Journey - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1920x1200.jpg" title="Strange October Journey - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-1920x1440.jpg" title="Strange October Journey - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/strange-october-journey/nocal/oct-18-strange-october-journey-nocal-2560x1440.jpg" title="Strange October Journey - 2560x1440">2560x1440</a></li></ul><h2 id="autumn-deer">Autumn Deer</h2><p>Designed by <a href="https://www.amyhamilton.ca">Amy Hamilton</a> from Canada.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2e446fd6-d2a5-40db-b663-c3f0ee847942/october-12-autumn-deer-38-full-opt.png"><img alt="Autumn Deer" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2b7b5459-8a92-402d-96a1-9af754dec432/october-12-autumn-deer-38-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2b7b5459-8a92-402d-96a1-9af754dec432/october-12-autumn-deer-38-preview-opt.png">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1280x960.png">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1280x1024.png">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1400x1050.png">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1600x1200.png">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-2048x1536.png">2048x1536</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-2560x1440.png">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-autumn_deer__38-nocal-2880x1800.png">2880x1800</a></li></ul><h2 id="transitions">Transitions</h2><p>“To me, October is a transitional month. We gradually slide from summer to autumn. That’s why I chose to use a lot of gradients. I also wanted to work with simple shapes, because I think of October as the ‘back to nature/back to basics month’.” — Designed by Jelle Denturck from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/858d73a0-2432-4322-8abd-a7be0cc4ff2c/oct-19-transitions-full-opt.jpg" title="Transitions"><img alt="Transitions" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1d2b9f18-9994-4a95-af77-91c83d1bb7b7/oct-19-transitions-preview-opt.jpg"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1d2b9f18-9994-4a95-af77-91c83d1bb7b7/oct-19-transitions-preview-opt.jpg" title="Transitions - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-19/transitions/nocal/oct-19-transitions-nocal-1600x1200.jpg" title="Transitions - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/transitions/nocal/oct-19-transitions-nocal-1680x1050.jpg" title="Transitions - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/transitions/nocal/oct-19-transitions-nocal-1680x1200.jpg" title="Transitions - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/transitions/nocal/oct-19-transitions-nocal-1920x1080.jpg" title="Transitions - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/transitions/nocal/oct-19-transitions-nocal-1920x1200.jpg" title="Transitions - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/transitions/nocal/oct-19-transitions-nocal-1920x1440.jpg" title="Transitions - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/transitions/nocal/oct-19-transitions-nocal-2560x1440.jpg" title="Transitions - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/transitions/nocal/oct-19-transitions-nocal-2880x1800.jpg" title="Transitions - 2880x1800">2880x1800</a></li></ul><h2 id="happy-fall">Happy Fall!</h2><p>“Fall is my favorite season!” — Designed by Thuy Truong from the United States.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/776ce190-11b7-4e0d-a348-ec1fa7acc816/oct-17-happy-fall-full-opt.png" title="Happy Fall!"><img alt="Happy Fall!" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0661d9b8-4573-497a-9356-9c5fa1ff6dbb/oct-17-happy-fall-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0661d9b8-4573-497a-9356-9c5fa1ff6dbb/oct-17-happy-fall-preview-opt.png">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-320x480.png">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-640x480.png">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-800x600.png">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1024x768.png">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1152x864.png">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1280x720.png">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1280x800.png">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1366x768.png">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1440x900.png">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1680x1050.png">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1680x1200.png">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1920x1080.png">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1920x1200.png">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-1920x1440.png">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/happy-fall/nocal/oct-17-happy-fall-nocal-2560x1440.png">2560x1440</a></li></ul><h2 id="roger-that-rogue-rover">Roger That Rogue Rover</h2><p>“The story is a mash-up of retro science fiction and zombie infection. What would happen if a Mars rover came into contact with an unknown Martian material and got infected with a virus? What if it reversed its intended purpose of research and exploration? Instead choosing a life of chaos and evil. What if they all ran rogue on Mars? Would humans ever dare to voyage to the red planet?” Designed by <a href="https://rise.net">Frank Candamil</a> from the United States.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/937e00e1-af58-44d2-a3f2-14e1bfbe86cc/october-12-rogue-rover-10-full.png"><img alt="Desktop Wallpaper - October 2012" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/55c804bc-31f1-4f43-b1fa-156d5711fbaf/october-12-rogue-rover-10-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/55c804bc-31f1-4f43-b1fa-156d5711fbaf/october-12-rogue-rover-10-preview-opt.png">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-rogue_rover__10-nocal-1024x768.jpg">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-rogue_rover__10-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-rogue_rover__10-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-rogue_rover__10-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-rogue_rover__10-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-rogue_rover__10-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-rogue_rover__10-nocal-2560x1440.jpg">2560x1440</a></li></ul><h2 id="turtles-in-space">Turtles In Space</h2><p>“Finished September, with October comes the month of routines. This year we share it with turtles that explore space.” — Designed by <a href="https://www.silocreativo.com/en/">Veronica Valenzuela</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2024/oct-19-turtles-in-space-full-opt.png" title="Turtles In Space"><img alt="Turtles In Space" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2024/oct-19-turtles-in-space-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2024/oct-19-turtles-in-space-preview-opt.png" title="Turtles In Space - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-640x480.jpg" title="Turtles In Space - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-800x480.jpg" title="Turtles In Space - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-1024x768.jpg" title="Turtles In Space - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-1280x720.jpg" title="Turtles In Space - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-1280x800.jpg" title="Turtles In Space - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-1440x900.jpg" title="Turtles In Space - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-1600x1200.jpg" title="Turtles In Space - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-1920x1080.jpg" title="Turtles In Space - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-1920x1440.jpg" title="Turtles In Space - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/turtles-in-space/nocal/oct-19-turtles-in-space-nocal-2560x1440.jpg" title="Turtles In Space - 2560x1440">2560x1440</a></li></ul><h2 id="first-scarf-at-the-beach">First Scarf And The Beach</h2><p>“When I was little, my parents always took me and my sister for a walk at the beach in Nieuwpoort. We didn't really do those beach walks in the summer but always when the sky started to turn gray and the days became colder. My sister and I always took out our warmest scarfs and played in the sand while my parents walked behind us. I really loved those Saturday or Sunday mornings where we were all together. I think October (when it’s not raining) is the perfect month to go to the beach for ‘uitwaaien’ (to blow out), to walk in the wind and take a break and clear your head, relieve the stress or forget one’s problems.” — Designed by <a href="https://www.instagram.com/bogaertgwen/">Gwen Bogaert</a> from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0538b839-82b6-442b-82ab-cf9d5ad98b37/oct-19-first-scarf-and-the-beach-full-opt.png" title="First Scarf And The Beach"><img alt="First Scarf And The Beach" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/58d65e6a-4878-49f7-b406-95abb0a70cb0/oct-19-first-scarf-and-the-beach-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/58d65e6a-4878-49f7-b406-95abb0a70cb0/oct-19-first-scarf-and-the-beach-preview-opt.png" title="First Scarf And The Beach - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-19/first-scarf-and-the-beach/nocal/oct-19-first-scarf-and-the-beach-nocal-320x480.jpg" title="First Scarf And The Beach - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/first-scarf-and-the-beach/nocal/oct-19-first-scarf-and-the-beach-nocal-1280x1024.jpg" title="First Scarf And The Beach - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/first-scarf-and-the-beach/nocal/oct-19-first-scarf-and-the-beach-nocal-2560x1440.jpg" title="First Scarf And The Beach - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/first-scarf-and-the-beach/nocal/oct-19-first-scarf-and-the-beach-nocal-2880x1800.jpg" title="First Scarf And The Beach - 2880x1800">2880x1800</a></li></ul><h2 id="shades-of-gold">Shades Of Gold</h2><p>“We are about to experience the magical imagery of nature, with all the yellows, ochers, oranges, and reds coming our way this fall. With all the subtle sunrises and the burning sunsets before us, we feel so joyful that we are going to shout it out to the world from the top of the mountains.” — Designed by <a href="https://www.popwebdesign.net/index_eng.html">PopArt Studio</a> from Serbia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/938af6df-e010-4361-bee6-166a15195356/oct-18-shades-of-gold-full-opt.png" title="Shades Of Gold"><img alt="Shades Of Gold" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/386d6b0b-3d3c-462f-8eb4-6a07a680ac26/oct-18-shades-of-gold-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/386d6b0b-3d3c-462f-8eb4-6a07a680ac26/oct-18-shades-of-gold-preview-opt.png" title="Shades Of Gold - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-320x480.jpg" title="Shades Of Gold - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-640x480.jpg" title="Shades Of Gold - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-800x480.jpg" title="Shades Of Gold - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-800x600.jpg" title="Shades Of Gold - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1024x768.jpg" title="Shades Of Gold - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1024x1024.jpg" title="Shades Of Gold - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1152x864.jpg" title="Shades Of Gold - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1280x720.jpg" title="Shades Of Gold - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1280x800.jpg" title="Shades Of Gold - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1280x960.jpg" title="Shades Of Gold - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1280x1024.jpg" title="Shades Of Gold - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1366x768.jpg" title="Shades Of Gold - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1400x1050.jpg" title="Shades Of Gold - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1440x900.jpg" title="Shades Of Gold - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1600x1200.jpg" title="Shades Of Gold - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1680x1050.jpg" title="Shades Of Gold - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1680x1200.jpg" title="Shades Of Gold - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1920x1080.jpg" title="Shades Of Gold - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1920x1200.jpg" title="Shades Of Gold - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-1920x1440.jpg" title="Shades Of Gold - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-18/shades-of-gold/nocal/oct-18-shades-of-gold-nocal-2560x1440.jpg" title="Shades Of Gold - 2560x1440">2560x1440</a></li></ul><h2 id="autumn-vibes">Autumn Vibes</h2><p>“Autumn has come, the time of long walks in the rain, weekends spent with loved ones, with hot drinks, and a lot of tenderness. Enjoy.” — Designed by <a href="https://www.librafire.com/">LibraFire</a> from Serbia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/44511b2c-54dd-4a41-bf37-8e371feca3f0/oct-21-autumn-vibes-nocal-large-opt.png" title="Autumn Vibes"><img alt="Autumn Vibes" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/47909e5f-5e88-409c-9534-543c4018191a/oct-21-autumn-vibes-nocal-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/47909e5f-5e88-409c-9534-543c4018191a/oct-21-autumn-vibes-nocal-preview-opt.png" title="Autumn Vibes - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-320x480.png" title="Autumn Vibes - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-640x480.png" title="Autumn Vibes - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-800x480.png" title="Autumn Vibes - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-800x600.png" title="Autumn Vibes - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1024x768.png" title="Autumn Vibes - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1024x1024.png" title="Autumn Vibes - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1152x864.png" title="Autumn Vibes - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1280x720.png" title="Autumn Vibes - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1280x800.png" title="Autumn Vibes - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1280x960.png" title="Autumn Vibes - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1280x1024.png" title="Autumn Vibes - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1366x768.png" title="Autumn Vibes - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1400x1050.png" title="Autumn Vibes - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1440x900.png" title="Autumn Vibes - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1600x1200.png" title="Autumn Vibes - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1680x1050.png" title="Autumn Vibes - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1680x1200.png" title="Autumn Vibes - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1920x1080.png" title="Autumn Vibes - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1920x1200.png" title="Autumn Vibes - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-1920x1440.png" title="Autumn Vibes - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-21/autumn-vibes/nocal/oct-21-autumn-vibes-nocal-2560x1440.png" title="Autumn Vibes - 2560x1440">2560x1440</a></li></ul><h2 id="game-night-and-hot-chocolate">Game Night And Hot Chocolate</h2><p>“To me, October is all about cozy evenings with hot chocolate, freshly baked cookies, and a game night with friends or family.” — Designed by Lieselot Geirnaert from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5ddff2f5-0667-472f-8dd1-45338d9dcf1b/oct-20-game-night-and-hot-chocolate-full-opt.png" title="Game Night And Hot Chocolate"><img alt="Game Night And Hot Chocolate" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/64f8726a-ac04-4d72-b048-c0dfcc6fefd7/oct-20-game-night-and-hot-chocolate-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/64f8726a-ac04-4d72-b048-c0dfcc6fefd7/oct-20-game-night-and-hot-chocolate-preview-opt.png" title="Game Night And Hot Chocolate - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-20/game-night-and-hot-chocolate/nocal/oct-20-game-night-and-hot-chocolate-nocal-320x480.png" title="Game Night And Hot Chocolate - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/game-night-and-hot-chocolate/nocal/oct-20-game-night-and-hot-chocolate-nocal-1024x1024.png" title="Game Night And Hot Chocolate - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/game-night-and-hot-chocolate/nocal/oct-20-game-night-and-hot-chocolate-nocal-1280x1024.png" title="Game Night And Hot Chocolate - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-20/game-night-and-hot-chocolate/nocal/oct-20-game-night-and-hot-chocolate-nocal-2560x1440.png" title="Game Night And Hot Chocolate - 2560x1440">2560x1440</a></li></ul><h2 id="haunted-house">Haunted House</h2><p>“Love all the Halloween costumes and decorations!” — Designed by <a href="https://www.tazi.com.au">Tazi</a> from Australia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ed9e47d2-2cf0-457f-bca9-be87b1569314/oct-17-haunted-house-full-opt.png" title="Haunted House"><img alt="Haunted House" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b3f87bf9-b8cf-4038-8b9a-edbca1d21dc8/oct-17-haunted-house-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b3f87bf9-b8cf-4038-8b9a-edbca1d21dc8/oct-17-haunted-house-preview-opt.png" title="Haunted House - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-320x480.jpg" title="Haunted House - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-640x480.jpg" title="Haunted House - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-800x600.jpg" title="Haunted House - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-1024x768.jpg" title="Haunted House - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-1152x864.jpg" title="Haunted House - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-1280x720.jpg" title="Haunted House - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-1280x960.jpg" title="Haunted House - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-1600x1200.jpg" title="Haunted House - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-1920x1080.jpg" title="Haunted House - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-1920x1440.jpg" title="Haunted House - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/haunted-house/nocal/oct-17-haunted-house-nocal-2560x1440.jpg" title="Haunted House - 2560x1440">2560x1440</a></li></ul><h2 id="say-bye-to-summer">Say Bye To Summer</h2><p>“And hello to autumn! The summer heat and high season is over. It’s time to pack our backpacks and head for the mountains — there are many treasures waiting to be discovered!” Designed by Agnes Sobon from Poland.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/48d101c4-75c8-41ce-bf57-9558e4035d86/october-12-bye-summer-82-full-opt.png"><img alt="Bye Summer" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cd9b790f-f383-45e0-abd4-b466d4016f66/october-12-bye-summer-82-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cd9b790f-f383-45e0-abd4-b466d4016f66/october-12-bye-summer-82-preview-opt.png">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-bye_summer__82-nocal-1280x800.jpg">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-bye_summer__82-nocal-1440x900.jpg">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-bye_summer__82-nocal-1680x1050.jpg">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-bye_summer__82-nocal-1920x1080.jpg">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-bye_summer__82-nocal-1920x1200.jpg">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/october-12/october-12-bye_summer__82-nocal-2560x1440.jpg">2560x1440</a></li></ul><h2 id="tea-and-cookies">Tea And Cookies</h2><p>“As it gets colder outside, all I want to do is stay inside with a big pot of tea, eat cookies and read or watch a movie, wrapped in a blanket. Is it just me?” — Designed by Miruna Sfia from Romania.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8e29d8b5-6f10-4bd0-ab24-5835bc906fb7/oct-17-tea-and-cookies-full-opt.png" title="Tea And Cookies"><img alt="Tea And Cookies" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/53ac53b9-8895-4352-b585-aacd3405bf95/oct-17-tea-and-cookies-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/53ac53b9-8895-4352-b585-aacd3405bf95/oct-17-tea-and-cookies-preview-opt.png" title="Tea And Cookies - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-320x480.png" title="Tea And Cookies - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-640x480.png" title="Tea And Cookies - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-800x480.png" title="Tea And Cookies - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-800x600.png" title="Tea And Cookies - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1024x768.png" title="Tea And Cookies - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1024x1024.png" title="Tea And Cookies - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1152x864.png" title="Tea And Cookies - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1280x720.png" title="Tea And Cookies - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1280x800.png" title="Tea And Cookies - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1280x960.png" title="Tea And Cookies - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1280x1024.png" title="Tea And Cookies - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1440x900.png" title="Tea And Cookies - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1440x1050.png" title="Tea And Cookies - 1440x1050">1440x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1600x1200.png" title="Tea And Cookies - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1680x1050.png" title="Tea And Cookies - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1680x1200.png" title="Tea And Cookies - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1920x1080.png" title="Tea And Cookies - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1920x1200.png" title="Tea And Cookies - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-1920x1440.png" title="Tea And Cookies - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/tea-and-cookies/nocal/oct-17-tea-and-cookies-nocal-2560x1440.png" title="Tea And Cookies - 2560x1440">2560x1440</a></li></ul><h2 id="the-return">The Return</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-19-the-return-full-opt.png" title="The Return"><img alt="The Return" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-19-the-return-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-19-the-return-preview-opt.png" title="The Return - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-320x480.png" title="The Return - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-640x480.png" title="The Return - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-800x480.png" title="The Return - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-800x600.png" title="The Return - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1024x768.png" title="The Return - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1024x1024.png" title="The Return - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1152x864.png" title="The Return - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1280x720.png" title="The Return - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1280x800.png" title="The Return - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1280x960.png" title="The Return - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1280x1024.png" title="The Return - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1366x768.png" title="The Return - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1400x1050.png" title="The Return - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1440x900.png" title="The Return - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1600x1200.png" title="The Return - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1680x1050.png" title="The Return - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1680x1200.png" title="The Return - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1920x1080.png" title="The Return - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1920x1200.png" title="The Return - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-1920x1440.png" title="The Return - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-19/the-return/nocal/oct-19-the-return-nocal-2560x1440.png" title="The Return - 2560x1440">2560x1440</a></li></ul><h2 id="boo!">Boo!</h2><p>Designed by <a href="https://www.madfishdigital.com/">Mad Fish Digital</a> from Portland, OR.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-22-boo-full-opt.png" title="Boo!"><img alt="Boo!" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-22-boo-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-22-boo-preview-opt.png" title="Boo! - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-22/boo/nocal/oct-22-boo-nocal-320x480.jpg" title="Boo! - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-22/boo/nocal/oct-22-boo-nocal-1024x1024.jpg" title="Boo! - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-22/boo/nocal/oct-22-boo-nocal-1280x720.jpg" title="Boo! - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-22/boo/nocal/oct-22-boo-nocal-1680x1200.jpg" title="Boo! - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-22/boo/nocal/oct-22-boo-nocal-1920x1080.jpg" title="Boo! - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-22/boo/nocal/oct-22-boo-nocal-2560x1440.jpg" title="Boo! - 2560x1440">2560x1440</a></li></ul><h2 id="trick-or-treat">Trick Or Treat</h2><p>“Have you ever wondered if all the little creatures of the animal kingdom celebrate Halloween as humans do? My answer is definitely ‘YES! They do!’ They use acorns as baskets to collect all the treats, pastry brushes as brooms for the spookiest witches and hats made from the tips set of your pastry bag. So, if you happen to miss something from your kitchen or from your tool box, it may be one of them, trying to get ready for All Hallows’ Eve.” — Designed by <a href="https://carladipasquale.tumblr.com">Carla Dipasquale</a> from Italy.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-17-trick-or-treat-full-opt.png" title="Trick Or Treat"><img alt="Trick Or Treat" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-17-trick-or-treat-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2023/oct-17-trick-or-treat-preview-opt.png" title="Trick Or Treat - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-640x480.jpg" title="Trick Or Treat - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-800x600.jpg" title="Trick Or Treat - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-1024x768.jpg" title="Trick Or Treat - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-1280x960.jpg" title="Trick Or Treat - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-1440x900.jpg" title="Trick Or Treat - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-1600x1200.jpg" title="Trick Or Treat - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-1680x1200.jpg" title="Trick Or Treat - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-1920x1080.jpg" title="Trick Or Treat - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-1920x1440.jpg" title="Trick Or Treat - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-17/trick-or-treat/nocal/oct-17-trick-or-treat-nocal-2560x1440.jpg" title="Trick Or Treat - 2560x1440">2560x1440</a></li></ul><h2 id="dope-code">Dope Code</h2><p>“October is the month when the weather in Poland starts to get colder, and it gets very rainy, too. You can’t always spend your free time outside, so it’s the perfect opportunity to get some hot coffee and work on your next cool web project!” — Designed by Robert Brodziak from Poland.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/590480b2-8a92-4475-b85d-58f4df8241ef/oct-14-dope-code-full-opt.png" title="Dope Code"><img alt="Dope Code" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b752bf3c-d8ad-45fc-b20b-5de9fe272e1b/oct-14-dope-code-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b752bf3c-d8ad-45fc-b20b-5de9fe272e1b/oct-14-dope-code-preview-opt.png" title="Dope Code - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1024x768.jpg" title="Dope Code - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1024x1024.jpg" title="Dope Code - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1152x864.jpg" title="Dope Code - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1280x720.jpg" title="Dope Code - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1280x800.jpg" title="Dope Code - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1280x960.jpg" title="Dope Code - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1280x1024.jpg" title="Dope Code - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1400x1050.jpg" title="Dope Code - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1440x900.jpg" title="Dope Code - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1600x1200.jpg" title="Dope Code - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1680x1050.jpg" title="Dope Code - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1680x1200.jpg" title="Dope Code - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1920x1080.jpg" title="Dope Code - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1920x1200.jpg" title="Dope Code - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-1920x1440.jpg" title="Dope Code - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/oct-14/dope-code/nocal/oct-14-dope-code-nocal-2560x1440.jpg" title="Dope Code - 2560x1440">2560x1440</a></li></ul><h2 id="happy-halloween">Happy Halloween</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2025/oct-24-happy-halloween-full-opt.png" title="Happy Halloween"><img alt="Happy Halloween" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2025/oct-24-happy-halloween-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-october-2025/oct-24-happy-halloween-preview-opt.png" title="Happy Halloween - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-640x480.png" title="Happy Halloween - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-800x480.png" title="Happy Halloween - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-800x600.png" title="Happy Halloween - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1024x768.png" title="Happy Halloween - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1024x1024.png" title="Happy Halloween - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1152x864.png" title="Happy Halloween - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1280x720.png" title="Happy Halloween - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1280x800.png" title="Happy Halloween - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1280x960.png" title="Happy Halloween - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1280x1024.png" title="Happy Halloween - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1366x768.png" title="Happy Halloween - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1400x1050.png" title="Happy Halloween - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1440x900.png" title="Happy Halloween - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1600x1200.png" title="Happy Halloween - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1680x1050.png" title="Happy Halloween - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1680x1200.png" title="Happy Halloween - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1920x1080.png" title="Happy Halloween - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1920x1200.png" title="Happy Halloween - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-1920x1440.png" title="Happy Halloween - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-2560x1440.png" title="Happy Halloween - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/oct-24/happy-halloween/nocal/oct-24-happy-halloween-nocal-3840x2160.png" title="Happy Halloween - 3840x2160">3840x2160</a></li></ul><h2 id="ghostober">Ghostober</h2><p>Designed by <a href="https://simpi.deviantart.com">Ricardo Delgado</a> from Mexico City.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9e6f3779-5634-4545-b3a0-852c9278d9d6/october-10-ghostober-full.png"><img alt="Smashing Wallpaper - October 2010" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a01c4b3b-26b9-45e3-91f3-31af816fca9b/october-10-ghostober-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a01c4b3b-26b9-45e3-91f3-31af816fca9b/october-10-ghostober-preview-opt.png" title="Ghostober - Preview">preview</a></li><li>without calendar: <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6b966ccf-20eb-49eb-a35c-e7d0a1afe4f1/october-10-ghostober-33-nocal-1024x768.jpg">1024x768</a>, <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5b6742e3-d005-4819-a016-039eaa841d2b/october-10-ghostober-33-nocal-1024x1024.jpg">1024x1024</a>, <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/49c365cb-b298-4ebe-8a11-edf02e7cbcbb/october-10-ghostober-33-nocal-1280x800.jpg">1280x800</a>, <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c54c8e27-dc89-443a-a56b-b6524f231fe6/october-10-ghostober-33-nocal-1280x1024.jpg">1280x1024</a>, <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/48dea281-f86b-45ca-8dcc-1bdbea077762/october-10-ghostober-33-nocal-2560x1440.jpg">2560x1440</a></li></ul><h2 id="get-featured-next-month">Get Featured Next Month</h2><p>Would you like to get featured in our next wallpapers post? We’ll publish the <strong>November wallpapers</strong> on October 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 can’t wait to see what you’ll come up with!</p></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (Cosima Mielke) <![CDATA[From Prompt To Partner: Designing Your Custom AI Assistant]]> https://smashingmagazine.com/2025/09/from-prompt-to-partner-designing-custom-ai-assistant/ https://smashingmagazine.com/2025/09/from-prompt-to-partner-designing-custom-ai-assistant/ Fri, 26 Sep 2025 10:00:00 GMT <img src="https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/from-prompt-to-partner-designing-custom-ai-assistant.jpg" /><h1>Designing Your Custom AI Assistant — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>19 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/ai">AI</a>, <a href="http://www.smashingmagazine.com/category/workflow">Workflow</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>What if your best AI prompts didn’t disappear into your unorganized chat history, but came back tomorrow as a reliable assistant? In this article, you’ll learn how to turn one-off “aha” prompts into reusable assistants that are tailored to your audience, grounded in your knowledge, and consistent every time, saving you (and your team) from typing the same 448-word prompt ever again. No coding, just designing, and by the end, you’ll have a custom AI assistant that can augment your team.</section></p><p>In “<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>”, Kate stumbled her way through an AI-augmented sprint (coffee was chugged, mistakes were made). In “<a href="https://www.smashingmagazine.com/2025/08/prompting-design-act-brief-guide-iterate-ai/">Prompting Is A Design Act</a>”, we introduced WIRE+FRAME, a framework to structure prompts like designers structure creative briefs. Now we’ll take the next step: packaging those structured prompts into AI assistants you can design, reuse, and share.</p><p>AI assistants go by different names: CustomGPTs (ChatGPT), Agents (Copilot), and Gems (Gemini). But they all serve the same function — allowing you to customize the default AI model for your unique needs. If we carry over our smart intern analogy, think of these as interns trained to assist you with specific tasks, eliminating the need for repeated instructions or information, and who can support not just you, but your entire team.</p><h2 id="why-build-your-own-assistant">Why Build Your Own Assistant?</h2><p>If you’ve ever copied and pasted the same mega-prompt for the n<sup>th</sup> time, you’ve experienced the pain. An AI assistant turns a one-off “great prompt” into a dependable teammate. And if you’ve used any of the publicly available AI Assistants, you’ve realized quickly that they’re usually generic and not tailored for your use.</p><p>Public AI assistants are great for inspiration, but nothing beats an assistant that solves a repeated problem for you and your team, in <strong>your voice</strong>, with <strong>your context and constraints</strong> baked in. Instead of reinventing the wheel by writing new prompts each time, or repeatedly copy-pasting your structured prompts every time, or spending cycles trying to make a public AI Assistant work the way you need it to, your own AI Assistant allows you and others to easily get better, repeatable, consistent results faster.</p><h3 id="benefits-of-reusing-prompts-even-your-own">Benefits Of Reusing Prompts, Even Your Own</h3><p>Some of the benefits of building your own AI Assistant over writing or reusing your prompts include:</p><ul><li><strong>Focused on a real repeating problem</strong><br></br>A good AI Assistant isn’t a general-purpose “do everything” bot that you need to keep tweaking. It focuses on a single, recurring problem that takes a long time to complete manually and often results in varying quality depending on who’s doing it (e.g., analyzing customer feedback).</li><li><strong>Customized for your context</strong><br></br>Most large language models (LLMs, such as ChatGPT) are designed to be everything to everyone. An AI Assistant changes that by allowing you to customize it to automatically work like you want it to, instead of a generic AI.</li><li><strong>Consistency at scale</strong><br></br>You can use the <a href="https://www.smashingmagazine.com/2025/08/prompting-design-act-brief-guide-iterate-ai/#anatomy-structure-it-like-a-designer">WIRE+FRAME prompt framework</a> to create structured, reusable prompts. An AI Assistant is the next logical step: instead of copy-pasting that fine-tuned prompt and sharing contextual information and examples each time, you can bake it into the assistant itself, allowing you and others achieve the same consistent results every time.</li><li><strong>Codifying expertise</strong><br></br>Every time you turn a great prompt into an AI Assistant, you’re essentially bottling your expertise. Your assistant becomes a living design guide that outlasts projects (and even job changes).</li><li><strong>Faster ramp-up for teammates</strong><br></br>Instead of new designers starting from a blank slate, they can use pre-tuned assistants. Think of it as knowledge transfer without the long onboarding lecture.<br></br></li></ul><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h3 id="reasons-for-your-own-ai-assistant-instead-of-public-ai-assistants">Reasons For Your Own AI Assistant Instead Of Public AI Assistants</h3><p>Public AI assistants are like stock templates. While they serve a specific purpose compared to the generic AI platform, and are useful starting points, if you want something tailored to your needs and team, you should really build your own.</p><p>A few reasons for building your AI Assistant instead of using a public assistant someone else created include:</p><ul><li><strong>Fit</strong>: Public assistants are built for the masses. Your work has quirks, tone, and processes they’ll never quite match.</li><li><strong>Trust &amp; Security</strong>: You don’t control what instructions or hidden guardrails someone else baked in. With your own assistant, you know exactly what it will (and won’t) do.</li><li><strong>Evolution</strong>: An AI Assistant you design and build can grow with your team. You can update files, tweak prompts, and maintain a changelog — things a public bot won’t do for you.</li></ul><p>Your own AI Assistants allow you to take your successful ways of interacting with AI and make them repeatable and shareable. And while they are tailored to your and your team’s way of working, remember that they are still based on generic AI models, so the usual AI disclaimers apply:</p><p><em>Don’t share anything you wouldn’t want screenshotted in the next company all-hands. Keep it safe, private, and user-respecting. A shared AI Assistant can potentially reveal its inner workings or data.</em></p><p><strong><em>Note</em></strong>: <em>We will be building an AI assistant using ChatGPT, aka a CustomGPT, but you can try the same process with any decent LLM sidekick. As of publication, a paid account is required to create CustomGPTs, but once created, they can be shared and used by anyone, regardless of whether they have a paid or free account. Similar limitations apply to the other platforms. Just remember that outputs can vary depending on the LLM model used, the model’s training, mood, and flair for creative hallucinations.</em></p><h3 id="when-not-to-build-an-ai-assistant-yet">When Not to Build An AI Assistant (Yet)</h3><p>An AI Assistant is great when the <em>same</em> audience has the <em>same</em> problem <em>often</em>. When the fit isn’t there, the risk is high; you should skip building an AI Assistant for now, as explained below:</p><ul><li><strong>One-off or rare tasks</strong><br></br>If it won’t be reused at least monthly, I’d recommend keeping it as a saved WIRE+FRAME prompt. For example, something for a one-time audit or creating placeholder content for a specific screen.</li><li><strong>Sensitive or regulated data</strong><br></br>If you need to build in personally identifiable information (PII), health, finance, legal, or trade secrets, err on the side of not building an AI Assistant. Even if the AI platform promises not to use your data, I’d strongly suggest using redaction or an approved enterprise tool with necessary safeguards in place (company-approved enterprise versions of Microsoft Copilot, for instance).</li><li><strong>Heavy orchestration or logic</strong><br></br>Multi-step workflows, API calls, database writes, and approvals go beyond the scope of an AI Assistant into Agentic territory (as of now). I’d recommend not trying to build an AI Assistant for these cases.</li><li><strong>Real-time information</strong><br></br>AI Assistants may not be able to access real-time data like prices, live metrics, or breaking news. If you need these, you can upload near-real-time data (as we do below) or connect with data sources that you or your company controls, rather than relying on the open web.</li><li><strong>High-stakes outputs</strong><br></br>For cases related to compliance, legal, medical, or any other area requiring auditability, consider implementing process guardrails and training to keep humans in the loop for proper review and accountability.</li><li><strong>No measurable win</strong><br></br>If you can’t name a success metric (such as time saved, first-draft quality, or fewer re-dos), I’d recommend keeping it as a saved WIRE+FRAME prompt.</li></ul><p>Just because these are signs that you should not build your AI Assistant now, doesn’t mean you shouldn’t ever. Revisit this decision when you notice that you’re starting to repeatedly use the same prompt weekly, multiple teammates ask for it, or manual time copy-pasting and refining start exceeding ~15 minutes. Those are some signs that an AI Assistant will pay back quickly.</p><p>In a nutshell, build an AI Assistant when you can name the problem, the audience, frequency, and the win. The rest of this article shows how to turn your successful WIRE+FRAME prompt into a CustomGPT that you and your team can actually use. No advanced knowledge, coding skills, or hacks needed.</p><h2 id="as-always-start-with-the-user">As Always, Start with the User</h2><p>This should go without saying to UX professionals, but it’s worth a reminder: if you’re building an AI assistant for anyone besides yourself, start with the user and their needs before you build anything.</p><ul><li>Who will use this assistant?</li><li>What’s the specific pain or task they struggle with today?</li><li>What language, tone, and examples will feel natural to them?</li></ul><p>Building without doing this first is a sure way to end up with clever assistants nobody actually wants to use. Think of it like any other product: before you build features, you understand your audience. The same rule applies here, even more so, because AI assistants are only as helpful as they are useful and usable.</p><h2 id="from-prompt-to-assistant">From Prompt To Assistant</h2><p>You’ve already done the heavy lifting with WIRE+FRAME. Now you’re just turning that refined and reliable prompt into a CustomGPT you can reuse and share. You can use MATCH as a checklist to go from a great prompt to a useful AI assistant.</p><ul><li><strong>M: Map your prompt</strong><br></br>Port your successful WIRE+FRAME prompt into the AI assistant.</li><li><strong>A: Add knowledge and training</strong><br></br>Ground the assistant in <em>your</em> world. Upload knowledge files, examples, or guides that make it uniquely yours.</li><li><strong>T: Tailor for audience</strong><br></br>Make it feel natural to the people who will use it. Give it the right capabilities, but also adjust its settings, tone, examples, and conversation starters so they land with your audience.</li><li><strong>C: Check, test, and refine</strong><br></br>Test the preview with different inputs and refine until you get the results you expect.</li><li><strong>H: Hand off and maintain</strong><br></br>Set sharing options and permissions, share the link, and maintain it.</li></ul><p>A few weeks ago, we invited readers to share their ideas for AI assistants they wished they had. The top contenders were:</p><ul><li><strong>Prototype Prodigy</strong>: Transform rough ideas into prototypes and export them into Figma to refine.</li><li><strong>Critique Coach</strong>: Review wireframes or mockups and point out accessibility and usability gaps.</li></ul><p>But the favorite was an AI assistant to turn tons of customer feedback into actionable insights. Readers replied with variations of: <em>“An assistant that can quickly sort through piles of survey responses, app reviews, or open-ended comments and turn them into themes we can act on.”</em></p><p>And that’s the one we will build in this article — say hello to <strong>Insight Interpreter.</strong></p><h2 id="walkthrough-insight-interpreter">Walkthrough: Insight Interpreter</h2><p>Having lots of customer feedback is a nice problem to have. Companies actively seek out customer feedback through surveys and studies (solicited), but also receive feedback that may not have been asked for through social media or public reviews (unsolicited). This is a goldmine of information, but it can be messy and overwhelming trying to make sense of it all, and it’s nobody’s idea of fun. Here’s where an AI assistant like the Insight Interpreter can help. We’ll turn the example prompt created using the WIRE+FRAME framework in <a href="https://www.smashingmagazine.com/2025/08/prompting-design-act-brief-guide-iterate-ai/">Prompting Is A Design Act</a> into a CustomGPT.</p><p>When you start building a CustomGPT by visiting <a href="https://chat.openai.com/gpts/editor?utm_source=chatgpt.com">https://chat.openai.com/gpts/editor</a>, you’ll see two paths:</p><ul><li><strong>Conversational interface</strong><br></br>Vibe-chat your way — it’s easy and quick, but similar to unstructured prompts, your inputs get baked in a little messily, so you may end up with vague or inconsistent instructions.</li><li><strong>Configure interface</strong><br></br>The structured form where you type instructions, upload files, and toggle capabilities. Less instant gratification, less winging it, but more control. This is the option you’ll want for assistants you plan to share or depend on regularly.</li></ul><p>The good news is that MATCH works for both. In conversational mode, you can use it as a mental checklist, and we’ll walk through using it in configure mode as a more formal checklist in this article.</p><figure><a href="https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/1-customgpt-configure-interface.png"><img alt="CustomGPT Configure Interface" decoding="async" fetchpriority="low" height="451" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/1-customgpt-configure-interface.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/1-customgpt-configure-interface.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/1-customgpt-configure-interface.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/1-customgpt-configure-interface.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/1-customgpt-configure-interface.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/1-customgpt-configure-interface.png 2000w" width="800"></img></a><figcaption>CustomGPT Configure Interface. (<a href="https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/1-customgpt-configure-interface.png">Large preview</a>)</figcaption></figure><h3 id="m-map-your-prompt">M: Map Your Prompt</h3><p>Paste your full WIRE+FRAME prompt into the <em>Instructions</em> section exactly as written. As a refresher, I’ve included the mapping and snippets of the detailed prompt from before:</p><ul><li><strong>W</strong>ho &amp; What: The AI persona and the core deliverable (<em>“…senior UX researcher and customer insights analyst… specialize in synthesizing qualitative data from diverse sources…”</em>).</li><li><strong>I</strong>nput Context: Background or data scope to frame the task (<em>“…analyzing customer feedback uploaded from sources such as…”</em>).</li><li><strong>R</strong>ules &amp; Constraints: Boundaries (<em>“…do not fabricate pain points, representative quotes, journey stages, or patterns…”</em>).</li><li><strong>E</strong>xpected Output: Format and fields of the deliverable (<em>“…a structured list of themes. For each theme, include…”</em>).</li><li><strong>F</strong>low: Explicit, ordered sub-tasks (<em>“Recommended flow of tasks: Step 1…”</em>).</li><li><strong>R</strong>eference Voice: Tone, mood, or reference (<em>“…concise, pattern-driven, and objective…”</em>).</li><li><strong>A</strong>sk for Clarification: Ask questions if unclear (<em>“…if data is missing or unclear, ask before continuing…”</em>).</li><li><strong>M</strong>emory: Memory to recall earlier definitions (<em>“Unless explicitly instructed otherwise, keep using this process…”</em>).</li><li><strong>E</strong>valuate &amp; Iterate: Have the AI self-critique outputs (<em>“…critically evaluate…suggest improvements…”</em>).</li></ul><p>If you’re building Copilot Agents or Gemini Gems instead of CustomGPTs, you still paste your WIRE+FRAME prompt into their respective <em>Instructions</em> sections.</p><h3 id="a-add-knowledge-and-training">A: Add Knowledge And Training</h3><p>In the knowledge section, upload up to 20 files, clearly labeled, that will help the CustomGPT respond effectively. Keep files small and versioned: <em>reviews_Q2_2025.csv</em> beats <em>latestfile_final2.csv</em>. For this prompt for analyzing customer feedback, generating themes organized by customer journey, rating them by severity and effort, files could include:</p><ul><li>Taxonomy of themes;</li><li>Instructions on parsing uploaded data;</li><li>Examples of real UX research reports using this structure;</li><li>Scoring guidelines for severity and effort, e.g., what makes something a 3 vs. a 5 in severity;</li><li>Customer journey map stages;</li><li>Customer feedback file templates (not actual data).</li></ul><p>An example of a file to help it parse uploaded data is shown below:</p><figure><a href="https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/2-gpt-file-parsing-instructions.png"><img alt="GPT file parsing instructions" decoding="async" fetchpriority="low" height="447" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/2-gpt-file-parsing-instructions.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/2-gpt-file-parsing-instructions.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/2-gpt-file-parsing-instructions.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/2-gpt-file-parsing-instructions.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/2-gpt-file-parsing-instructions.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/2-gpt-file-parsing-instructions.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/2-gpt-file-parsing-instructions.png">Large preview</a>)</figcaption></figure><h3 id="t-tailor-for-audience">T: Tailor For Audience</h3><ul><li><strong>Audience tailoring</strong><br></br>If you are building this for others, your prompt should have addressed tone in the “Reference Voice” section. If you didn’t, do it now, so the CustomGPT can be tailored to the tone and expertise level of users who will use it. In addition, use the <em>Conversation starters</em> section to add a few examples or common prompts for users to start using the CustomGPT, again, worded for your users. For instance, we could use “Analyze feedback from the attached file” for our Insights Interpreter to make it more self-explanatory for anyone, instead of “Analyze data,” which may be good enough if you were using it alone. For my Designerly Curiosity GPT, assuming that users may not know what it could do, I use “What are the types of curiosity?” and “Give me a micro-practice to spark curiosity”.</li><li><strong>Functional tailoring</strong><br></br>Fill in the CustomGPT name, icon, description, and capabilities.<ul><li><em>Name</em>: Pick one that will make it clear what the CustomGPT does. Let’s use “Insights Interpreter — Customer Feedback Analyzer”. If needed, you can also add a version number. This name will show up in the sidebar when people use it or pin it, so make the first part memorable and easily identifiable.</li><li><em>Icon</em>: Upload an image or generate one. Keep it simple so it can be easily recognized in a smaller dimension when people pin it in their sidebar.</li><li><em>Description</em>: A brief, yet clear description of what the CustomGPT can do. If you plan to list it in the GPT store, this will help people decide if they should pick yours over something similar.</li><li><em>Recommended Model</em>: If your CustomGPT needs the capabilities of a particular model (e.g., needs GPT-5 thinking for detailed analysis), select it. In most cases, you can safely leave it up to the user or select the most common model.</li><li><em>Capabilities</em>: Turn off anything you won’t need. We’ll turn off “Web Search” to allow the CustomGPT to focus only on uploaded data, without expanding the search online, and we will turn on “Code Interpreter &amp; Data Analysis” to allow it to understand and process uploaded files. “Canvas” allows users to work on a shared canvas with the GPT to edit writing tasks; “Image generation” - if the CustomGPT needs to create images.</li><li><em>Actions</em>: Making <a href="https://platform.openai.com/docs/actions/introduction">third-party APIs</a> available to the CustomGPT, advanced functionality we don’t need.</li><li><em>Additional Settings</em>: Sneakily hidden and opted in by default, I opt out of training OpenAI’s models.</li></ul></li></ul><h3 id="c-check-test-refine">C: Check, Test &amp; Refine</h3><p>Do one last visual check to make sure you’ve filled in all applicable fields and the basics are in place: is the concept sharp and clear (not a do-everything bot)? Are the roles, goals, and tone clear? Do we have the right assets (docs, guides) to support it? Is the flow simple enough that others can get started easily? Once those boxes are checked, move into testing.</p><p>Use the <em>Preview</em> panel to verify that your CustomGPT performs as well, or better, than your original WIRE+FRAME prompt, and that it works for your intended audience. Try a few representative inputs and compare the results to what you expected. If something worked before but doesn’t now, check whether new instructions or knowledge files are overriding it.</p><p>When things don’t look right, here are quick debugging fixes:</p><ul><li><strong>Generic answers?</strong><br></br>Tighten <em>Input Context</em> or update the knowledge files.</li><li><strong>Hallucinations?</strong><br></br>Revisit your <em>Rules</em> section. Turn off web browsing if you don’t need external data.</li><li><strong>Wrong tone?</strong><br></br>Strengthen <em>Reference Voice</em> or swap in clearer examples.</li><li><strong>Inconsistent?</strong><br></br>Test across models in preview and set the most reliable one as “Recommended.”</li></ul><h3 id="h-hand-off-and-maintain">H: Hand Off And Maintain</h3><p>When your CustomGPT is ready, you can publish it via the “Create” option. Select the appropriate access option:</p><ul><li><strong>Only me</strong>: Private use. Perfect if you’re still experimenting or keeping it personal.</li><li><strong>Anyone with the link</strong>: Exactly what it means. Shareable but not searchable. Great for pilots with a team or small group. Just remember that links can be reshared, so treat them as semi-public.</li><li><strong>GPT Store</strong>: Fully public. Your assistant is listed and findable by anyone browsing the store. <em>(This is the option we’ll use.)</em></li><li><strong>Business workspace</strong> (if you’re on GPT Business): Share with others within your business account only — the easiest way to keep it in-house and controlled.</li></ul><p>But hand off doesn’t end with hitting publish, you should maintain it to keep it relevant and useful:</p><ul><li><strong>Collect feedback</strong>: Ask teammates what worked, what didn’t, and what they had to fix manually.</li><li><strong>Iterate</strong>: Apply changes directly or duplicate the GPT if you want multiple versions in play. You can find all your CustomGPTs at: <a href="https://chatgpt.com/gpts/mine">https://chatgpt.com/gpts/mine</a></li><li><strong>Track changes</strong>: Keep a simple changelog (date, version, updates) for traceability.</li><li><strong>Refresh knowledge</strong>: Update knowledge files and examples on a regular cadence so answers don’t go stale.</li></ul><p>And that’s it! <a href="https://go.cerejo.com/insights-interpreter">Our Insights Interpreter is now live!</a></p><p>Since we used the WIRE+FRAME prompt from the previous article to create the Insights Interpreter CustomGPT, I compared the outputs:</p><figure><a href="https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/3-results-structured-wire-frame-prompt.png"><img alt="Results of the structured WIRE+FRAME prompt from the previous article" decoding="async" fetchpriority="low" height="325" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/3-results-structured-wire-frame-prompt.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/3-results-structured-wire-frame-prompt.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/3-results-structured-wire-frame-prompt.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/3-results-structured-wire-frame-prompt.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/3-results-structured-wire-frame-prompt.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/3-results-structured-wire-frame-prompt.png 2000w" width="800"></img></a><figcaption>Results of the structured WIRE+FRAME prompt from the previous article. (<a href="https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/3-results-structured-wire-frame-prompt.png">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/4-results-insights-interpreter-customgpt.png"><img alt="Results of the Insights Interpreter CustomGPT based on the same prompt" decoding="async" fetchpriority="low" height="276" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/4-results-insights-interpreter-customgpt.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/4-results-insights-interpreter-customgpt.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/4-results-insights-interpreter-customgpt.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/4-results-insights-interpreter-customgpt.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/4-results-insights-interpreter-customgpt.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/4-results-insights-interpreter-customgpt.png 2000w" width="800"></img></a><figcaption>Results of the Insights Interpreter CustomGPT based on the same prompt. (<a href="https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/4-results-insights-interpreter-customgpt.png">Large preview</a>)</figcaption></figure><p>The results are similar, with slight differences, and that’s expected. If you compare the results carefully, the themes, issues, journey stages, frequency, severity, and estimated effort match with some differences in wording of the theme, issue summary, and problem statement. The opportunities and quotes have more visible differences. Most of it is because of the CustomGPT knowledge and training files, including instructions, examples, and guardrails, now live as always-on guidance.</p><p>Keep in mind that in reality, Generative AI is by nature generative, so outputs will vary. Even with the same data, you won’t get identical wording every time. In addition, underlying models and their capabilities rapidly change. If you want to keep things as consistent as possible, recommend a model (though people can change it), track versions of your data, and compare for structure, priorities, and evidence rather than exact wording.</p><p>While I’d love for you to use Insights Interpreter, I strongly recommend taking 15 minutes to follow the steps above and create your own. That is exactly what you or your team needs — including the tone, context, output formats, and get the real AI Assistant you need!</p><h2 id="inspiration-for-other-ai-assistants">Inspiration For Other AI Assistants</h2><p>We just built the Insight Interpreter and mentioned two contenders: Critique Coach and Prototype Prodigy. Here are a few other realistic uses that can spark ideas for your own AI Assistant:</p><ul><li><strong>Workshop Wizard</strong>: Generates workshop agendas, produces icebreaker questions, and follows up survey drafts.</li><li><strong>Research Roundup Buddy</strong>: Summarizes raw transcripts into key themes, then creates highlight reels (quotes + visuals) for team share-outs.</li><li><strong>Persona Refresher</strong>: Updates stale personas with the latest customer feedback, then rewrites them in different tones (boardroom formal vs. design-team casual).</li><li><strong>Content Checker</strong>: Proofs copy for tone, accessibility, and reading level before it ever hits your site.</li><li><strong>Trend Tamer</strong>: Scans competitor reviews and identifies emerging patterns you can act on before they reach your roadmap.</li><li><strong>Microcopy Provocateur</strong>: Tests alternate copy options by injecting different tones (sassy, calm, ironic, nurturing) and role-playing how users might react, especially useful for error states or Call to Actions.</li><li><strong>Ethical UX Debater</strong>: Challenges your design decisions and deceptive designs by simulating the voice of an ethics board or concerned user.</li></ul><p>The best AI Assistants come from carefully inspecting your workflow and looking for areas where AI can augment your work regularly and repetitively. Then follow the steps above to build a team of customized AI assistants.</p><h2 id="ask-me-anything-about-assistants">Ask Me Anything About Assistants</h2><ul><li><strong>What are some limitations of a CustomGPT?</strong><br></br>Right now, the best parallels for AI are a very smart intern with access to a lot of information. CustomGPTs are still running on LLM models that are basically trained on a lot of information and programmed to predictively generate responses based on that data, including possible bias, misinformation, or incomplete information. Keeping that in mind, you can make that intern provide better and more relevant results by using your uploads as onboarding docs, your guardrails as a job description, and your updates as retraining.</li><li><strong>Can I copy someone else’s public CustomGPT and tweak it?</strong><br></br>Not directly, but if you get inspired by another CustomGPT, you can look at how it’s framed and rebuild your own using WIRE+FRAME &amp; MATCH. That way, you make it your own and have full control of the instructions, files, and updates. But you can do that with Google’s equivalent — Gemini Gems. Shared Gems behave similarly to shared Google Docs, so once shared, any Gem instructions and files that you have uploaded can be viewed by any user with access to the Gem. Any user with edit access to the Gem can also update and delete the Gem.</li><li><strong>How private are my uploaded files?</strong><br></br>The files you upload are stored and used to answer prompts to your CustomGPT. If your CustomGPT is not private or you didn’t disable the hidden setting to allow CustomGPT conversations to improve the model, that data could be referenced. Don’t upload sensitive, confidential, or personal data you wouldn’t want circulating. Enterprise accounts do have some protections, so check with your company.</li><li><strong>How many files can I upload, and does size matter?</strong><br></br>Limits vary by platform, but smaller, specific files usually perform better than giant docs. Think “chapter” instead of “entire book.” At the time of publishing, CustomGPTs allow up to 20 files, Copilot Agents up to 200 (if you need anywhere near that many, chances are your agent is not focused enough), and Gemini Gems up to 10.</li><li><strong>What’s the difference between a CustomGPT and a Project?</strong><br></br>A CustomGPT is a focused assistant, like an intern trained to do one role well (like “Insight Interpreter”). A Project is more like a workspace where you can group multiple prompts, files, and conversations together for a broader effort. CustomGPTs are specialists. Projects are containers. If you want something reusable, shareable, and role-specific, go to CustomGPT. If you want to organize broader work with multiple tools and outputs, and shared knowledge, Projects are the better fit.</li></ul><h2 id="from-reading-to-building">From Reading To Building</h2><p>In this AI x Design series, we’ve gone from messy prompting (“<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>”) to a structured prompt framework, WIRE+FRAME (“<a href="https://www.smashingmagazine.com/2025/08/prompting-design-act-brief-guide-iterate-ai/">Prompting Is A Design Act</a>”). And now, in this article, your very own reusable AI sidekick.</p><p>CustomGPTs don’t replace designers but augment them. The real magic isn’t in the tool itself, but in <em>how</em> you design and manage it. You can use public CustomGPTs for inspiration, but the ones that truly fit your workflow are the ones you design yourself. They <strong>extend your craft</strong>, <strong>codify your expertise</strong>, and give your team leverage that generic AI models can’t.</p><p>Build one this week. Even better, today. Train it, share it, stress-test it, and refine it into an AI assistant that can augment your team.</p><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/from-prompt-to-partner-designing-custom-ai-assistant.jpg" /><h1>Designing Your Custom AI Assistant — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>19 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/ai">AI</a>, <a href="http://www.smashingmagazine.com/category/workflow">Workflow</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>What if your best AI prompts didn’t disappear into your unorganized chat history, but came back tomorrow as a reliable assistant? In this article, you’ll learn how to turn one-off “aha” prompts into reusable assistants that are tailored to your audience, grounded in your knowledge, and consistent every time, saving you (and your team) from typing the same 448-word prompt ever again. No coding, just designing, and by the end, you’ll have a custom AI assistant that can augment your team.</section></p><p>In “<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>”, Kate stumbled her way through an AI-augmented sprint (coffee was chugged, mistakes were made). In “<a href="https://www.smashingmagazine.com/2025/08/prompting-design-act-brief-guide-iterate-ai/">Prompting Is A Design Act</a>”, we introduced WIRE+FRAME, a framework to structure prompts like designers structure creative briefs. Now we’ll take the next step: packaging those structured prompts into AI assistants you can design, reuse, and share.</p><p>AI assistants go by different names: CustomGPTs (ChatGPT), Agents (Copilot), and Gems (Gemini). But they all serve the same function — allowing you to customize the default AI model for your unique needs. If we carry over our smart intern analogy, think of these as interns trained to assist you with specific tasks, eliminating the need for repeated instructions or information, and who can support not just you, but your entire team.</p><h2 id="why-build-your-own-assistant">Why Build Your Own Assistant?</h2><p>If you’ve ever copied and pasted the same mega-prompt for the n<sup>th</sup> time, you’ve experienced the pain. An AI assistant turns a one-off “great prompt” into a dependable teammate. And if you’ve used any of the publicly available AI Assistants, you’ve realized quickly that they’re usually generic and not tailored for your use.</p><p>Public AI assistants are great for inspiration, but nothing beats an assistant that solves a repeated problem for you and your team, in <strong>your voice</strong>, with <strong>your context and constraints</strong> baked in. Instead of reinventing the wheel by writing new prompts each time, or repeatedly copy-pasting your structured prompts every time, or spending cycles trying to make a public AI Assistant work the way you need it to, your own AI Assistant allows you and others to easily get better, repeatable, consistent results faster.</p><h3 id="benefits-of-reusing-prompts-even-your-own">Benefits Of Reusing Prompts, Even Your Own</h3><p>Some of the benefits of building your own AI Assistant over writing or reusing your prompts include:</p><ul><li><strong>Focused on a real repeating problem</strong><br></br>A good AI Assistant isn’t a general-purpose “do everything” bot that you need to keep tweaking. It focuses on a single, recurring problem that takes a long time to complete manually and often results in varying quality depending on who’s doing it (e.g., analyzing customer feedback).</li><li><strong>Customized for your context</strong><br></br>Most large language models (LLMs, such as ChatGPT) are designed to be everything to everyone. An AI Assistant changes that by allowing you to customize it to automatically work like you want it to, instead of a generic AI.</li><li><strong>Consistency at scale</strong><br></br>You can use the <a href="https://www.smashingmagazine.com/2025/08/prompting-design-act-brief-guide-iterate-ai/#anatomy-structure-it-like-a-designer">WIRE+FRAME prompt framework</a> to create structured, reusable prompts. An AI Assistant is the next logical step: instead of copy-pasting that fine-tuned prompt and sharing contextual information and examples each time, you can bake it into the assistant itself, allowing you and others achieve the same consistent results every time.</li><li><strong>Codifying expertise</strong><br></br>Every time you turn a great prompt into an AI Assistant, you’re essentially bottling your expertise. Your assistant becomes a living design guide that outlasts projects (and even job changes).</li><li><strong>Faster ramp-up for teammates</strong><br></br>Instead of new designers starting from a blank slate, they can use pre-tuned assistants. Think of it as knowledge transfer without the long onboarding lecture.<br></br></li></ul><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h3 id="reasons-for-your-own-ai-assistant-instead-of-public-ai-assistants">Reasons For Your Own AI Assistant Instead Of Public AI Assistants</h3><p>Public AI assistants are like stock templates. While they serve a specific purpose compared to the generic AI platform, and are useful starting points, if you want something tailored to your needs and team, you should really build your own.</p><p>A few reasons for building your AI Assistant instead of using a public assistant someone else created include:</p><ul><li><strong>Fit</strong>: Public assistants are built for the masses. Your work has quirks, tone, and processes they’ll never quite match.</li><li><strong>Trust &amp; Security</strong>: You don’t control what instructions or hidden guardrails someone else baked in. With your own assistant, you know exactly what it will (and won’t) do.</li><li><strong>Evolution</strong>: An AI Assistant you design and build can grow with your team. You can update files, tweak prompts, and maintain a changelog — things a public bot won’t do for you.</li></ul><p>Your own AI Assistants allow you to take your successful ways of interacting with AI and make them repeatable and shareable. And while they are tailored to your and your team’s way of working, remember that they are still based on generic AI models, so the usual AI disclaimers apply:</p><p><em>Don’t share anything you wouldn’t want screenshotted in the next company all-hands. Keep it safe, private, and user-respecting. A shared AI Assistant can potentially reveal its inner workings or data.</em></p><p><strong><em>Note</em></strong>: <em>We will be building an AI assistant using ChatGPT, aka a CustomGPT, but you can try the same process with any decent LLM sidekick. As of publication, a paid account is required to create CustomGPTs, but once created, they can be shared and used by anyone, regardless of whether they have a paid or free account. Similar limitations apply to the other platforms. Just remember that outputs can vary depending on the LLM model used, the model’s training, mood, and flair for creative hallucinations.</em></p><h3 id="when-not-to-build-an-ai-assistant-yet">When Not to Build An AI Assistant (Yet)</h3><p>An AI Assistant is great when the <em>same</em> audience has the <em>same</em> problem <em>often</em>. When the fit isn’t there, the risk is high; you should skip building an AI Assistant for now, as explained below:</p><ul><li><strong>One-off or rare tasks</strong><br></br>If it won’t be reused at least monthly, I’d recommend keeping it as a saved WIRE+FRAME prompt. For example, something for a one-time audit or creating placeholder content for a specific screen.</li><li><strong>Sensitive or regulated data</strong><br></br>If you need to build in personally identifiable information (PII), health, finance, legal, or trade secrets, err on the side of not building an AI Assistant. Even if the AI platform promises not to use your data, I’d strongly suggest using redaction or an approved enterprise tool with necessary safeguards in place (company-approved enterprise versions of Microsoft Copilot, for instance).</li><li><strong>Heavy orchestration or logic</strong><br></br>Multi-step workflows, API calls, database writes, and approvals go beyond the scope of an AI Assistant into Agentic territory (as of now). I’d recommend not trying to build an AI Assistant for these cases.</li><li><strong>Real-time information</strong><br></br>AI Assistants may not be able to access real-time data like prices, live metrics, or breaking news. If you need these, you can upload near-real-time data (as we do below) or connect with data sources that you or your company controls, rather than relying on the open web.</li><li><strong>High-stakes outputs</strong><br></br>For cases related to compliance, legal, medical, or any other area requiring auditability, consider implementing process guardrails and training to keep humans in the loop for proper review and accountability.</li><li><strong>No measurable win</strong><br></br>If you can’t name a success metric (such as time saved, first-draft quality, or fewer re-dos), I’d recommend keeping it as a saved WIRE+FRAME prompt.</li></ul><p>Just because these are signs that you should not build your AI Assistant now, doesn’t mean you shouldn’t ever. Revisit this decision when you notice that you’re starting to repeatedly use the same prompt weekly, multiple teammates ask for it, or manual time copy-pasting and refining start exceeding ~15 minutes. Those are some signs that an AI Assistant will pay back quickly.</p><p>In a nutshell, build an AI Assistant when you can name the problem, the audience, frequency, and the win. The rest of this article shows how to turn your successful WIRE+FRAME prompt into a CustomGPT that you and your team can actually use. No advanced knowledge, coding skills, or hacks needed.</p><h2 id="as-always-start-with-the-user">As Always, Start with the User</h2><p>This should go without saying to UX professionals, but it’s worth a reminder: if you’re building an AI assistant for anyone besides yourself, start with the user and their needs before you build anything.</p><ul><li>Who will use this assistant?</li><li>What’s the specific pain or task they struggle with today?</li><li>What language, tone, and examples will feel natural to them?</li></ul><p>Building without doing this first is a sure way to end up with clever assistants nobody actually wants to use. Think of it like any other product: before you build features, you understand your audience. The same rule applies here, even more so, because AI assistants are only as helpful as they are useful and usable.</p><h2 id="from-prompt-to-assistant">From Prompt To Assistant</h2><p>You’ve already done the heavy lifting with WIRE+FRAME. Now you’re just turning that refined and reliable prompt into a CustomGPT you can reuse and share. You can use MATCH as a checklist to go from a great prompt to a useful AI assistant.</p><ul><li><strong>M: Map your prompt</strong><br></br>Port your successful WIRE+FRAME prompt into the AI assistant.</li><li><strong>A: Add knowledge and training</strong><br></br>Ground the assistant in <em>your</em> world. Upload knowledge files, examples, or guides that make it uniquely yours.</li><li><strong>T: Tailor for audience</strong><br></br>Make it feel natural to the people who will use it. Give it the right capabilities, but also adjust its settings, tone, examples, and conversation starters so they land with your audience.</li><li><strong>C: Check, test, and refine</strong><br></br>Test the preview with different inputs and refine until you get the results you expect.</li><li><strong>H: Hand off and maintain</strong><br></br>Set sharing options and permissions, share the link, and maintain it.</li></ul><p>A few weeks ago, we invited readers to share their ideas for AI assistants they wished they had. The top contenders were:</p><ul><li><strong>Prototype Prodigy</strong>: Transform rough ideas into prototypes and export them into Figma to refine.</li><li><strong>Critique Coach</strong>: Review wireframes or mockups and point out accessibility and usability gaps.</li></ul><p>But the favorite was an AI assistant to turn tons of customer feedback into actionable insights. Readers replied with variations of: <em>“An assistant that can quickly sort through piles of survey responses, app reviews, or open-ended comments and turn them into themes we can act on.”</em></p><p>And that’s the one we will build in this article — say hello to <strong>Insight Interpreter.</strong></p><h2 id="walkthrough-insight-interpreter">Walkthrough: Insight Interpreter</h2><p>Having lots of customer feedback is a nice problem to have. Companies actively seek out customer feedback through surveys and studies (solicited), but also receive feedback that may not have been asked for through social media or public reviews (unsolicited). This is a goldmine of information, but it can be messy and overwhelming trying to make sense of it all, and it’s nobody’s idea of fun. Here’s where an AI assistant like the Insight Interpreter can help. We’ll turn the example prompt created using the WIRE+FRAME framework in <a href="https://www.smashingmagazine.com/2025/08/prompting-design-act-brief-guide-iterate-ai/">Prompting Is A Design Act</a> into a CustomGPT.</p><p>When you start building a CustomGPT by visiting <a href="https://chat.openai.com/gpts/editor?utm_source=chatgpt.com">https://chat.openai.com/gpts/editor</a>, you’ll see two paths:</p><ul><li><strong>Conversational interface</strong><br></br>Vibe-chat your way — it’s easy and quick, but similar to unstructured prompts, your inputs get baked in a little messily, so you may end up with vague or inconsistent instructions.</li><li><strong>Configure interface</strong><br></br>The structured form where you type instructions, upload files, and toggle capabilities. Less instant gratification, less winging it, but more control. This is the option you’ll want for assistants you plan to share or depend on regularly.</li></ul><p>The good news is that MATCH works for both. In conversational mode, you can use it as a mental checklist, and we’ll walk through using it in configure mode as a more formal checklist in this article.</p><figure><a href="https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/1-customgpt-configure-interface.png"><img alt="CustomGPT Configure Interface" decoding="async" fetchpriority="low" height="451" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/1-customgpt-configure-interface.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/1-customgpt-configure-interface.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/1-customgpt-configure-interface.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/1-customgpt-configure-interface.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/1-customgpt-configure-interface.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/1-customgpt-configure-interface.png 2000w" width="800"></img></a><figcaption>CustomGPT Configure Interface. (<a href="https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/1-customgpt-configure-interface.png">Large preview</a>)</figcaption></figure><h3 id="m-map-your-prompt">M: Map Your Prompt</h3><p>Paste your full WIRE+FRAME prompt into the <em>Instructions</em> section exactly as written. As a refresher, I’ve included the mapping and snippets of the detailed prompt from before:</p><ul><li><strong>W</strong>ho &amp; What: The AI persona and the core deliverable (<em>“…senior UX researcher and customer insights analyst… specialize in synthesizing qualitative data from diverse sources…”</em>).</li><li><strong>I</strong>nput Context: Background or data scope to frame the task (<em>“…analyzing customer feedback uploaded from sources such as…”</em>).</li><li><strong>R</strong>ules &amp; Constraints: Boundaries (<em>“…do not fabricate pain points, representative quotes, journey stages, or patterns…”</em>).</li><li><strong>E</strong>xpected Output: Format and fields of the deliverable (<em>“…a structured list of themes. For each theme, include…”</em>).</li><li><strong>F</strong>low: Explicit, ordered sub-tasks (<em>“Recommended flow of tasks: Step 1…”</em>).</li><li><strong>R</strong>eference Voice: Tone, mood, or reference (<em>“…concise, pattern-driven, and objective…”</em>).</li><li><strong>A</strong>sk for Clarification: Ask questions if unclear (<em>“…if data is missing or unclear, ask before continuing…”</em>).</li><li><strong>M</strong>emory: Memory to recall earlier definitions (<em>“Unless explicitly instructed otherwise, keep using this process…”</em>).</li><li><strong>E</strong>valuate &amp; Iterate: Have the AI self-critique outputs (<em>“…critically evaluate…suggest improvements…”</em>).</li></ul><p>If you’re building Copilot Agents or Gemini Gems instead of CustomGPTs, you still paste your WIRE+FRAME prompt into their respective <em>Instructions</em> sections.</p><h3 id="a-add-knowledge-and-training">A: Add Knowledge And Training</h3><p>In the knowledge section, upload up to 20 files, clearly labeled, that will help the CustomGPT respond effectively. Keep files small and versioned: <em>reviews_Q2_2025.csv</em> beats <em>latestfile_final2.csv</em>. For this prompt for analyzing customer feedback, generating themes organized by customer journey, rating them by severity and effort, files could include:</p><ul><li>Taxonomy of themes;</li><li>Instructions on parsing uploaded data;</li><li>Examples of real UX research reports using this structure;</li><li>Scoring guidelines for severity and effort, e.g., what makes something a 3 vs. a 5 in severity;</li><li>Customer journey map stages;</li><li>Customer feedback file templates (not actual data).</li></ul><p>An example of a file to help it parse uploaded data is shown below:</p><figure><a href="https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/2-gpt-file-parsing-instructions.png"><img alt="GPT file parsing instructions" decoding="async" fetchpriority="low" height="447" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/2-gpt-file-parsing-instructions.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/2-gpt-file-parsing-instructions.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/2-gpt-file-parsing-instructions.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/2-gpt-file-parsing-instructions.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/2-gpt-file-parsing-instructions.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/2-gpt-file-parsing-instructions.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/2-gpt-file-parsing-instructions.png">Large preview</a>)</figcaption></figure><h3 id="t-tailor-for-audience">T: Tailor For Audience</h3><ul><li><strong>Audience tailoring</strong><br></br>If you are building this for others, your prompt should have addressed tone in the “Reference Voice” section. If you didn’t, do it now, so the CustomGPT can be tailored to the tone and expertise level of users who will use it. In addition, use the <em>Conversation starters</em> section to add a few examples or common prompts for users to start using the CustomGPT, again, worded for your users. For instance, we could use “Analyze feedback from the attached file” for our Insights Interpreter to make it more self-explanatory for anyone, instead of “Analyze data,” which may be good enough if you were using it alone. For my Designerly Curiosity GPT, assuming that users may not know what it could do, I use “What are the types of curiosity?” and “Give me a micro-practice to spark curiosity”.</li><li><strong>Functional tailoring</strong><br></br>Fill in the CustomGPT name, icon, description, and capabilities.<ul><li><em>Name</em>: Pick one that will make it clear what the CustomGPT does. Let’s use “Insights Interpreter — Customer Feedback Analyzer”. If needed, you can also add a version number. This name will show up in the sidebar when people use it or pin it, so make the first part memorable and easily identifiable.</li><li><em>Icon</em>: Upload an image or generate one. Keep it simple so it can be easily recognized in a smaller dimension when people pin it in their sidebar.</li><li><em>Description</em>: A brief, yet clear description of what the CustomGPT can do. If you plan to list it in the GPT store, this will help people decide if they should pick yours over something similar.</li><li><em>Recommended Model</em>: If your CustomGPT needs the capabilities of a particular model (e.g., needs GPT-5 thinking for detailed analysis), select it. In most cases, you can safely leave it up to the user or select the most common model.</li><li><em>Capabilities</em>: Turn off anything you won’t need. We’ll turn off “Web Search” to allow the CustomGPT to focus only on uploaded data, without expanding the search online, and we will turn on “Code Interpreter &amp; Data Analysis” to allow it to understand and process uploaded files. “Canvas” allows users to work on a shared canvas with the GPT to edit writing tasks; “Image generation” - if the CustomGPT needs to create images.</li><li><em>Actions</em>: Making <a href="https://platform.openai.com/docs/actions/introduction">third-party APIs</a> available to the CustomGPT, advanced functionality we don’t need.</li><li><em>Additional Settings</em>: Sneakily hidden and opted in by default, I opt out of training OpenAI’s models.</li></ul></li></ul><h3 id="c-check-test-refine">C: Check, Test &amp; Refine</h3><p>Do one last visual check to make sure you’ve filled in all applicable fields and the basics are in place: is the concept sharp and clear (not a do-everything bot)? Are the roles, goals, and tone clear? Do we have the right assets (docs, guides) to support it? Is the flow simple enough that others can get started easily? Once those boxes are checked, move into testing.</p><p>Use the <em>Preview</em> panel to verify that your CustomGPT performs as well, or better, than your original WIRE+FRAME prompt, and that it works for your intended audience. Try a few representative inputs and compare the results to what you expected. If something worked before but doesn’t now, check whether new instructions or knowledge files are overriding it.</p><p>When things don’t look right, here are quick debugging fixes:</p><ul><li><strong>Generic answers?</strong><br></br>Tighten <em>Input Context</em> or update the knowledge files.</li><li><strong>Hallucinations?</strong><br></br>Revisit your <em>Rules</em> section. Turn off web browsing if you don’t need external data.</li><li><strong>Wrong tone?</strong><br></br>Strengthen <em>Reference Voice</em> or swap in clearer examples.</li><li><strong>Inconsistent?</strong><br></br>Test across models in preview and set the most reliable one as “Recommended.”</li></ul><h3 id="h-hand-off-and-maintain">H: Hand Off And Maintain</h3><p>When your CustomGPT is ready, you can publish it via the “Create” option. Select the appropriate access option:</p><ul><li><strong>Only me</strong>: Private use. Perfect if you’re still experimenting or keeping it personal.</li><li><strong>Anyone with the link</strong>: Exactly what it means. Shareable but not searchable. Great for pilots with a team or small group. Just remember that links can be reshared, so treat them as semi-public.</li><li><strong>GPT Store</strong>: Fully public. Your assistant is listed and findable by anyone browsing the store. <em>(This is the option we’ll use.)</em></li><li><strong>Business workspace</strong> (if you’re on GPT Business): Share with others within your business account only — the easiest way to keep it in-house and controlled.</li></ul><p>But hand off doesn’t end with hitting publish, you should maintain it to keep it relevant and useful:</p><ul><li><strong>Collect feedback</strong>: Ask teammates what worked, what didn’t, and what they had to fix manually.</li><li><strong>Iterate</strong>: Apply changes directly or duplicate the GPT if you want multiple versions in play. You can find all your CustomGPTs at: <a href="https://chatgpt.com/gpts/mine">https://chatgpt.com/gpts/mine</a></li><li><strong>Track changes</strong>: Keep a simple changelog (date, version, updates) for traceability.</li><li><strong>Refresh knowledge</strong>: Update knowledge files and examples on a regular cadence so answers don’t go stale.</li></ul><p>And that’s it! <a href="https://go.cerejo.com/insights-interpreter">Our Insights Interpreter is now live!</a></p><p>Since we used the WIRE+FRAME prompt from the previous article to create the Insights Interpreter CustomGPT, I compared the outputs:</p><figure><a href="https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/3-results-structured-wire-frame-prompt.png"><img alt="Results of the structured WIRE+FRAME prompt from the previous article" decoding="async" fetchpriority="low" height="325" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/3-results-structured-wire-frame-prompt.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/3-results-structured-wire-frame-prompt.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/3-results-structured-wire-frame-prompt.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/3-results-structured-wire-frame-prompt.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/3-results-structured-wire-frame-prompt.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/3-results-structured-wire-frame-prompt.png 2000w" width="800"></img></a><figcaption>Results of the structured WIRE+FRAME prompt from the previous article. (<a href="https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/3-results-structured-wire-frame-prompt.png">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/4-results-insights-interpreter-customgpt.png"><img alt="Results of the Insights Interpreter CustomGPT based on the same prompt" decoding="async" fetchpriority="low" height="276" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/4-results-insights-interpreter-customgpt.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/4-results-insights-interpreter-customgpt.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/4-results-insights-interpreter-customgpt.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/4-results-insights-interpreter-customgpt.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/4-results-insights-interpreter-customgpt.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/4-results-insights-interpreter-customgpt.png 2000w" width="800"></img></a><figcaption>Results of the Insights Interpreter CustomGPT based on the same prompt. (<a href="https://files.smashing.media/articles/from-prompt-to-partner-designing-custom-ai-assistant/4-results-insights-interpreter-customgpt.png">Large preview</a>)</figcaption></figure><p>The results are similar, with slight differences, and that’s expected. If you compare the results carefully, the themes, issues, journey stages, frequency, severity, and estimated effort match with some differences in wording of the theme, issue summary, and problem statement. The opportunities and quotes have more visible differences. Most of it is because of the CustomGPT knowledge and training files, including instructions, examples, and guardrails, now live as always-on guidance.</p><p>Keep in mind that in reality, Generative AI is by nature generative, so outputs will vary. Even with the same data, you won’t get identical wording every time. In addition, underlying models and their capabilities rapidly change. If you want to keep things as consistent as possible, recommend a model (though people can change it), track versions of your data, and compare for structure, priorities, and evidence rather than exact wording.</p><p>While I’d love for you to use Insights Interpreter, I strongly recommend taking 15 minutes to follow the steps above and create your own. That is exactly what you or your team needs — including the tone, context, output formats, and get the real AI Assistant you need!</p><h2 id="inspiration-for-other-ai-assistants">Inspiration For Other AI Assistants</h2><p>We just built the Insight Interpreter and mentioned two contenders: Critique Coach and Prototype Prodigy. Here are a few other realistic uses that can spark ideas for your own AI Assistant:</p><ul><li><strong>Workshop Wizard</strong>: Generates workshop agendas, produces icebreaker questions, and follows up survey drafts.</li><li><strong>Research Roundup Buddy</strong>: Summarizes raw transcripts into key themes, then creates highlight reels (quotes + visuals) for team share-outs.</li><li><strong>Persona Refresher</strong>: Updates stale personas with the latest customer feedback, then rewrites them in different tones (boardroom formal vs. design-team casual).</li><li><strong>Content Checker</strong>: Proofs copy for tone, accessibility, and reading level before it ever hits your site.</li><li><strong>Trend Tamer</strong>: Scans competitor reviews and identifies emerging patterns you can act on before they reach your roadmap.</li><li><strong>Microcopy Provocateur</strong>: Tests alternate copy options by injecting different tones (sassy, calm, ironic, nurturing) and role-playing how users might react, especially useful for error states or Call to Actions.</li><li><strong>Ethical UX Debater</strong>: Challenges your design decisions and deceptive designs by simulating the voice of an ethics board or concerned user.</li></ul><p>The best AI Assistants come from carefully inspecting your workflow and looking for areas where AI can augment your work regularly and repetitively. Then follow the steps above to build a team of customized AI assistants.</p><h2 id="ask-me-anything-about-assistants">Ask Me Anything About Assistants</h2><ul><li><strong>What are some limitations of a CustomGPT?</strong><br></br>Right now, the best parallels for AI are a very smart intern with access to a lot of information. CustomGPTs are still running on LLM models that are basically trained on a lot of information and programmed to predictively generate responses based on that data, including possible bias, misinformation, or incomplete information. Keeping that in mind, you can make that intern provide better and more relevant results by using your uploads as onboarding docs, your guardrails as a job description, and your updates as retraining.</li><li><strong>Can I copy someone else’s public CustomGPT and tweak it?</strong><br></br>Not directly, but if you get inspired by another CustomGPT, you can look at how it’s framed and rebuild your own using WIRE+FRAME &amp; MATCH. That way, you make it your own and have full control of the instructions, files, and updates. But you can do that with Google’s equivalent — Gemini Gems. Shared Gems behave similarly to shared Google Docs, so once shared, any Gem instructions and files that you have uploaded can be viewed by any user with access to the Gem. Any user with edit access to the Gem can also update and delete the Gem.</li><li><strong>How private are my uploaded files?</strong><br></br>The files you upload are stored and used to answer prompts to your CustomGPT. If your CustomGPT is not private or you didn’t disable the hidden setting to allow CustomGPT conversations to improve the model, that data could be referenced. Don’t upload sensitive, confidential, or personal data you wouldn’t want circulating. Enterprise accounts do have some protections, so check with your company.</li><li><strong>How many files can I upload, and does size matter?</strong><br></br>Limits vary by platform, but smaller, specific files usually perform better than giant docs. Think “chapter” instead of “entire book.” At the time of publishing, CustomGPTs allow up to 20 files, Copilot Agents up to 200 (if you need anywhere near that many, chances are your agent is not focused enough), and Gemini Gems up to 10.</li><li><strong>What’s the difference between a CustomGPT and a Project?</strong><br></br>A CustomGPT is a focused assistant, like an intern trained to do one role well (like “Insight Interpreter”). A Project is more like a workspace where you can group multiple prompts, files, and conversations together for a broader effort. CustomGPTs are specialists. Projects are containers. If you want something reusable, shareable, and role-specific, go to CustomGPT. If you want to organize broader work with multiple tools and outputs, and shared knowledge, Projects are the better fit.</li></ul><h2 id="from-reading-to-building">From Reading To Building</h2><p>In this AI x Design series, we’ve gone from messy prompting (“<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>”) to a structured prompt framework, WIRE+FRAME (“<a href="https://www.smashingmagazine.com/2025/08/prompting-design-act-brief-guide-iterate-ai/">Prompting Is A Design Act</a>”). And now, in this article, your very own reusable AI sidekick.</p><p>CustomGPTs don’t replace designers but augment them. The real magic isn’t in the tool itself, but in <em>how</em> you design and manage it. You can use public CustomGPTs for inspiration, but the ones that truly fit your workflow are the ones you design yourself. They <strong>extend your craft</strong>, <strong>codify your expertise</strong>, and give your team leverage that generic AI models can’t.</p><p>Build one this week. Even better, today. Train it, share it, stress-test it, and refine it into an AI assistant that can augment your team.</p><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (Lyndon Cerejo) <![CDATA[Intent Prototyping: The Allure And Danger Of Pure Vibe Coding In Enterprise UX (Part 1)]]> https://smashingmagazine.com/2025/09/intent-prototyping-pure-vibe-coding-enterprise-ux/ https://smashingmagazine.com/2025/09/intent-prototyping-pure-vibe-coding-enterprise-ux/ Wed, 24 Sep 2025 17:00:00 GMT <img src="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/intent-prototyping-pure-vibe-coding-enterprise-ux.jpg" /><h1>The Allure And Danger Of Pure Vibe Coding In Enterprise UX (Part 1) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>14 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/process">Process</a>, <a href="http://www.smashingmagazine.com/category/ai">AI</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Yegor Gilyov examines the problem of over-reliance on static high-fidelity mockups, which often leave the conceptual model and user flows dangerously underdeveloped. He then explores whether AI-powered prototyping is the answer, questioning whether the path forward is the popular “vibe coding” approach or a more structured, intent-driven approach.</section></p><p>There is a spectrum of opinions on how dramatically all creative professions will be changed by the coming wave of agentic AI, from the very skeptical to the wildly optimistic and even apocalyptic. I think that even if you are on the “skeptical” end of the spectrum, it makes sense to explore ways this new technology can help with your everyday work. As for my everyday work, I’ve been doing UX and product design for about 25 years now, and I’m always keen to learn new tricks and share them with colleagues. Right now, I’m interested in <strong>AI-assisted prototyping</strong>, and I’m here to share my thoughts on how it can change the process of designing digital products.</p><p>To set your expectations up front: this exploration focuses on a specific part of the product design lifecycle. Many people know about the Double Diamond framework, which shows the path from problem to solution. However, I think it’s the <a href="https://uxdesign.cc/why-the-double-diamond-isnt-enough-adaa48a8aec1">Triple Diamond model</a> that makes an important point for our needs. It explicitly separates the solution space into two phases: Solution Discovery (ideating and validating the right concept) and Solution Delivery (engineering the validated concept into a final product). This article is focused squarely on that middle diamond: <strong>Solution Discovery</strong>.</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/01-diagram-triple-diamond-model.png"><img alt="Diagram of the Triple Diamond model: Problem Discovery, Solution Discovery, and Solution Delivery." decoding="async" fetchpriority="low" height="593" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/01-diagram-triple-diamond-model.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/01-diagram-triple-diamond-model.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/01-diagram-triple-diamond-model.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/01-diagram-triple-diamond-model.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/01-diagram-triple-diamond-model.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/01-diagram-triple-diamond-model.png 2000w" width="800"></img></a><figcaption>The Triple Diamond model and the prototyping sweet spot. (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/01-diagram-triple-diamond-model.png">Large preview</a>)</figcaption></figure><p>How AI can help with the preceding (Problem Discovery) and the following (Solution Delivery) stages is out of the scope of this article. Problem Discovery is less about prototyping and more about research, and while I believe AI can revolutionize the research process as well, I’ll leave that to people more knowledgeable in the field. As for Solution Delivery, it is more about engineering optimization. There’s no doubt that software engineering in the AI era is undergoing dramatic changes, but I’m not an engineer — I’m a designer, so let me focus on my “sweet spot”.</p><p>And my “sweet spot” has a specific flavor: <strong>designing enterprise applications</strong>. In this world, the main challenge is taming complexity: dealing with complicated data models and guiding users through non-linear workflows. This background has had a big impact on my approach to design, putting a lot of emphasis on the underlying logic and structure. This article explores the potential of AI through this lens.</p><p>I’ll start by outlining the typical artifacts designers create during Solution Discovery. Then, I’ll examine the problems with how this part of the process often plays out in practice. Finally, we’ll explore whether AI-powered prototyping can offer a better approach, and if so, whether it aligns with what people call “vibe coding,” or calls for a more deliberate and disciplined way of working.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="what-we-create-during-solution-discovery">What We Create During Solution Discovery</h2><p>The Solution Discovery phase begins with the key output from the preceding research: <strong>a well-defined problem</strong> and <strong>a core hypothesis for a solution</strong>. This is our starting point. The artifacts we create from here are all aimed at turning that initial hypothesis into a tangible, testable concept.</p><p>Traditionally, at this stage, designers can produce artifacts of different kinds, progressively increasing fidelity: from napkin sketches, boxes-and-arrows, and conceptual diagrams to hi-fi mockups, then to interactive prototypes, and in some cases even live prototypes. Artifacts of lower fidelity allow fast iteration and enable the exploration of many alternatives, while artifacts of higher fidelity help to understand, explain, and validate the concept in all its details.</p><p>It’s important to <strong>think holistically</strong>, considering different aspects of the solution. I would highlight three dimensions:</p><ol><li><strong>Conceptual model</strong>: Objects, relations, attributes, actions;</li><li><strong>Visualization</strong>: Screens, from rough sketches to hi-fi mockups;</li><li><strong>Flow</strong>: From the very high-level user journeys to more detailed ones.</li></ol><p>One can argue that those are layers rather than dimensions, and each of them builds on the previous ones (for example, according to <a href="https://www.interaction-design.org/literature/article/the-magic-of-semantic-interaction-design?srsltid=AfmBOoq4-4YG8RR7SDZn7CX1GJ1ZKNdiZx-trER7oKCefud3V2TjeumD">Semantic IxD</a> by Daniel Rosenberg), but I see them more as different facets of the same thing, so the design process through them is not necessarily linear: you may need to switch from one perspective to another many times.</p><p>This is how different types of design artifacts map to these dimensions:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/02-mapping-design-artifacts.png"><img alt="Diagram mapping design artifacts to dimensions of Conceptual Model, Visualization, and Flow." decoding="async" fetchpriority="low" height="596" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/02-mapping-design-artifacts.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/02-mapping-design-artifacts.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/02-mapping-design-artifacts.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/02-mapping-design-artifacts.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/02-mapping-design-artifacts.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/02-mapping-design-artifacts.png 2000w" width="800"></img></a><figcaption>Mapping design artifacts to dimensions of Conceptual Model, Visualization, and Flow. (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/02-mapping-design-artifacts.png">Large preview</a>)</figcaption></figure><p>As Solution Discovery progresses, designers move from the left part of this map to the right, from low-fidelity to high-fidelity, from ideating to validating, from diverging to converging.</p><p>Note that at the beginning of the process, different dimensions are supported by artifacts of different types (boxes-and-arrows, sketches, class diagrams, etc.), and only closer to the end can you build a live prototype that encompasses all three dimensions: conceptual model, visualization, and flow.</p><p>This progression shows a classic trade-off, like the difference between a pencil drawing and an oil painting. The drawing lets you explore ideas in the most flexible way, whereas the painting has a lot of detail and overall looks much more realistic, but is hard to adjust. Similarly, as we go towards artifacts that integrate all three dimensions at higher fidelity, our ability to iterate quickly and explore divergent ideas goes down. This inverse relationship has long been an accepted, almost unchallenged, limitation of the design process.</p><h2 id="the-problem-with-the-mockup-centric-approach">The Problem With The Mockup-Centric Approach</h2><p>Faced with this difficult trade-off, often teams opt for the easiest way out. On the one hand, they need to show that they are making progress and create things that appear detailed. On the other hand, they rarely can afford to build interactive or live prototypes. This leads them to over-invest in one type of artifact that seems to offer the best of both worlds. As a result, the neatly organized “bento box” of design artifacts we saw previously gets shrunk down to just one compartment: creating static high-fidelity mockups.</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/03-artifact-map-diagram.png"><img alt="The artifact map diagram, with “Hi-fi Mockup” enlarged to show an over-reliance on it." decoding="async" fetchpriority="low" height="388" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/03-artifact-map-diagram.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/03-artifact-map-diagram.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/03-artifact-map-diagram.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/03-artifact-map-diagram.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/03-artifact-map-diagram.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/03-artifact-map-diagram.png 2000w" width="800"></img></a><figcaption>The mockup-centric approach. (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/03-artifact-map-diagram.png">Large preview</a>)</figcaption></figure><p>This choice is understandable, as several forces push designers in this direction. Stakeholders are always eager to see nice pictures, while artifacts representing user flows and conceptual models receive much less attention and priority. They are too high-level and hardly usable for validation, and usually, not everyone can understand them.</p><p>On the other side of the fidelity spectrum, interactive prototypes require too much effort to create and maintain, and creating live prototypes in code used to require special skills (and again, effort). And even when teams make this investment, they do so at the end of Solution Discovery, during the convergence stage, when it is often too late to experiment with fundamentally different ideas. With so much effort already sunk, there is little appetite to go back to the drawing board.</p><p>It’s no surprise, then, that many teams default to the perceived safety of <strong>static mockups</strong>, seeing them as a middle ground between the roughness of the sketches and the overwhelming complexity and fragility that prototypes can have.</p><p>As a result, validation with users doesn’t provide enough confidence that the solution will actually solve the problem, and teams are forced to make a leap of faith to start building. To make matters worse, they do so without a clear understanding of the conceptual model, the user flows, and the interactions, because from the very beginning, designers’ attention has been heavily skewed toward visualization.</p><p>The result is often a design artifact that resembles the famous “horse drawing” meme: beautifully rendered in the parts everyone sees first (the mockups), but dangerously underdeveloped in its underlying structure (the conceptual model and flows).</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/04-lopsided-horse-problem.jpg"><img alt="The “horse drawing” meme, where the front is detailed and the back is a simple sketch." decoding="async" fetchpriority="low" height="541" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/04-lopsided-horse-problem.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/04-lopsided-horse-problem.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/04-lopsided-horse-problem.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/04-lopsided-horse-problem.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/04-lopsided-horse-problem.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/04-lopsided-horse-problem.jpg 2000w" width="800"></img></a><figcaption>The “lopsided horse” problem. (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/04-lopsided-horse-problem.jpg">Large preview</a>)</figcaption></figure><p>While this is a familiar problem across the industry, its severity <strong>depends on the nature of the project</strong>. If your core challenge is to optimize a well-understood, linear flow (like many B2C products), a mockup-centric approach can be perfectly adequate. The risks are contained, and the “lopsided horse” problem is unlikely to be fatal.</p><p>However, it’s different for the systems I specialize in: complex applications defined by intricate data models and non-linear, interconnected user flows. Here, the biggest risks are not on the surface but in the underlying structure, and a lack of attention to the latter would be a recipe for disaster.</p><h2 id="transforming-the-design-process">Transforming The Design Process</h2><p>This situation makes me wonder:</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aHow%20might%20we%20close%20the%20gap%20between%20our%20design%20intent%20and%20a%20live%20prototype,%20so%20that%20we%20can%20iterate%20on%20real%20functionality%20from%20day%20one?%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fintent-prototyping-pure-vibe-coding-enterprise-ux%2f">How might we close the gap between our design intent and a live prototype, so that we can iterate on real functionality from day one?</a></p></blockquote><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/05-design-intent-live-prototype.png"><img alt="Diagram showing bridging the gap between “Design Intent” and “Live Prototype.”" decoding="async" fetchpriority="low" height="397" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/05-design-intent-live-prototype.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/05-design-intent-live-prototype.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/05-design-intent-live-prototype.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/05-design-intent-live-prototype.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/05-design-intent-live-prototype.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/05-design-intent-live-prototype.png 2000w" width="800"></img></a><figcaption>How might we bridge the gap between design intent and a live prototype? (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/05-design-intent-live-prototype.png">Large preview</a>)</figcaption></figure><p>If we were able to answer this question, we would:</p><ul><li><strong>Learn faster.</strong><br></br>By going straight from intent to a testable artifact, we cut the feedback loop from weeks to days.</li><li><strong>Gain more confidence.</strong><br></br>Users interact with real logic, which gives us more proof that the idea works.</li><li><strong>Enforce conceptual clarity.</strong><br></br>A live prototype cannot hide a flawed or ambiguous conceptual model.</li><li><strong>Establish a clear and lasting source of truth.</strong><br></br>A live prototype, combined with a clearly documented design intent, provides the engineering team with an unambiguous specification.</li></ul><p>Of course, the desire for such a process is not new. This vision of a truly <strong>prototype-driven workflow</strong> is especially compelling for enterprise applications, where the benefits of faster learning and forced conceptual clarity are the best defense against costly structural flaws. But this ideal was still out of reach because prototyping in code took so much work and specialized talents. Now, the rise of powerful AI coding assistants changes this equation in a big way.</p><h2 id="the-seductive-promise-of-vibe-coding">The Seductive Promise Of “Vibe Coding”</h2><p>And the answer seems to be obvious: <strong>vibe coding</strong>!</p><blockquote>“Vibe coding is an artificial intelligence-assisted software development style popularized by Andrej Karpathy in early 2025. It describes a fast, improvisational, collaborative approach to creating software where the developer and a large language model (LLM) tuned for coding is acting rather like pair programmers in a conversational loop.”<p>— <a href="https://en.wikipedia.org/wiki/Vibe_coding">Wikipedia</a></p></blockquote><p>The original tweet by Andrej Karpathy:</p><figure><a href="https://x.com/karpathy/status/1886192184808149383"><img alt="Screenshot of Andrej Karpathy's tweet defining Vibe Coding." decoding="async" fetchpriority="low" height="552" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/06-andrej-karpathy-tweet.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/06-andrej-karpathy-tweet.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/06-andrej-karpathy-tweet.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/06-andrej-karpathy-tweet.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/06-andrej-karpathy-tweet.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/06-andrej-karpathy-tweet.png 2000w" width="800"></img></a><figcaption>Andrej Karpathy’s tweet that popularized the term “vibe coding”. (Image source: <a href="https://x.com/karpathy/status/1886192184808149383">X</a>) (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/06-andrej-karpathy-tweet.png">Large preview</a>)</figcaption></figure><p>The allure of this approach is undeniable. If you are not a developer, you are bound to feel awe when you describe a solution in plain language, and moments later, you can interact with it. This seems to be the ultimate fulfillment of our goal: a direct, frictionless path from an idea to a live prototype. But <strong>is this method reliable enough</strong> to build our new design process around it?</p><h3 id="the-trap-a-process-without-a-blueprint">The Trap: A Process Without A Blueprint</h3><p>Vibe coding mixes up a description of the UI with a description of the system itself, resulting in a <strong>prototype based on changing assumptions rather than a clear, solid model</strong>.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aThe%20pitfall%20of%20vibe%20coding%20is%20that%20it%20encourages%20us%20to%20express%20our%20intent%20in%20the%20most%20ambiguous%20way%20possible:%20by%20having%20a%20conversation.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fintent-prototyping-pure-vibe-coding-enterprise-ux%2f">The pitfall of vibe coding is that it encourages us to express our intent in the most ambiguous way possible: by having a conversation.</a></p></blockquote><p>This is like hiring a builder and telling them what to do one sentence at a time without ever presenting them a blueprint. They could make a wall that looks great, but you can’t be sure that it can hold weight.</p><p>I’ll give you one example illustrating problems you may face if you try to jump over the chasm between your idea and a live prototype relying on pure vibe coding in the spirit of Andrej Karpathy’s tweet. Imagine I want to prototype a solution to keep track of tests to validate product ideas. I open my vibe coding tool of choice (I intentionally don’t disclose its name, as I believe they all are awesome yet prone to similar pitfalls) and start with the following prompt:</p><div><pre><code>I need an app to track tests. For every test, I need to fill out the following data: - Hypothesis (we believe that...) - Experiment (to verify that, we will...) - When (a single date, or a period) - Status (New/Planned/In Progress/Proven/Disproven) </code></pre></div><p>And in a minute or so, I get a working prototype:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/7-test-tracker.png"><img alt="Screenshot of a simple Test Tracker app." decoding="async" fetchpriority="low" height="610" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/7-test-tracker.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/7-test-tracker.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/7-test-tracker.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/7-test-tracker.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/7-test-tracker.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/7-test-tracker.png 2000w" width="800"></img></a><figcaption>The initial prototype. (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/7-test-tracker.png">Large preview</a>)</figcaption></figure><p>Inspired by success, I go further:</p><div><pre><code>Please add the ability to specify a product idea for every test. Also, I want to filter tests by product ideas and see how many tests each product idea has in each status. </code></pre></div><p>And the result is still pretty good:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/8-test-tracker-updated.png"><img alt="The Test Tracker app screenshot, now with filtering by product ideas." decoding="async" fetchpriority="low" height="610" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/8-test-tracker-updated.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/8-test-tracker-updated.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/8-test-tracker-updated.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/8-test-tracker-updated.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/8-test-tracker-updated.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/8-test-tracker-updated.png 2000w" width="800"></img></a><figcaption>The prototype updated to include filtering tests by product ideas. (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/8-test-tracker-updated.png">Large preview</a>)</figcaption></figure><p>But then I want to extend the functionality related to product ideas:</p><div><pre><code>Okay, one more thing. For every product idea, I want to assess the impact score, the confidence score, and the ease score, and get the overall ICE score. Perhaps I need a separate page focused on the product idea, with all the relevant information and related tests. </code></pre></div><p>And from this point on, the results are getting more and more confusing.</p><p>The flow of creating tests hasn’t changed much. I can still create a bunch of tests, and they seem to be organized by product ideas. But when I click “Product Ideas” in the top navigation, I see nothing:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/9-product-ideas-page.png"><img alt="Screenshot of the app’s blank Product Ideas page." decoding="async" fetchpriority="low" height="518" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/9-product-ideas-page.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/9-product-ideas-page.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/9-product-ideas-page.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/9-product-ideas-page.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/9-product-ideas-page.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/9-product-ideas-page.png 2000w" width="800"></img></a><figcaption>The Product Ideas page is empty. (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/9-product-ideas-page.png">Large preview</a>)</figcaption></figure><p>I need to create my ideas from scratch, and they are not connected to the tests I created before:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/10-product-ideas-disconnected-tests.png"><img alt="Screenshot of the Product Ideas page with newly created ideas not connected to tests." decoding="async" fetchpriority="low" height="519" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/10-product-ideas-disconnected-tests.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/10-product-ideas-disconnected-tests.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/10-product-ideas-disconnected-tests.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/10-product-ideas-disconnected-tests.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/10-product-ideas-disconnected-tests.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/10-product-ideas-disconnected-tests.png 2000w" width="800"></img></a><figcaption>The newly created product ideas are disconnected from existing tests. (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/10-product-ideas-disconnected-tests.png">Large preview</a>)</figcaption></figure><p>Moreover, when I go back to “Tests”, I see that they are all gone. Clearly something went wrong, and my AI assistant confirms that:</p><blockquote>No, this is not expected behavior — it’s a bug! The issue is that tests are being stored in two separate places (local state in the Index page and App state), so tests created on the main page don’t sync with the product ideas page.</blockquote><p>Sure, eventually it fixed that bug, but note that we encountered this just on the third step, when we asked to slightly extend the functionality of a very simple app. The more layers of complexity we add, the more roadblocks of this sort we are bound to face.</p><p>Also note that this specific problem of a not fully thought-out relationship between two entities (product ideas and tests) is not isolated at the technical level, and therefore, it didn’t go away once the technical bug was fixed. The underlying conceptual model is still broken, and it manifests in the UI as well.</p><p>For example, you can still create “orphan” tests that are not connected to any item from the “Product Ideas” page. As a result, you may end up with different numbers of ideas and tests on different pages of the app:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/11-conflicting-data-tests-product-ideas-page.png"><img alt="Diagram showing conflicting data between the Tests page and the Product Ideas page." decoding="async" fetchpriority="low" height="305" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/11-conflicting-data-tests-product-ideas-page.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/11-conflicting-data-tests-product-ideas-page.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/11-conflicting-data-tests-product-ideas-page.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/11-conflicting-data-tests-product-ideas-page.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/11-conflicting-data-tests-product-ideas-page.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/11-conflicting-data-tests-product-ideas-page.png 2000w" width="800"></img></a><figcaption>A poorly defined conceptual model leads to data inconsistencies across the app. (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/11-conflicting-data-tests-product-ideas-page.png">Large preview</a>)</figcaption></figure><p>Let’s diagnose what really happened here. The AI’s response that this is a “bug” is only half the story. The true root cause is a <strong>conceptual model failure</strong>. My prompts never explicitly defined the relationship between product ideas and tests. The AI was forced to guess, which led to the broken experience. For a simple demo, this might be a fixable annoyance. But for a data-heavy enterprise application, this kind of structural ambiguity is fatal. It demonstrates <strong>the fundamental weakness of building without a blueprint</strong>, which is precisely what vibe coding encourages.</p><p>Don’t take this as a criticism of vibe coding tools. They are creating real magic. However, the fundamental truth about “garbage in, garbage out” is still valid. If you don’t express your intent clearly enough, chances are the result won’t fulfill your expectations.</p><p>Another problem worth mentioning is that even if you wrestle it into a state that works, <strong>the artifact is a black box</strong> that can hardly serve as reliable specifications for the final product. The initial meaning is lost in the conversation, and all that’s left is the end result. This makes the development team “code archaeologists,” who have to figure out what the designer was thinking by reverse-engineering the AI’s code, which is frequently very complicated. Any speed gained at the start is lost right away because of this friction and uncertainty.</p><h2 id="from-fast-magic-to-a-solid-foundation">From Fast Magic To A Solid Foundation</h2><p>Pure vibe coding, for all its allure, encourages building without a blueprint. As we’ve seen, this results in <strong>structural ambiguity</strong>, which is not acceptable when designing complex applications. We are left with a seemingly quick but fragile process that creates a black box that is difficult to iterate on and even more so to hand off.</p><p>This leads us back to our main question: how might we close the gap between our design intent and a live prototype, so that we can iterate on real functionality from day one, without getting caught in the ambiguity trap? The answer lies in a more methodical, disciplined, and therefore trustworthy process.</p><p>In <strong>Part 2</strong> of this series, “A Practical Guide to Building with Clarity”, I will outline the entire workflow for <strong>Intent Prototyping.</strong> This method places the explicit <em>intent</em> of the designer at the forefront of the process while embracing the potential of AI-assisted coding.</p><p>Thank you for reading, and I look forward to seeing you in Part 2.</p><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/intent-prototyping-pure-vibe-coding-enterprise-ux.jpg" /><h1>The Allure And Danger Of Pure Vibe Coding In Enterprise UX (Part 1) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>14 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/process">Process</a>, <a href="http://www.smashingmagazine.com/category/ai">AI</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Yegor Gilyov examines the problem of over-reliance on static high-fidelity mockups, which often leave the conceptual model and user flows dangerously underdeveloped. He then explores whether AI-powered prototyping is the answer, questioning whether the path forward is the popular “vibe coding” approach or a more structured, intent-driven approach.</section></p><p>There is a spectrum of opinions on how dramatically all creative professions will be changed by the coming wave of agentic AI, from the very skeptical to the wildly optimistic and even apocalyptic. I think that even if you are on the “skeptical” end of the spectrum, it makes sense to explore ways this new technology can help with your everyday work. As for my everyday work, I’ve been doing UX and product design for about 25 years now, and I’m always keen to learn new tricks and share them with colleagues. Right now, I’m interested in <strong>AI-assisted prototyping</strong>, and I’m here to share my thoughts on how it can change the process of designing digital products.</p><p>To set your expectations up front: this exploration focuses on a specific part of the product design lifecycle. Many people know about the Double Diamond framework, which shows the path from problem to solution. However, I think it’s the <a href="https://uxdesign.cc/why-the-double-diamond-isnt-enough-adaa48a8aec1">Triple Diamond model</a> that makes an important point for our needs. It explicitly separates the solution space into two phases: Solution Discovery (ideating and validating the right concept) and Solution Delivery (engineering the validated concept into a final product). This article is focused squarely on that middle diamond: <strong>Solution Discovery</strong>.</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/01-diagram-triple-diamond-model.png"><img alt="Diagram of the Triple Diamond model: Problem Discovery, Solution Discovery, and Solution Delivery." decoding="async" fetchpriority="low" height="593" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/01-diagram-triple-diamond-model.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/01-diagram-triple-diamond-model.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/01-diagram-triple-diamond-model.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/01-diagram-triple-diamond-model.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/01-diagram-triple-diamond-model.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/01-diagram-triple-diamond-model.png 2000w" width="800"></img></a><figcaption>The Triple Diamond model and the prototyping sweet spot. (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/01-diagram-triple-diamond-model.png">Large preview</a>)</figcaption></figure><p>How AI can help with the preceding (Problem Discovery) and the following (Solution Delivery) stages is out of the scope of this article. Problem Discovery is less about prototyping and more about research, and while I believe AI can revolutionize the research process as well, I’ll leave that to people more knowledgeable in the field. As for Solution Delivery, it is more about engineering optimization. There’s no doubt that software engineering in the AI era is undergoing dramatic changes, but I’m not an engineer — I’m a designer, so let me focus on my “sweet spot”.</p><p>And my “sweet spot” has a specific flavor: <strong>designing enterprise applications</strong>. In this world, the main challenge is taming complexity: dealing with complicated data models and guiding users through non-linear workflows. This background has had a big impact on my approach to design, putting a lot of emphasis on the underlying logic and structure. This article explores the potential of AI through this lens.</p><p>I’ll start by outlining the typical artifacts designers create during Solution Discovery. Then, I’ll examine the problems with how this part of the process often plays out in practice. Finally, we’ll explore whether AI-powered prototyping can offer a better approach, and if so, whether it aligns with what people call “vibe coding,” or calls for a more deliberate and disciplined way of working.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="what-we-create-during-solution-discovery">What We Create During Solution Discovery</h2><p>The Solution Discovery phase begins with the key output from the preceding research: <strong>a well-defined problem</strong> and <strong>a core hypothesis for a solution</strong>. This is our starting point. The artifacts we create from here are all aimed at turning that initial hypothesis into a tangible, testable concept.</p><p>Traditionally, at this stage, designers can produce artifacts of different kinds, progressively increasing fidelity: from napkin sketches, boxes-and-arrows, and conceptual diagrams to hi-fi mockups, then to interactive prototypes, and in some cases even live prototypes. Artifacts of lower fidelity allow fast iteration and enable the exploration of many alternatives, while artifacts of higher fidelity help to understand, explain, and validate the concept in all its details.</p><p>It’s important to <strong>think holistically</strong>, considering different aspects of the solution. I would highlight three dimensions:</p><ol><li><strong>Conceptual model</strong>: Objects, relations, attributes, actions;</li><li><strong>Visualization</strong>: Screens, from rough sketches to hi-fi mockups;</li><li><strong>Flow</strong>: From the very high-level user journeys to more detailed ones.</li></ol><p>One can argue that those are layers rather than dimensions, and each of them builds on the previous ones (for example, according to <a href="https://www.interaction-design.org/literature/article/the-magic-of-semantic-interaction-design?srsltid=AfmBOoq4-4YG8RR7SDZn7CX1GJ1ZKNdiZx-trER7oKCefud3V2TjeumD">Semantic IxD</a> by Daniel Rosenberg), but I see them more as different facets of the same thing, so the design process through them is not necessarily linear: you may need to switch from one perspective to another many times.</p><p>This is how different types of design artifacts map to these dimensions:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/02-mapping-design-artifacts.png"><img alt="Diagram mapping design artifacts to dimensions of Conceptual Model, Visualization, and Flow." decoding="async" fetchpriority="low" height="596" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/02-mapping-design-artifacts.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/02-mapping-design-artifacts.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/02-mapping-design-artifacts.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/02-mapping-design-artifacts.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/02-mapping-design-artifacts.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/02-mapping-design-artifacts.png 2000w" width="800"></img></a><figcaption>Mapping design artifacts to dimensions of Conceptual Model, Visualization, and Flow. (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/02-mapping-design-artifacts.png">Large preview</a>)</figcaption></figure><p>As Solution Discovery progresses, designers move from the left part of this map to the right, from low-fidelity to high-fidelity, from ideating to validating, from diverging to converging.</p><p>Note that at the beginning of the process, different dimensions are supported by artifacts of different types (boxes-and-arrows, sketches, class diagrams, etc.), and only closer to the end can you build a live prototype that encompasses all three dimensions: conceptual model, visualization, and flow.</p><p>This progression shows a classic trade-off, like the difference between a pencil drawing and an oil painting. The drawing lets you explore ideas in the most flexible way, whereas the painting has a lot of detail and overall looks much more realistic, but is hard to adjust. Similarly, as we go towards artifacts that integrate all three dimensions at higher fidelity, our ability to iterate quickly and explore divergent ideas goes down. This inverse relationship has long been an accepted, almost unchallenged, limitation of the design process.</p><h2 id="the-problem-with-the-mockup-centric-approach">The Problem With The Mockup-Centric Approach</h2><p>Faced with this difficult trade-off, often teams opt for the easiest way out. On the one hand, they need to show that they are making progress and create things that appear detailed. On the other hand, they rarely can afford to build interactive or live prototypes. This leads them to over-invest in one type of artifact that seems to offer the best of both worlds. As a result, the neatly organized “bento box” of design artifacts we saw previously gets shrunk down to just one compartment: creating static high-fidelity mockups.</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/03-artifact-map-diagram.png"><img alt="The artifact map diagram, with “Hi-fi Mockup” enlarged to show an over-reliance on it." decoding="async" fetchpriority="low" height="388" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/03-artifact-map-diagram.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/03-artifact-map-diagram.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/03-artifact-map-diagram.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/03-artifact-map-diagram.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/03-artifact-map-diagram.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/03-artifact-map-diagram.png 2000w" width="800"></img></a><figcaption>The mockup-centric approach. (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/03-artifact-map-diagram.png">Large preview</a>)</figcaption></figure><p>This choice is understandable, as several forces push designers in this direction. Stakeholders are always eager to see nice pictures, while artifacts representing user flows and conceptual models receive much less attention and priority. They are too high-level and hardly usable for validation, and usually, not everyone can understand them.</p><p>On the other side of the fidelity spectrum, interactive prototypes require too much effort to create and maintain, and creating live prototypes in code used to require special skills (and again, effort). And even when teams make this investment, they do so at the end of Solution Discovery, during the convergence stage, when it is often too late to experiment with fundamentally different ideas. With so much effort already sunk, there is little appetite to go back to the drawing board.</p><p>It’s no surprise, then, that many teams default to the perceived safety of <strong>static mockups</strong>, seeing them as a middle ground between the roughness of the sketches and the overwhelming complexity and fragility that prototypes can have.</p><p>As a result, validation with users doesn’t provide enough confidence that the solution will actually solve the problem, and teams are forced to make a leap of faith to start building. To make matters worse, they do so without a clear understanding of the conceptual model, the user flows, and the interactions, because from the very beginning, designers’ attention has been heavily skewed toward visualization.</p><p>The result is often a design artifact that resembles the famous “horse drawing” meme: beautifully rendered in the parts everyone sees first (the mockups), but dangerously underdeveloped in its underlying structure (the conceptual model and flows).</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/04-lopsided-horse-problem.jpg"><img alt="The “horse drawing” meme, where the front is detailed and the back is a simple sketch." decoding="async" fetchpriority="low" height="541" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/04-lopsided-horse-problem.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/04-lopsided-horse-problem.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/04-lopsided-horse-problem.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/04-lopsided-horse-problem.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/04-lopsided-horse-problem.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/04-lopsided-horse-problem.jpg 2000w" width="800"></img></a><figcaption>The “lopsided horse” problem. (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/04-lopsided-horse-problem.jpg">Large preview</a>)</figcaption></figure><p>While this is a familiar problem across the industry, its severity <strong>depends on the nature of the project</strong>. If your core challenge is to optimize a well-understood, linear flow (like many B2C products), a mockup-centric approach can be perfectly adequate. The risks are contained, and the “lopsided horse” problem is unlikely to be fatal.</p><p>However, it’s different for the systems I specialize in: complex applications defined by intricate data models and non-linear, interconnected user flows. Here, the biggest risks are not on the surface but in the underlying structure, and a lack of attention to the latter would be a recipe for disaster.</p><h2 id="transforming-the-design-process">Transforming The Design Process</h2><p>This situation makes me wonder:</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aHow%20might%20we%20close%20the%20gap%20between%20our%20design%20intent%20and%20a%20live%20prototype,%20so%20that%20we%20can%20iterate%20on%20real%20functionality%20from%20day%20one?%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fintent-prototyping-pure-vibe-coding-enterprise-ux%2f">How might we close the gap between our design intent and a live prototype, so that we can iterate on real functionality from day one?</a></p></blockquote><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/05-design-intent-live-prototype.png"><img alt="Diagram showing bridging the gap between “Design Intent” and “Live Prototype.”" decoding="async" fetchpriority="low" height="397" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/05-design-intent-live-prototype.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/05-design-intent-live-prototype.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/05-design-intent-live-prototype.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/05-design-intent-live-prototype.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/05-design-intent-live-prototype.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/05-design-intent-live-prototype.png 2000w" width="800"></img></a><figcaption>How might we bridge the gap between design intent and a live prototype? (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/05-design-intent-live-prototype.png">Large preview</a>)</figcaption></figure><p>If we were able to answer this question, we would:</p><ul><li><strong>Learn faster.</strong><br></br>By going straight from intent to a testable artifact, we cut the feedback loop from weeks to days.</li><li><strong>Gain more confidence.</strong><br></br>Users interact with real logic, which gives us more proof that the idea works.</li><li><strong>Enforce conceptual clarity.</strong><br></br>A live prototype cannot hide a flawed or ambiguous conceptual model.</li><li><strong>Establish a clear and lasting source of truth.</strong><br></br>A live prototype, combined with a clearly documented design intent, provides the engineering team with an unambiguous specification.</li></ul><p>Of course, the desire for such a process is not new. This vision of a truly <strong>prototype-driven workflow</strong> is especially compelling for enterprise applications, where the benefits of faster learning and forced conceptual clarity are the best defense against costly structural flaws. But this ideal was still out of reach because prototyping in code took so much work and specialized talents. Now, the rise of powerful AI coding assistants changes this equation in a big way.</p><h2 id="the-seductive-promise-of-vibe-coding">The Seductive Promise Of “Vibe Coding”</h2><p>And the answer seems to be obvious: <strong>vibe coding</strong>!</p><blockquote>“Vibe coding is an artificial intelligence-assisted software development style popularized by Andrej Karpathy in early 2025. It describes a fast, improvisational, collaborative approach to creating software where the developer and a large language model (LLM) tuned for coding is acting rather like pair programmers in a conversational loop.”<p>— <a href="https://en.wikipedia.org/wiki/Vibe_coding">Wikipedia</a></p></blockquote><p>The original tweet by Andrej Karpathy:</p><figure><a href="https://x.com/karpathy/status/1886192184808149383"><img alt="Screenshot of Andrej Karpathy's tweet defining Vibe Coding." decoding="async" fetchpriority="low" height="552" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/06-andrej-karpathy-tweet.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/06-andrej-karpathy-tweet.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/06-andrej-karpathy-tweet.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/06-andrej-karpathy-tweet.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/06-andrej-karpathy-tweet.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/06-andrej-karpathy-tweet.png 2000w" width="800"></img></a><figcaption>Andrej Karpathy’s tweet that popularized the term “vibe coding”. (Image source: <a href="https://x.com/karpathy/status/1886192184808149383">X</a>) (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/06-andrej-karpathy-tweet.png">Large preview</a>)</figcaption></figure><p>The allure of this approach is undeniable. If you are not a developer, you are bound to feel awe when you describe a solution in plain language, and moments later, you can interact with it. This seems to be the ultimate fulfillment of our goal: a direct, frictionless path from an idea to a live prototype. But <strong>is this method reliable enough</strong> to build our new design process around it?</p><h3 id="the-trap-a-process-without-a-blueprint">The Trap: A Process Without A Blueprint</h3><p>Vibe coding mixes up a description of the UI with a description of the system itself, resulting in a <strong>prototype based on changing assumptions rather than a clear, solid model</strong>.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aThe%20pitfall%20of%20vibe%20coding%20is%20that%20it%20encourages%20us%20to%20express%20our%20intent%20in%20the%20most%20ambiguous%20way%20possible:%20by%20having%20a%20conversation.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fintent-prototyping-pure-vibe-coding-enterprise-ux%2f">The pitfall of vibe coding is that it encourages us to express our intent in the most ambiguous way possible: by having a conversation.</a></p></blockquote><p>This is like hiring a builder and telling them what to do one sentence at a time without ever presenting them a blueprint. They could make a wall that looks great, but you can’t be sure that it can hold weight.</p><p>I’ll give you one example illustrating problems you may face if you try to jump over the chasm between your idea and a live prototype relying on pure vibe coding in the spirit of Andrej Karpathy’s tweet. Imagine I want to prototype a solution to keep track of tests to validate product ideas. I open my vibe coding tool of choice (I intentionally don’t disclose its name, as I believe they all are awesome yet prone to similar pitfalls) and start with the following prompt:</p><div><pre><code>I need an app to track tests. For every test, I need to fill out the following data: - Hypothesis (we believe that...) - Experiment (to verify that, we will...) - When (a single date, or a period) - Status (New/Planned/In Progress/Proven/Disproven) </code></pre></div><p>And in a minute or so, I get a working prototype:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/7-test-tracker.png"><img alt="Screenshot of a simple Test Tracker app." decoding="async" fetchpriority="low" height="610" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/7-test-tracker.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/7-test-tracker.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/7-test-tracker.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/7-test-tracker.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/7-test-tracker.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/7-test-tracker.png 2000w" width="800"></img></a><figcaption>The initial prototype. (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/7-test-tracker.png">Large preview</a>)</figcaption></figure><p>Inspired by success, I go further:</p><div><pre><code>Please add the ability to specify a product idea for every test. Also, I want to filter tests by product ideas and see how many tests each product idea has in each status. </code></pre></div><p>And the result is still pretty good:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/8-test-tracker-updated.png"><img alt="The Test Tracker app screenshot, now with filtering by product ideas." decoding="async" fetchpriority="low" height="610" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/8-test-tracker-updated.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/8-test-tracker-updated.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/8-test-tracker-updated.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/8-test-tracker-updated.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/8-test-tracker-updated.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/8-test-tracker-updated.png 2000w" width="800"></img></a><figcaption>The prototype updated to include filtering tests by product ideas. (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/8-test-tracker-updated.png">Large preview</a>)</figcaption></figure><p>But then I want to extend the functionality related to product ideas:</p><div><pre><code>Okay, one more thing. For every product idea, I want to assess the impact score, the confidence score, and the ease score, and get the overall ICE score. Perhaps I need a separate page focused on the product idea, with all the relevant information and related tests. </code></pre></div><p>And from this point on, the results are getting more and more confusing.</p><p>The flow of creating tests hasn’t changed much. I can still create a bunch of tests, and they seem to be organized by product ideas. But when I click “Product Ideas” in the top navigation, I see nothing:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/9-product-ideas-page.png"><img alt="Screenshot of the app’s blank Product Ideas page." decoding="async" fetchpriority="low" height="518" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/9-product-ideas-page.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/9-product-ideas-page.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/9-product-ideas-page.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/9-product-ideas-page.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/9-product-ideas-page.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/9-product-ideas-page.png 2000w" width="800"></img></a><figcaption>The Product Ideas page is empty. (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/9-product-ideas-page.png">Large preview</a>)</figcaption></figure><p>I need to create my ideas from scratch, and they are not connected to the tests I created before:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/10-product-ideas-disconnected-tests.png"><img alt="Screenshot of the Product Ideas page with newly created ideas not connected to tests." decoding="async" fetchpriority="low" height="519" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/10-product-ideas-disconnected-tests.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/10-product-ideas-disconnected-tests.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/10-product-ideas-disconnected-tests.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/10-product-ideas-disconnected-tests.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/10-product-ideas-disconnected-tests.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/10-product-ideas-disconnected-tests.png 2000w" width="800"></img></a><figcaption>The newly created product ideas are disconnected from existing tests. (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/10-product-ideas-disconnected-tests.png">Large preview</a>)</figcaption></figure><p>Moreover, when I go back to “Tests”, I see that they are all gone. Clearly something went wrong, and my AI assistant confirms that:</p><blockquote>No, this is not expected behavior — it’s a bug! The issue is that tests are being stored in two separate places (local state in the Index page and App state), so tests created on the main page don’t sync with the product ideas page.</blockquote><p>Sure, eventually it fixed that bug, but note that we encountered this just on the third step, when we asked to slightly extend the functionality of a very simple app. The more layers of complexity we add, the more roadblocks of this sort we are bound to face.</p><p>Also note that this specific problem of a not fully thought-out relationship between two entities (product ideas and tests) is not isolated at the technical level, and therefore, it didn’t go away once the technical bug was fixed. The underlying conceptual model is still broken, and it manifests in the UI as well.</p><p>For example, you can still create “orphan” tests that are not connected to any item from the “Product Ideas” page. As a result, you may end up with different numbers of ideas and tests on different pages of the app:</p><figure><a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/11-conflicting-data-tests-product-ideas-page.png"><img alt="Diagram showing conflicting data between the Tests page and the Product Ideas page." decoding="async" fetchpriority="low" height="305" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/11-conflicting-data-tests-product-ideas-page.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/11-conflicting-data-tests-product-ideas-page.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/11-conflicting-data-tests-product-ideas-page.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/11-conflicting-data-tests-product-ideas-page.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/11-conflicting-data-tests-product-ideas-page.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/11-conflicting-data-tests-product-ideas-page.png 2000w" width="800"></img></a><figcaption>A poorly defined conceptual model leads to data inconsistencies across the app. (<a href="https://files.smashing.media/articles/intent-prototyping-pure-vibe-coding-enterprise-ux/11-conflicting-data-tests-product-ideas-page.png">Large preview</a>)</figcaption></figure><p>Let’s diagnose what really happened here. The AI’s response that this is a “bug” is only half the story. The true root cause is a <strong>conceptual model failure</strong>. My prompts never explicitly defined the relationship between product ideas and tests. The AI was forced to guess, which led to the broken experience. For a simple demo, this might be a fixable annoyance. But for a data-heavy enterprise application, this kind of structural ambiguity is fatal. It demonstrates <strong>the fundamental weakness of building without a blueprint</strong>, which is precisely what vibe coding encourages.</p><p>Don’t take this as a criticism of vibe coding tools. They are creating real magic. However, the fundamental truth about “garbage in, garbage out” is still valid. If you don’t express your intent clearly enough, chances are the result won’t fulfill your expectations.</p><p>Another problem worth mentioning is that even if you wrestle it into a state that works, <strong>the artifact is a black box</strong> that can hardly serve as reliable specifications for the final product. The initial meaning is lost in the conversation, and all that’s left is the end result. This makes the development team “code archaeologists,” who have to figure out what the designer was thinking by reverse-engineering the AI’s code, which is frequently very complicated. Any speed gained at the start is lost right away because of this friction and uncertainty.</p><h2 id="from-fast-magic-to-a-solid-foundation">From Fast Magic To A Solid Foundation</h2><p>Pure vibe coding, for all its allure, encourages building without a blueprint. As we’ve seen, this results in <strong>structural ambiguity</strong>, which is not acceptable when designing complex applications. We are left with a seemingly quick but fragile process that creates a black box that is difficult to iterate on and even more so to hand off.</p><p>This leads us back to our main question: how might we close the gap between our design intent and a live prototype, so that we can iterate on real functionality from day one, without getting caught in the ambiguity trap? The answer lies in a more methodical, disciplined, and therefore trustworthy process.</p><p>In <strong>Part 2</strong> of this series, “A Practical Guide to Building with Clarity”, I will outline the entire workflow for <strong>Intent Prototyping.</strong> This method places the explicit <em>intent</em> of the designer at the forefront of the process while embracing the potential of AI-assisted coding.</p><p>Thank you for reading, and I look forward to seeing you in Part 2.</p><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (Yegor Gilyov) <![CDATA[Ambient Animations In Web Design: Principles And Implementation (Part 1)]]> https://smashingmagazine.com/2025/09/ambient-animations-web-design-principles-implementation/ https://smashingmagazine.com/2025/09/ambient-animations-web-design-principles-implementation/ Mon, 22 Sep 2025 13:00:00 GMT <img src="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/ambient-animations-web-design-principles-implementation.jpg" /><h1>Principles And Implementation (Part 1) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>9 min read</li><li><a href="http://www.smashingmagazine.com/category/animation">Animation</a>, <a href="http://www.smashingmagazine.com/category/css">CSS</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/svg">SVG</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Creating motion can be tricky. Too much and it’s distracting. Too little and a design feels flat. Ambient animations are the middle ground — subtle, slow-moving details that add atmosphere without stealing the show. In this article, web design pioneer <a href="https://stuffandnonsense.co.uk">Andy Clarke</a> introduces the concept of ambient animations and explains how to implement them.</section></div><p>Unlike <em>timeline-based</em> animations, which tell stories across a sequence of events, or <em>interaction</em> animations that are triggered when someone touches something, <strong>ambient animations</strong> are the kind of passive movements you might not notice at first. But, they make a design look alive in subtle ways.</p><p>In an ambient animation, elements might subtly transition between colours, move slowly, or gradually shift position. Elements can appear and disappear, change size, or they could rotate slowly.</p><p>Ambient animations aren’t intrusive; they don’t demand attention, aren’t distracting, and don’t interfere with what someone’s trying to achieve when they use a product or website. They can be playful, too, making someone smile when they catch sight of them. That way, ambient animations <strong>add depth to a brand’s personality</strong>.</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/1-quick-draw-mcgraw-comic-book.png"><img alt="A three-page spread of a Quick Draw McGraw comic book including the animated cover and first two pages." decoding="async" fetchpriority="low" height="399" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/1-quick-draw-mcgraw-comic-book.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/1-quick-draw-mcgraw-comic-book.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/1-quick-draw-mcgraw-comic-book.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/1-quick-draw-mcgraw-comic-book.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/1-quick-draw-mcgraw-comic-book.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/1-quick-draw-mcgraw-comic-book.png 2000w" width="800"></img></a><figcaption>Hanna-Barbera’s Quick Draw McGraw © Warner Bros. Entertainment Inc. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/1-quick-draw-mcgraw-comic-book.png">Large preview</a>)</figcaption></figure><p>To illustrate the concept of ambient animations, I’ve recreated the cover of a <a href="https://en.wikipedia.org/wiki/Quick_Draw_McGraw"><em>Quick Draw McGraw</em></a> <a href="https://dn720005.ca.archive.org/0/items/QuickDrawMcGrawCharlton/Quick%20Draw%20McGraw%20%233%20%28Charlton%201971%29.pdf">comic book</a> (PDF) as a CSS/SVG animation. The comic was published by Charlton Comics in 1971, and, being printed, these characters didn’t move, making them ideal candidates to transform into ambient animations.</p><p><strong>FYI</strong>: Original cover artist <a href="https://www.lambiek.net/artists/d/dirgo_ray.htm">Ray Dirgo</a> was best known for his work drawing Hanna-Barbera characters for Charlton Comics during the 1970s. Ray passed away in 2000 at the age of 92. He outlived Charlton Comics, which went out of business in 1986, and DC Comics acquired its characters.</p><p><strong>Tip</strong>: You can view the complete ambient animation <a href="https://codepen.io/malarkey/pen/NPGrWVy">code on CodePen</a>.</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/2-quick-draw-mcgraw-ambient-animations.png"><img alt="Quick Draw McGraw ambient animations." decoding="async" fetchpriority="low" height="484" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/2-quick-draw-mcgraw-ambient-animations.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/2-quick-draw-mcgraw-ambient-animations.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/2-quick-draw-mcgraw-ambient-animations.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/2-quick-draw-mcgraw-ambient-animations.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/2-quick-draw-mcgraw-ambient-animations.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/2-quick-draw-mcgraw-ambient-animations.png 2000w" width="800"></img></a><figcaption>Quick Draw McGraw ambient animations. (<a href="https://codepen.io/malarkey/pen/NPGrWVy">Live Demo</a>) (<a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/2-quick-draw-mcgraw-ambient-animations.png">Large preview</a>)</figcaption></figure><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="choosing-elements-to-animate">Choosing Elements To Animate</h2><p>Not everything on a page or in a graphic needs to move, and part of designing an ambient animation is <strong>knowing when to stop</strong>. The trick is to pick elements that lend themselves naturally to subtle movement, rather than forcing motion into places where it doesn’t belong.</p><h3 id="natural-motion-cues">Natural Motion Cues</h3><p>When I’m deciding what to animate, I look for natural motion cues and think about when something would move naturally in the real world. I ask myself: <em>“Does this thing have weight?”</em>, <em>“Is it flexible?”</em>, and <em>“Would it move in real life?”</em> If the answer’s <em>“yes,”</em> it’ll probably feel right if it moves. There are several motion cues in Ray Dirgo’s cover artwork.</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/3-pipe-feathers-toon-title-card.png"><img alt="Vibrantly illustrated pipe adorned with two feathers on the end against a silhouetted toon title card." decoding="async" fetchpriority="low" height="484" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/3-pipe-feathers-toon-title-card.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/3-pipe-feathers-toon-title-card.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/3-pipe-feathers-toon-title-card.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/3-pipe-feathers-toon-title-card.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/3-pipe-feathers-toon-title-card.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/3-pipe-feathers-toon-title-card.png 2000w" width="800"></img></a><figcaption>Pipe and feathers swing slightly. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/3-pipe-feathers-toon-title-card.png">Large preview</a>)</figcaption></figure><p>For example, the peace pipe Quick Draw’s puffing on has two feathers hanging from it. They swing slightly left and right by three degrees as the pipe moves, just like real feathers would.</p><div><pre><code>#quick-draw-pipe { animation: quick-draw-pipe-rotate 6s ease-in-out infinite alternate; } @keyframes quick-draw-pipe-rotate { 0% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } } #quick-draw-feather-1 { animation: quick-draw-feather-1-rotate 3s ease-in-out infinite alternate; } #quick-draw-feather-2 { animation: quick-draw-feather-2-rotate 3s ease-in-out infinite alternate; } @keyframes quick-draw-feather-1-rotate { 0% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } } @keyframes quick-draw-feather-2-rotate { 0% { transform: rotate(-3deg); } 100% { transform: rotate(3deg); } } </code></pre></div><h3 id="atmosphere-not-action">Atmosphere, Not Action</h3><p>I often choose elements or decorative details that add to the vibe but don’t fight for attention.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aAmbient%20animations%20aren%e2%80%99t%20about%20signalling%20to%20someone%20where%20they%20should%20look;%20they%e2%80%99re%20about%20creating%20a%20mood.%20%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fambient-animations-web-design-principles-implementation%2f">Ambient animations aren’t about signalling to someone where they should look; they’re about creating a mood.</a></p></blockquote><p>Here, the chief slowly and subtly rises and falls as he puffs on his pipe.</p><pre><code>#chief { animation: chief-rise-fall 3s ease-in-out infinite alternate; } @keyframes chief-group-rise-fall { 0% { transform: translateY(0); } 100% { transform: translateY(-20px); } } </code></pre><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/4-chief-toon-title-card.png"><img alt="An illustrated Indian chief seated and puffing on a pipe against a silhouetted toon title card." decoding="async" fetchpriority="low" height="484" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/4-chief-toon-title-card.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/4-chief-toon-title-card.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/4-chief-toon-title-card.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/4-chief-toon-title-card.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/4-chief-toon-title-card.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/4-chief-toon-title-card.png 2000w" width="800"></img></a><figcaption>The chief rises and falls as he puffs on his pipe. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/4-chief-toon-title-card.png">Large preview</a>)</figcaption></figure><p>For added effect, the feather on his head also moves in time with his rise and fall:</p><div><pre><code>#chief-feather-1 { animation: chief-feather-1-rotate 3s ease-in-out infinite alternate; } #chief-feather-2 { animation: chief-feather-2-rotate 3s ease-in-out infinite alternate; } @keyframes chief-feather-1-rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(-9deg); } } @keyframes chief-feather-2-rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(9deg); } } </code></pre></div><h3 id="playfulness-and-fun">Playfulness And Fun</h3><p>One of the things I love most about ambient animations is how they bring fun into a design. They’re an opportunity to <strong>demonstrate personality</strong> through playful details that make people smile when they notice them.</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/5-closeup-illustrated-chief-head.png"><img alt="Closeup of the illustrated chief’s head and face." decoding="async" fetchpriority="low" height="484" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/5-closeup-illustrated-chief-head.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/5-closeup-illustrated-chief-head.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/5-closeup-illustrated-chief-head.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/5-closeup-illustrated-chief-head.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/5-closeup-illustrated-chief-head.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/5-closeup-illustrated-chief-head.png 2000w" width="800"></img></a><figcaption>The chief’s eyebrows rise and fall, and his eyes cross. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/5-closeup-illustrated-chief-head.png">Large preview</a>)</figcaption></figure><p>Take a closer look at the chief, and you might spot his eyebrows raising and his eyes crossing as he puffs hard on his pipe. Quick Draw’s eyebrows also bounce at what look like random intervals.</p><pre><code>#quick-draw-eyebrow { animation: quick-draw-eyebrow-raise 5s ease-in-out infinite; } @keyframes quick-draw-eyebrow-raise { 0%, 20%, 60%, 100% { transform: translateY(0); } 10%, 50%, 80% { transform: translateY(-10px); } } </code></pre><h2 id="keep-hierarchy-in-mind">Keep Hierarchy In Mind</h2><p>Motion draws the eye, and even subtle movements have a visual weight. So, I reserve the most obvious animations for elements that I need to create the biggest impact.</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/6-illustrated-duick-draw-mcgraw.png"><img alt="Illustrated Quick Draw McGraw holding the feather-adorned pipe with dizzy eyes veering right." decoding="async" fetchpriority="low" height="484" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/6-illustrated-duick-draw-mcgraw.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/6-illustrated-duick-draw-mcgraw.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/6-illustrated-duick-draw-mcgraw.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/6-illustrated-duick-draw-mcgraw.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/6-illustrated-duick-draw-mcgraw.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/6-illustrated-duick-draw-mcgraw.png 2000w" width="800"></img></a><figcaption>Quick Draw McGraw wobbles under the influence of his pipe. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/6-illustrated-duick-draw-mcgraw.png">Large preview</a>)</figcaption></figure><p>Smoking his pipe clearly has a big effect on Quick Draw McGraw, so to demonstrate this, I wrapped his elements — including his pipe and its feathers — within a new SVG group, and then I made that wobble.</p><pre><code>#quick-draw-group { animation: quick-draw-group-wobble 6s ease-in-out infinite; } @keyframes quick-draw-group-wobble { 0% { transform: rotate(0deg); } 15% { transform: rotate(2deg); } 30% { transform: rotate(-2deg); } 45% { transform: rotate(1deg); } 60% { transform: rotate(-1deg); } 75% { transform: rotate(0.5deg); } 100% { transform: rotate(0deg); } } </code></pre><p>Then, to emphasise this motion, I mirrored those values to wobble his shadow:</p><pre><code>#quick-draw-shadow { animation: quick-draw-shadow-wobble 6s ease-in-out infinite; } @keyframes quick-draw-shadow-wobble { 0% { transform: rotate(0deg); } 15% { transform: rotate(-2deg); } 30% { transform: rotate(2deg); } 45% { transform: rotate(-1deg); } 60% { transform: rotate(1deg); } 75% { transform: rotate(-0.5deg); } 100% { transform: rotate(0deg); } } </code></pre><h2 id="apply-restraint">Apply Restraint</h2><p>Just because something can be animated doesn’t mean it should be. When creating an ambient animation, I study the image and note the elements where subtle motion might add life. I keep in mind the questions: <em>“What’s the story I’m telling? Where does movement help, and when might it become distracting?”</em></p><p>Remember, restraint isn’t just about doing less; it’s about doing the right things less often.</p><h2 id="layering-svgs-for-export">Layering SVGs For Export</h2><p>In “<a href="https://www.smashingmagazine.com/2025/06/smashing-animations-part-4-optimising-svgs/">Smashing Animations Part 4: Optimising SVGs</a>,” I wrote about the process I rely on to <em>“prepare, optimise, and structure SVGs for animation.”</em> When elements are crammed into a single SVG file, they can be a nightmare to navigate. Locating a specific path or group can feel like searching for a needle in a haystack.</p><blockquote>That’s why I develop my SVGs in layers, exporting and optimising one set of elements at a time — always in the order they’ll appear in the final file. This lets me build the master SVG gradually by pasting it in each cleaned-up section.</blockquote><p>I start by exporting background elements, optimising them, adding class and ID attributes, and pasting their code into my SVG file.</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/7-toon-title-card.png"><img alt="The toon title card with the chief and Quick Draw characters cut out with their shapes remaining." decoding="async" fetchpriority="low" height="484" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/7-toon-title-card.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/7-toon-title-card.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/7-toon-title-card.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/7-toon-title-card.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/7-toon-title-card.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/7-toon-title-card.png 2000w" width="800"></img></a><figcaption>Exporting background elements. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/7-toon-title-card.png">Large preview</a>)</figcaption></figure><p>Then, I export elements that often stay static or move as groups, like the chief and Quick Draw McGraw.</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/8-quick-draw-pasted-toon-title-card.png"><img alt="Showing Quick Draw pasted to the toon title card’s foreground, minus details including the pipe he is holding and his eyeballs." decoding="async" fetchpriority="low" height="484" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/8-quick-draw-pasted-toon-title-card.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/8-quick-draw-pasted-toon-title-card.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/8-quick-draw-pasted-toon-title-card.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/8-quick-draw-pasted-toon-title-card.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/8-quick-draw-pasted-toon-title-card.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/8-quick-draw-pasted-toon-title-card.png 2000w" width="800"></img></a><figcaption>Exporting larger groups. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/8-quick-draw-pasted-toon-title-card.png">Large preview</a>)</figcaption></figure><p>Before finally exporting, naming, and adding details, like Quick Draw’s pipe, eyes, and his stoned sparkles.</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/9-quick-draw-toon-title-card-details.png"><img alt="Showing Quick Draw in the same toon title card but including the details that were left out before." decoding="async" fetchpriority="low" height="484" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/9-quick-draw-toon-title-card-details.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/9-quick-draw-toon-title-card-details.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/9-quick-draw-toon-title-card-details.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/9-quick-draw-toon-title-card-details.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/9-quick-draw-toon-title-card-details.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/9-quick-draw-toon-title-card-details.png 2000w" width="800"></img></a><figcaption>Adding details. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/9-quick-draw-toon-title-card-details.png">Large preview</a>)</figcaption></figure><p>Since I export each layer from the same-sized artboard, I don’t need to worry about alignment or positioning issues as they all slot into place automatically.</p><h2 id="implementing-ambient-animations">Implementing Ambient Animations</h2><p>You don’t need an animation framework or library to add ambient animations to a project. Most of the time, all you’ll need is a well-prepared SVG and some thoughtful CSS.</p><p>But, let’s start with the SVG. The key is to group elements logically and give them meaningful class or ID attributes, which act as animation hooks in the CSS. For this animation, I gave every moving part its own identifier like <code>#quick-draw-tail</code> or <code>#chief-smoke-2</code>. That way, I could target exactly what I needed without digging through the DOM like a raccoon in a trash can.</p><p>Once the SVG is set up, CSS does most of the work. I can use <code>@keyframes</code> for more expressive movement, or <code>animation-delay</code> to simulate randomness and stagger timings. The trick is to keep everything subtle and remember I’m not animating for attention, I’m animating for atmosphere.</p><p>Remember that most ambient animations loop continuously, so they should be <strong>lightweight</strong> and <strong>performance-friendly</strong>. And of course, <a href="https://www.smashingmagazine.com/2021/10/respecting-users-motion-preferences/">it’s good practice to respect users who’ve asked for less motion</a>. You can wrap your animations in an <code>@media prefers-reduced-motion</code> query so they only run when they’re welcome.</p><div><pre><code>@media (prefers-reduced-motion: no-preference) { #quick-draw-shadow { animation: quick-draw-shadow-wobble 6s ease-in-out infinite; } } </code></pre></div><p>It’s a small touch that’s easy to implement, and it makes your designs more inclusive.</p><h2 id="ambient-animation-design-principles">Ambient Animation Design Principles</h2><p>If you want your animations to feel ambient, more like atmosphere than action, it helps to follow a few principles. These aren’t hard and fast rules, but rather things I’ve learned while animating smoke, sparkles, eyeballs, and eyebrows.</p><h3 id="keep-animations-slow-and-smooth">Keep Animations Slow And Smooth</h3><p>Ambient animations should feel relaxed, so use <strong>longer durations</strong> and choose <strong>easing curves that feel organic</strong>. I often use <code>ease-in-out</code>, but <a href="https://www.smashingmagazine.com/2022/10/advanced-animations-css/">cubic Bézier curves</a> can also be helpful when you want a more relaxed feel and the kind of movements you might find in nature.</p><h3 id="loop-seamlessly-and-avoid-abrupt-changes">Loop Seamlessly And Avoid Abrupt Changes</h3><p>Hard resets or sudden jumps can ruin the mood, so if an animation loops, ensure it cycles smoothly. You can do this by <strong>matching start and end keyframes</strong>, or by setting the <code>animation-direction</code> to <code>alternate</code> the value so the animation plays forward, then back.</p><h3 id="use-layering-to-build-complexity">Use Layering To Build Complexity</h3><p>A single animation might be boring. Five subtle animations, each on separate layers, can feel rich and alive. Think of it like building a sound mix — you want <strong>variation in rhythm, tone, and timing</strong>. In my animation, sparkles twinkle at varying intervals, smoke curls upward, feathers sway, and eyes boggle. Nothing dominates, and each motion plays its small part in the scene.</p><h3 id="avoid-distractions">Avoid Distractions</h3><p>The point of an ambient animation is that it doesn’t dominate. It’s a <strong>background element</strong> and not a call to action. If someone’s eyes are drawn to a raised eyebrow, it’s probably too much, so dial back the animation until it feels like something you’d only catch if you’re really looking.</p><h3 id="consider-accessibility-and-performance">Consider Accessibility And Performance</h3><p>Check <code>prefers-reduced-motion</code>, and don’t assume everyone’s device can handle complex animations. SVG and CSS are light, but things like blur filters and drop shadows, and complex CSS animations can still tax lower-powered devices. When an animation is purely decorative, consider adding <code>aria-hidden="true"</code> to keep it from cluttering up the accessibility tree.</p><h2 id="quick-on-the-draw">Quick On The Draw</h2><p>Ambient animation is like seasoning on a great dish. It’s the pinch of salt you barely notice, but you’d miss when it’s gone. It doesn’t shout, it whispers. It doesn’t lead, it lingers. It’s floating smoke, swaying feathers, and sparkles you catch in the corner of your eye. And when it’s done well, ambient animation <strong>adds personality to a design without asking for applause</strong>.</p><p>Now, I realise that not everyone needs to animate cartoon characters. So, in part two, I’ll share how I created animations for several recent client projects. Until next time, if you’re crafting an illustration or working with SVG, ask yourself: <strong>What would move if this were real?</strong> Then animate just that. Make it slow and soft. Keep it ambient.</p><p>You can view the complete ambient animation <a href="https://codepen.io/malarkey/pen/NPGrWVy">code on CodePen</a>.</p><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/ambient-animations-web-design-principles-implementation.jpg" /><h1>Principles And Implementation (Part 1) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>9 min read</li><li><a href="http://www.smashingmagazine.com/category/animation">Animation</a>, <a href="http://www.smashingmagazine.com/category/css">CSS</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/svg">SVG</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Creating motion can be tricky. Too much and it’s distracting. Too little and a design feels flat. Ambient animations are the middle ground — subtle, slow-moving details that add atmosphere without stealing the show. In this article, web design pioneer <a href="https://stuffandnonsense.co.uk">Andy Clarke</a> introduces the concept of ambient animations and explains how to implement them.</section></div><p>Unlike <em>timeline-based</em> animations, which tell stories across a sequence of events, or <em>interaction</em> animations that are triggered when someone touches something, <strong>ambient animations</strong> are the kind of passive movements you might not notice at first. But, they make a design look alive in subtle ways.</p><p>In an ambient animation, elements might subtly transition between colours, move slowly, or gradually shift position. Elements can appear and disappear, change size, or they could rotate slowly.</p><p>Ambient animations aren’t intrusive; they don’t demand attention, aren’t distracting, and don’t interfere with what someone’s trying to achieve when they use a product or website. They can be playful, too, making someone smile when they catch sight of them. That way, ambient animations <strong>add depth to a brand’s personality</strong>.</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/1-quick-draw-mcgraw-comic-book.png"><img alt="A three-page spread of a Quick Draw McGraw comic book including the animated cover and first two pages." decoding="async" fetchpriority="low" height="399" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/1-quick-draw-mcgraw-comic-book.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/1-quick-draw-mcgraw-comic-book.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/1-quick-draw-mcgraw-comic-book.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/1-quick-draw-mcgraw-comic-book.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/1-quick-draw-mcgraw-comic-book.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/1-quick-draw-mcgraw-comic-book.png 2000w" width="800"></img></a><figcaption>Hanna-Barbera’s Quick Draw McGraw © Warner Bros. Entertainment Inc. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/1-quick-draw-mcgraw-comic-book.png">Large preview</a>)</figcaption></figure><p>To illustrate the concept of ambient animations, I’ve recreated the cover of a <a href="https://en.wikipedia.org/wiki/Quick_Draw_McGraw"><em>Quick Draw McGraw</em></a> <a href="https://dn720005.ca.archive.org/0/items/QuickDrawMcGrawCharlton/Quick%20Draw%20McGraw%20%233%20%28Charlton%201971%29.pdf">comic book</a> (PDF) as a CSS/SVG animation. The comic was published by Charlton Comics in 1971, and, being printed, these characters didn’t move, making them ideal candidates to transform into ambient animations.</p><p><strong>FYI</strong>: Original cover artist <a href="https://www.lambiek.net/artists/d/dirgo_ray.htm">Ray Dirgo</a> was best known for his work drawing Hanna-Barbera characters for Charlton Comics during the 1970s. Ray passed away in 2000 at the age of 92. He outlived Charlton Comics, which went out of business in 1986, and DC Comics acquired its characters.</p><p><strong>Tip</strong>: You can view the complete ambient animation <a href="https://codepen.io/malarkey/pen/NPGrWVy">code on CodePen</a>.</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/2-quick-draw-mcgraw-ambient-animations.png"><img alt="Quick Draw McGraw ambient animations." decoding="async" fetchpriority="low" height="484" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/2-quick-draw-mcgraw-ambient-animations.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/2-quick-draw-mcgraw-ambient-animations.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/2-quick-draw-mcgraw-ambient-animations.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/2-quick-draw-mcgraw-ambient-animations.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/2-quick-draw-mcgraw-ambient-animations.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/2-quick-draw-mcgraw-ambient-animations.png 2000w" width="800"></img></a><figcaption>Quick Draw McGraw ambient animations. (<a href="https://codepen.io/malarkey/pen/NPGrWVy">Live Demo</a>) (<a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/2-quick-draw-mcgraw-ambient-animations.png">Large preview</a>)</figcaption></figure><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="choosing-elements-to-animate">Choosing Elements To Animate</h2><p>Not everything on a page or in a graphic needs to move, and part of designing an ambient animation is <strong>knowing when to stop</strong>. The trick is to pick elements that lend themselves naturally to subtle movement, rather than forcing motion into places where it doesn’t belong.</p><h3 id="natural-motion-cues">Natural Motion Cues</h3><p>When I’m deciding what to animate, I look for natural motion cues and think about when something would move naturally in the real world. I ask myself: <em>“Does this thing have weight?”</em>, <em>“Is it flexible?”</em>, and <em>“Would it move in real life?”</em> If the answer’s <em>“yes,”</em> it’ll probably feel right if it moves. There are several motion cues in Ray Dirgo’s cover artwork.</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/3-pipe-feathers-toon-title-card.png"><img alt="Vibrantly illustrated pipe adorned with two feathers on the end against a silhouetted toon title card." decoding="async" fetchpriority="low" height="484" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/3-pipe-feathers-toon-title-card.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/3-pipe-feathers-toon-title-card.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/3-pipe-feathers-toon-title-card.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/3-pipe-feathers-toon-title-card.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/3-pipe-feathers-toon-title-card.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/3-pipe-feathers-toon-title-card.png 2000w" width="800"></img></a><figcaption>Pipe and feathers swing slightly. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/3-pipe-feathers-toon-title-card.png">Large preview</a>)</figcaption></figure><p>For example, the peace pipe Quick Draw’s puffing on has two feathers hanging from it. They swing slightly left and right by three degrees as the pipe moves, just like real feathers would.</p><div><pre><code>#quick-draw-pipe { animation: quick-draw-pipe-rotate 6s ease-in-out infinite alternate; } @keyframes quick-draw-pipe-rotate { 0% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } } #quick-draw-feather-1 { animation: quick-draw-feather-1-rotate 3s ease-in-out infinite alternate; } #quick-draw-feather-2 { animation: quick-draw-feather-2-rotate 3s ease-in-out infinite alternate; } @keyframes quick-draw-feather-1-rotate { 0% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } } @keyframes quick-draw-feather-2-rotate { 0% { transform: rotate(-3deg); } 100% { transform: rotate(3deg); } } </code></pre></div><h3 id="atmosphere-not-action">Atmosphere, Not Action</h3><p>I often choose elements or decorative details that add to the vibe but don’t fight for attention.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aAmbient%20animations%20aren%e2%80%99t%20about%20signalling%20to%20someone%20where%20they%20should%20look;%20they%e2%80%99re%20about%20creating%20a%20mood.%20%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fambient-animations-web-design-principles-implementation%2f">Ambient animations aren’t about signalling to someone where they should look; they’re about creating a mood.</a></p></blockquote><p>Here, the chief slowly and subtly rises and falls as he puffs on his pipe.</p><pre><code>#chief { animation: chief-rise-fall 3s ease-in-out infinite alternate; } @keyframes chief-group-rise-fall { 0% { transform: translateY(0); } 100% { transform: translateY(-20px); } } </code></pre><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/4-chief-toon-title-card.png"><img alt="An illustrated Indian chief seated and puffing on a pipe against a silhouetted toon title card." decoding="async" fetchpriority="low" height="484" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/4-chief-toon-title-card.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/4-chief-toon-title-card.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/4-chief-toon-title-card.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/4-chief-toon-title-card.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/4-chief-toon-title-card.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/4-chief-toon-title-card.png 2000w" width="800"></img></a><figcaption>The chief rises and falls as he puffs on his pipe. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/4-chief-toon-title-card.png">Large preview</a>)</figcaption></figure><p>For added effect, the feather on his head also moves in time with his rise and fall:</p><div><pre><code>#chief-feather-1 { animation: chief-feather-1-rotate 3s ease-in-out infinite alternate; } #chief-feather-2 { animation: chief-feather-2-rotate 3s ease-in-out infinite alternate; } @keyframes chief-feather-1-rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(-9deg); } } @keyframes chief-feather-2-rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(9deg); } } </code></pre></div><h3 id="playfulness-and-fun">Playfulness And Fun</h3><p>One of the things I love most about ambient animations is how they bring fun into a design. They’re an opportunity to <strong>demonstrate personality</strong> through playful details that make people smile when they notice them.</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/5-closeup-illustrated-chief-head.png"><img alt="Closeup of the illustrated chief’s head and face." decoding="async" fetchpriority="low" height="484" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/5-closeup-illustrated-chief-head.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/5-closeup-illustrated-chief-head.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/5-closeup-illustrated-chief-head.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/5-closeup-illustrated-chief-head.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/5-closeup-illustrated-chief-head.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/5-closeup-illustrated-chief-head.png 2000w" width="800"></img></a><figcaption>The chief’s eyebrows rise and fall, and his eyes cross. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/5-closeup-illustrated-chief-head.png">Large preview</a>)</figcaption></figure><p>Take a closer look at the chief, and you might spot his eyebrows raising and his eyes crossing as he puffs hard on his pipe. Quick Draw’s eyebrows also bounce at what look like random intervals.</p><pre><code>#quick-draw-eyebrow { animation: quick-draw-eyebrow-raise 5s ease-in-out infinite; } @keyframes quick-draw-eyebrow-raise { 0%, 20%, 60%, 100% { transform: translateY(0); } 10%, 50%, 80% { transform: translateY(-10px); } } </code></pre><h2 id="keep-hierarchy-in-mind">Keep Hierarchy In Mind</h2><p>Motion draws the eye, and even subtle movements have a visual weight. So, I reserve the most obvious animations for elements that I need to create the biggest impact.</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/6-illustrated-duick-draw-mcgraw.png"><img alt="Illustrated Quick Draw McGraw holding the feather-adorned pipe with dizzy eyes veering right." decoding="async" fetchpriority="low" height="484" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/6-illustrated-duick-draw-mcgraw.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/6-illustrated-duick-draw-mcgraw.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/6-illustrated-duick-draw-mcgraw.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/6-illustrated-duick-draw-mcgraw.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/6-illustrated-duick-draw-mcgraw.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/6-illustrated-duick-draw-mcgraw.png 2000w" width="800"></img></a><figcaption>Quick Draw McGraw wobbles under the influence of his pipe. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/6-illustrated-duick-draw-mcgraw.png">Large preview</a>)</figcaption></figure><p>Smoking his pipe clearly has a big effect on Quick Draw McGraw, so to demonstrate this, I wrapped his elements — including his pipe and its feathers — within a new SVG group, and then I made that wobble.</p><pre><code>#quick-draw-group { animation: quick-draw-group-wobble 6s ease-in-out infinite; } @keyframes quick-draw-group-wobble { 0% { transform: rotate(0deg); } 15% { transform: rotate(2deg); } 30% { transform: rotate(-2deg); } 45% { transform: rotate(1deg); } 60% { transform: rotate(-1deg); } 75% { transform: rotate(0.5deg); } 100% { transform: rotate(0deg); } } </code></pre><p>Then, to emphasise this motion, I mirrored those values to wobble his shadow:</p><pre><code>#quick-draw-shadow { animation: quick-draw-shadow-wobble 6s ease-in-out infinite; } @keyframes quick-draw-shadow-wobble { 0% { transform: rotate(0deg); } 15% { transform: rotate(-2deg); } 30% { transform: rotate(2deg); } 45% { transform: rotate(-1deg); } 60% { transform: rotate(1deg); } 75% { transform: rotate(-0.5deg); } 100% { transform: rotate(0deg); } } </code></pre><h2 id="apply-restraint">Apply Restraint</h2><p>Just because something can be animated doesn’t mean it should be. When creating an ambient animation, I study the image and note the elements where subtle motion might add life. I keep in mind the questions: <em>“What’s the story I’m telling? Where does movement help, and when might it become distracting?”</em></p><p>Remember, restraint isn’t just about doing less; it’s about doing the right things less often.</p><h2 id="layering-svgs-for-export">Layering SVGs For Export</h2><p>In “<a href="https://www.smashingmagazine.com/2025/06/smashing-animations-part-4-optimising-svgs/">Smashing Animations Part 4: Optimising SVGs</a>,” I wrote about the process I rely on to <em>“prepare, optimise, and structure SVGs for animation.”</em> When elements are crammed into a single SVG file, they can be a nightmare to navigate. Locating a specific path or group can feel like searching for a needle in a haystack.</p><blockquote>That’s why I develop my SVGs in layers, exporting and optimising one set of elements at a time — always in the order they’ll appear in the final file. This lets me build the master SVG gradually by pasting it in each cleaned-up section.</blockquote><p>I start by exporting background elements, optimising them, adding class and ID attributes, and pasting their code into my SVG file.</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/7-toon-title-card.png"><img alt="The toon title card with the chief and Quick Draw characters cut out with their shapes remaining." decoding="async" fetchpriority="low" height="484" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/7-toon-title-card.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/7-toon-title-card.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/7-toon-title-card.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/7-toon-title-card.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/7-toon-title-card.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/7-toon-title-card.png 2000w" width="800"></img></a><figcaption>Exporting background elements. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/7-toon-title-card.png">Large preview</a>)</figcaption></figure><p>Then, I export elements that often stay static or move as groups, like the chief and Quick Draw McGraw.</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/8-quick-draw-pasted-toon-title-card.png"><img alt="Showing Quick Draw pasted to the toon title card’s foreground, minus details including the pipe he is holding and his eyeballs." decoding="async" fetchpriority="low" height="484" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/8-quick-draw-pasted-toon-title-card.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/8-quick-draw-pasted-toon-title-card.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/8-quick-draw-pasted-toon-title-card.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/8-quick-draw-pasted-toon-title-card.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/8-quick-draw-pasted-toon-title-card.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/8-quick-draw-pasted-toon-title-card.png 2000w" width="800"></img></a><figcaption>Exporting larger groups. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/8-quick-draw-pasted-toon-title-card.png">Large preview</a>)</figcaption></figure><p>Before finally exporting, naming, and adding details, like Quick Draw’s pipe, eyes, and his stoned sparkles.</p><figure><a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/9-quick-draw-toon-title-card-details.png"><img alt="Showing Quick Draw in the same toon title card but including the details that were left out before." decoding="async" fetchpriority="low" height="484" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/9-quick-draw-toon-title-card-details.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/9-quick-draw-toon-title-card-details.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/9-quick-draw-toon-title-card-details.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/9-quick-draw-toon-title-card-details.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/9-quick-draw-toon-title-card-details.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/9-quick-draw-toon-title-card-details.png 2000w" width="800"></img></a><figcaption>Adding details. (<a href="https://files.smashing.media/articles/ambient-animations-web-design-principles-implementation/9-quick-draw-toon-title-card-details.png">Large preview</a>)</figcaption></figure><p>Since I export each layer from the same-sized artboard, I don’t need to worry about alignment or positioning issues as they all slot into place automatically.</p><h2 id="implementing-ambient-animations">Implementing Ambient Animations</h2><p>You don’t need an animation framework or library to add ambient animations to a project. Most of the time, all you’ll need is a well-prepared SVG and some thoughtful CSS.</p><p>But, let’s start with the SVG. The key is to group elements logically and give them meaningful class or ID attributes, which act as animation hooks in the CSS. For this animation, I gave every moving part its own identifier like <code>#quick-draw-tail</code> or <code>#chief-smoke-2</code>. That way, I could target exactly what I needed without digging through the DOM like a raccoon in a trash can.</p><p>Once the SVG is set up, CSS does most of the work. I can use <code>@keyframes</code> for more expressive movement, or <code>animation-delay</code> to simulate randomness and stagger timings. The trick is to keep everything subtle and remember I’m not animating for attention, I’m animating for atmosphere.</p><p>Remember that most ambient animations loop continuously, so they should be <strong>lightweight</strong> and <strong>performance-friendly</strong>. And of course, <a href="https://www.smashingmagazine.com/2021/10/respecting-users-motion-preferences/">it’s good practice to respect users who’ve asked for less motion</a>. You can wrap your animations in an <code>@media prefers-reduced-motion</code> query so they only run when they’re welcome.</p><div><pre><code>@media (prefers-reduced-motion: no-preference) { #quick-draw-shadow { animation: quick-draw-shadow-wobble 6s ease-in-out infinite; } } </code></pre></div><p>It’s a small touch that’s easy to implement, and it makes your designs more inclusive.</p><h2 id="ambient-animation-design-principles">Ambient Animation Design Principles</h2><p>If you want your animations to feel ambient, more like atmosphere than action, it helps to follow a few principles. These aren’t hard and fast rules, but rather things I’ve learned while animating smoke, sparkles, eyeballs, and eyebrows.</p><h3 id="keep-animations-slow-and-smooth">Keep Animations Slow And Smooth</h3><p>Ambient animations should feel relaxed, so use <strong>longer durations</strong> and choose <strong>easing curves that feel organic</strong>. I often use <code>ease-in-out</code>, but <a href="https://www.smashingmagazine.com/2022/10/advanced-animations-css/">cubic Bézier curves</a> can also be helpful when you want a more relaxed feel and the kind of movements you might find in nature.</p><h3 id="loop-seamlessly-and-avoid-abrupt-changes">Loop Seamlessly And Avoid Abrupt Changes</h3><p>Hard resets or sudden jumps can ruin the mood, so if an animation loops, ensure it cycles smoothly. You can do this by <strong>matching start and end keyframes</strong>, or by setting the <code>animation-direction</code> to <code>alternate</code> the value so the animation plays forward, then back.</p><h3 id="use-layering-to-build-complexity">Use Layering To Build Complexity</h3><p>A single animation might be boring. Five subtle animations, each on separate layers, can feel rich and alive. Think of it like building a sound mix — you want <strong>variation in rhythm, tone, and timing</strong>. In my animation, sparkles twinkle at varying intervals, smoke curls upward, feathers sway, and eyes boggle. Nothing dominates, and each motion plays its small part in the scene.</p><h3 id="avoid-distractions">Avoid Distractions</h3><p>The point of an ambient animation is that it doesn’t dominate. It’s a <strong>background element</strong> and not a call to action. If someone’s eyes are drawn to a raised eyebrow, it’s probably too much, so dial back the animation until it feels like something you’d only catch if you’re really looking.</p><h3 id="consider-accessibility-and-performance">Consider Accessibility And Performance</h3><p>Check <code>prefers-reduced-motion</code>, and don’t assume everyone’s device can handle complex animations. SVG and CSS are light, but things like blur filters and drop shadows, and complex CSS animations can still tax lower-powered devices. When an animation is purely decorative, consider adding <code>aria-hidden="true"</code> to keep it from cluttering up the accessibility tree.</p><h2 id="quick-on-the-draw">Quick On The Draw</h2><p>Ambient animation is like seasoning on a great dish. It’s the pinch of salt you barely notice, but you’d miss when it’s gone. It doesn’t shout, it whispers. It doesn’t lead, it lingers. It’s floating smoke, swaying feathers, and sparkles you catch in the corner of your eye. And when it’s done well, ambient animation <strong>adds personality to a design without asking for applause</strong>.</p><p>Now, I realise that not everyone needs to animate cartoon characters. So, in part two, I’ll share how I created animations for several recent client projects. Until next time, if you’re crafting an illustration or working with SVG, ask yourself: <strong>What would move if this were real?</strong> Then animate just that. Make it slow and soft. Keep it ambient.</p><p>You can view the complete ambient animation <a href="https://codepen.io/malarkey/pen/NPGrWVy">code on CodePen</a>.</p><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (Andy Clarke) <![CDATA[The Psychology Of Trust In AI: A Guide To Measuring And Designing For User Confidence]]> https://smashingmagazine.com/2025/09/psychology-trust-ai-guide-measuring-designing-user-confidence/ https://smashingmagazine.com/2025/09/psychology-trust-ai-guide-measuring-designing-user-confidence/ Fri, 19 Sep 2025 10:00:00 GMT <img src="https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/psychology-trust-ai-guide-measuring-designing-user-confidence.jpg" /><h1>A Guide To Measuring And Designing For User Confidence — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>21 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/ai">AI</a>, <a href="http://www.smashingmagazine.com/category/guides">Guides</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>When AI “hallucinates,” it’s more than just a glitch — it’s a collapse of trust. As generative AI becomes part of more digital products, trust has become the invisible user interface. But trust isn’t mystical. It can be understood, measured, and designed for. Here is a practical guide for designing more trustworthy and ethical AI systems.</section></p><p>Misuse and misplaced trust of AI is becoming an unfortunate <a href="https://www.damiencharlotin.com/hallucinations/">common event</a>. For example, lawyers trying to leverage the power of generative AI for research submit court filings citing multiple compelling legal precedents. The problem? The AI had confidently, eloquently, and completely fabricated the cases cited. The resulting sanctions and public embarrassment can become <a href="https://www.lawnext.com/2025/05/ai-hallucinations-strike-again-two-more-cases-where-lawyers-face-judicial-wrath-for-fake-citations.html">a viral cautionary tale</a>, shared across social media as a stark example of AI’s fallibility.</p><p>This goes beyond a technical glitch; it’s a catastrophic <strong>failure of trust in AI tools</strong> in an industry where accuracy and trust are critical. The trust issue here is twofold — the law firms are submitting briefs in which they have blindly over-trusted the AI tool to return accurate information. The subsequent fallout can lead to a strong distrust in AI tools, to the point where platforms featuring AI might not be considered for use until trust is reestablished.</p><p>Issues with trusting AI aren’t limited to the legal field. We are seeing the impact of fictional AI-generated information in critical fields such as <a href="https://apnews.com/article/ai-artificial-intelligence-health-business-90020cdf5fa16c79ca2e5b6c4c9bbb14">healthcare</a> and <a href="https://mitsloanedtech.mit.edu/ai/basics/addressing-ai-hallucinations-and-bias/">education</a>. On a more personal scale, many of us have had the experience of asking Siri or Alexa to perform a task, only to have it done incorrectly or not at all, for no apparent reason. I’m guilty of sending more than one out-of-context hands-free text to an unsuspecting contact after Siri mistakenly pulls up a completely different name than the one I’d requested.</p><figure><a href="https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/1-siri-confuse-recipient-message.png"><img alt="Cartoon illustration split into two panels. On the left, a man in a blue hoodie speaks into his phone, saying, “Siri, text Dave, I’m waiting outside of your door.” On the right, a cheerful cartoon phone with a face and arms replies, “I have just texted Martha, I am standing outside of your door.”" decoding="async" fetchpriority="low" height="410" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/1-siri-confuse-recipient-message.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/1-siri-confuse-recipient-message.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/1-siri-confuse-recipient-message.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/1-siri-confuse-recipient-message.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/1-siri-confuse-recipient-message.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/1-siri-confuse-recipient-message.png 2000w" width="800"></img></a><figcaption>Figure 1: Siri and Alexa often tend to confuse the recipient of my message, causing me to distrust using them when accuracy matters. Image generated using Gemini Pro. (<a href="https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/1-siri-confuse-recipient-message.png">Large preview</a>)</figcaption></figure><p>With digital products moving to incorporate generative and agentic AI at an increasingly frequent rate, <strong>trust has become the invisible user interface</strong>. When it works, our interactions are seamless and powerful. When it breaks, the entire experience collapses, with potentially devastating consequences. As UX professionals, we’re on the front lines of a new twist on a common challenge. How do we build products that users can rely on? And how do we even begin to measure something as ephemeral as trust in AI?</p><p>Trust isn’t a mystical quality. It is a psychological construct built on predictable factors. I won’t dive deep into academic literature on trust in this article. However, it is important to understand that trust is a concept that can be <strong>understood</strong>, <strong>measured</strong>, and <strong>designed for</strong>. This article will provide a <strong>practical guide</strong> for UX researchers and designers. We will briefly explore the psychological anatomy of trust, offer concrete methods for measuring it, and provide actionable strategies for designing more trustworthy and ethical AI systems.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="the-anatomy-of-trust-a-psychological-framework-for-ai">The Anatomy of Trust: A Psychological Framework for AI</h2><p>To build trust, we must first understand its components. Think of trust like a four-legged stool. If any one leg is weak, the whole thing becomes unstable. Based on classic <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC10083508/#:~:text=The%20model%20of%20interpersonal%20trust,in%20human%20interpersonal%20trust%20development.">psychological models</a>, we can adapt these “legs” for the AI context.</p><h3 id="1-ability-or-competence">1. Ability (or Competence)</h3><p>This is the most straightforward pillar: Does the AI have the <strong>skills</strong> to perform its function accurately and effectively? If a weather app is consistently wrong, you stop trusting it. If an AI legal assistant creates fictitious cases, it has failed the basic test of ability. This is the functional, foundational layer of trust.</p><h3 id="2-benevolence">2. Benevolence</h3><p>This moves from function to <strong>intent</strong>. Does the user believe the AI is acting in their best interest? A GPS that suggests a toll-free route even if it’s a few minutes longer might be perceived as benevolent. Conversely, an AI that aggressively pushes sponsored products feels self-serving, eroding this sense of benevolence. This is where user fears, such as concerns about job displacement, directly challenge trust—the user starts to believe the AI is not on their side.</p><h3 id="3-integrity">3. Integrity</h3><p>Does AI operate on predictable and ethical principles? This is about <strong>transparency</strong>, <strong>fairness</strong>, and <strong>honesty</strong>. An AI that clearly states how it uses personal data demonstrates integrity. A system that quietly changes its terms of service or uses dark patterns to get users to agree to something violates integrity. An AI job recruiting tool that has subtle yet extremely harmful social biases, existing in the algorithm, violates integrity.</p><h3 id="4-predictability-reliability">4. Predictability &amp; Reliability</h3><p>Can the user form a <strong>stable and accurate mental model</strong> of how the AI will behave? Unpredictability, even if the outcomes are occasionally good, creates anxiety. A user needs to know, roughly, what to expect. An AI that gives a radically different answer to the same question asked twice is unpredictable and, therefore, hard to trust.</p><h2 id="the-trust-spectrum-the-goal-of-a-well-calibrated-relationship">The Trust Spectrum: The Goal of a Well-Calibrated Relationship</h2><p>Our goal as UX professionals shouldn’t be to maximize trust at all costs. An employee who blindly trusts every email they receive is a security risk. Likewise, a user who blindly trusts every AI output can be led into dangerous situations, such as the legal briefs referenced at the beginning of this article. The goal is <em>well-calibrated</em> trust.</p><p>Think of it as a spectrum where the upper-mid level is the ideal state for a truly trustworthy product to achieve:</p><ul><li><strong>Active Distrust</strong><br></br>The user believes the AI is incompetent or malicious. They will avoid it or actively work against it.</li><li><strong>Suspicion &amp; Scrutiny</strong><br></br>The user interacts cautiously, constantly verifying the AI’s outputs. This is a common and often healthy state for users of new AI.</li><li><strong>Calibrated Trust (The Ideal State)</strong><br></br>This is the sweet spot. The user has an accurate understanding of the AI’s capabilities—its strengths and, crucially, its weaknesses. They know when to rely on it and when to be skeptical.</li><li><strong>Over-trust &amp; Automation Bias</strong><br></br>The user unquestioningly accepts the AI’s outputs. This is where users follow flawed AI navigation into a field or accept a fictional legal brief as fact.</li></ul><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aOur%20job%20is%20to%20design%20experiences%20that%20guide%20users%20away%20from%20the%20dangerous%20poles%20of%20Active%20Distrust%20and%20Over-trust%20and%20toward%20that%20healthy,%20realistic%20middle%20ground%20of%20Calibrated%20Trust.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fpsychology-trust-ai-guide-measuring-designing-user-confidence%2f">Our job is to design experiences that guide users away from the dangerous poles of Active Distrust and Over-trust and toward that healthy, realistic middle ground of Calibrated Trust.</a></p></blockquote><figure><a href="https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/2-trust-spectrum.png"><img alt="The trust spectrum" decoding="async" fetchpriority="low" height="307" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/2-trust-spectrum.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/2-trust-spectrum.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/2-trust-spectrum.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/2-trust-spectrum.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/2-trust-spectrum.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/2-trust-spectrum.png 2000w" width="800"></img></a><figcaption>Figure 2: Build user trust in your AI product, avoiding both distrust and over-reliance. Image generated using Gemini Pro. (<a href="https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/2-trust-spectrum.png">Large preview</a>)</figcaption></figure><p>Trust feels abstract, but it leaves measurable fingerprints. Academics in the social sciences have done much to define both what trust looks like and how it might be measured. As researchers, we can capture these signals through a mix of <strong>qualitative</strong>, <strong>quantitative</strong>, and <strong>behavioral</strong> methods.</p><h3 id="qualitative-probes-listening-for-the-language-of-trust">Qualitative Probes: Listening For The Language Of Trust</h3><p>During interviews and usability tests, go beyond <em>“Was that easy to use?”</em> and listen for the underlying psychology. Here are some questions you can start using tomorrow:</p><ul><li><strong>To measure Ability:</strong><br></br><em>“Tell me about a time this tool’s performance surprised you, either positively or negatively.”</em></li><li><strong>To measure Benevolence:</strong><br></br><em>“Do you feel this system is on your side? What gives you that impression?”</em></li><li><strong>To measure Integrity:</strong><br></br><em>“If this AI made a mistake, how would you expect it to handle it? What would be a fair response?”</em></li><li><strong>To measure Predictability:</strong><br></br><em>“Before you clicked that button, what did you expect the AI to do? How closely did it match your expectation?”</em></li></ul><h3 id="investigating-existential-fears-the-job-displacement-scenario">Investigating Existential Fears (The Job Displacement Scenario)</h3><p>One of the most potent challenges to an AI’s Benevolence is the fear of job displacement. When a participant expresses this, it is a critical research finding. It requires a specific, ethical probing technique.</p><p>Imagine a participant says, <em>“Wow, it does that part of my job pretty well. I guess I should be worried.”</em></p><p>An untrained researcher might get defensive or dismiss the comment. An ethical, trained researcher validates and explores:</p><blockquote>“Thank you for sharing that; it’s a vital perspective, and it’s exactly the kind of feedback we need to hear. Can you tell me more about what aspects of this tool make you feel that way? In an ideal world, how would a tool like this work <strong>with</strong> you to make your job better, not to replace it?”</blockquote><p>This approach respects the participant, validates their concern, and reframes the feedback into an actionable insight about designing a collaborative, augmenting tool rather than a replacement. Similarly, your findings should reflect the concern users expressed about replacement. We shouldn’t pretend this fear doesn’t exist, nor should we pretend that every AI feature is being implemented with pure intention. Users know better than that, and we should be prepared to argue on their behalf for how the technology might best co-exist within their roles.</p><h3 id="quantitative-measures-putting-a-number-on-confidence">Quantitative Measures: Putting A Number On Confidence</h3><p>You can quantify trust without needing a data science degree. After a user completes a task with an AI, supplement your standard usability questions with a few simple Likert-scale items:</p><ul><li><em>“The AI’s suggestion was reliable.”</em> (1-7, Strongly Disagree to Strongly Agree)</li><li><em>“I am confident in the AI’s output.”</em> (1-7)</li><li><em>“I understood why the AI made that recommendation.”</em> (1-7)</li><li><em>“The AI responded in a way that I expected.”</em> (1-7)</li><li><em>“The AI provided consistent responses over time.”</em> (1-7)</li></ul><p>Over time, these metrics can track how trust is changing as your product evolves.</p><p><strong>Note</strong>: <em>If you want to go beyond these simple questions that I’ve made up, there are numerous scales (measurements) of trust in technology that exist in academic literature. It might be an interesting endeavor to measure some relevant psychographic and demographic characteristics of your users and see how that correlates with trust in AI/your product. <a href="#table-1-published-academic-scales-measuring-trust-in-automated-systems">Table 1 at the end of the article</a> contains four examples of current scales you might consider using to measure trust. You can decide which is best for your application, or you might pull some of the items from any of the scales if you aren’t looking to publish your findings in an academic journal, yet want to use items that have been subjected to some level of empirical scrutiny.</em></p><h3 id="behavioral-metrics-observing-what-users-do-not-just-what-they-say">Behavioral Metrics: Observing What Users Do, Not Just What They Say</h3><p>People’s true feelings are often revealed in their actions. You can use behaviors that reflect the specific context of use for your product. Here are a few general metrics that might apply to most AI tools that give insight into users’ behavior and the trust they place in your tool.</p><ul><li><strong>Correction Rate</strong><br></br>How often do users manually edit, undo, or ignore the AI’s output? A high correction rate is a powerful signal of low trust in its Ability.</li><li><strong>Verification Behavior</strong><br></br>Do users switch to Google or open another application to double-check the AI’s work? This indicates they don’t trust it as a standalone source of truth. It can also potentially be positive that they are calibrating their trust in the system when they use it up front.</li><li><strong>Disengagement</strong><br></br>Do users turn the AI feature off? Do they stop using it entirely after one bad experience? This is the ultimate behavioral vote of no confidence.</li></ul><h2 id="designing-for-trust-from-principles-to-pixels">Designing For Trust: From Principles to Pixels</h2><p>Once you’ve researched and measured trust, you can begin to design for it. This means translating psychological principles into tangible interface elements and user flows.</p><h3 id="designing-for-competence-and-predictability">Designing for Competence and Predictability</h3><ul><li><strong>Set Clear Expectations</strong><br></br>Use onboarding, tooltips, and empty states to honestly communicate what the AI is good at and where it might struggle. A simple <em>“I’m still learning about [topic X], so please double-check my answers”</em> can work wonders.</li><li><strong>Show Confidence Levels</strong><br></br>Instead of just giving an answer, have the AI signal its own uncertainty. A weather app that says <em>“70% chance of rain”</em> is more trustworthy than one that just says <em>“It will rain”</em> and is wrong. An AI could say, <em>“I’m 85% confident in this summary,”</em> or highlight sentences it’s less sure about.</li></ul><h3 id="the-role-of-explainability-xai-and-transparency">The Role of Explainability (XAI) and Transparency</h3><p>Explainability isn’t about showing users the code. It’s about providing a <em>useful, human-understandable rationale</em> for a decision.</p><blockquote><strong>Instead of:</strong><br></br>“Here is your recommendation.”<p><strong>Try:</strong>“Because you frequently read articles about UX research methods, I’m recommending this new piece on measuring trust in AI.”</p></blockquote><p>This addition transforms AI from an opaque oracle to a transparent logical partner.</p><p>Many of the popular AI tools (e.g., ChatGPT and Gemini) show the thinking that went into the response they provide to a user. Figure 3 shows the steps Gemini went through to provide me with a non-response when I asked it to help me generate the masterpiece displayed above in Figure 2. While this might be more information than most users care to see, it provides a useful resource for a user to audit how the response came to be, and it has provided me with instructions on how I might proceed to address my task.</p><figure><a href="https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/3-gemini-explains-response.png"><img alt="Gemini explains its process and why it can’t complete a task" decoding="async" fetchpriority="low" height="740" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/3-gemini-explains-response.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/3-gemini-explains-response.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/3-gemini-explains-response.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/3-gemini-explains-response.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/3-gemini-explains-response.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/3-gemini-explains-response.png 2000w" width="800"></img></a><figcaption>Figure 3: Gemini shows its process and why it can’t complete a task I’ve asked it to perform. Smartly, it suggests an alternative way to achieve what I’ve requested. (<a href="https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/3-gemini-explains-response.png">Large preview</a>)</figcaption></figure><p>Figure 4 shows an example of a <a href="https://openai.com/index/gpt-4o-system-card/">scorecard</a> OpenAI makes available as an attempt to increase users’ trust. These scorecards are available for each ChatGPT model and go into the specifics of how the models perform as it relates to key areas such as hallucinations, health-based conversations, and much more. In reading the scorecards closely, you will see that no AI model is perfect in any area. The user must remain in a trust but verify mode to make the relationship between human reality and AI work in a way that avoids potential catastrophe. There should never be blind trust in an LLM.</p><figure><a href="https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/4-openai-scorecard-gpt-4o.png"><img alt="Example of OpenAI scorecard for GPT-4o" decoding="async" fetchpriority="low" height="363" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/4-openai-scorecard-gpt-4o.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/4-openai-scorecard-gpt-4o.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/4-openai-scorecard-gpt-4o.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/4-openai-scorecard-gpt-4o.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/4-openai-scorecard-gpt-4o.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/4-openai-scorecard-gpt-4o.png 2000w" width="800"></img></a><figcaption>Figure 4: Example of OpenAI scorecard for GPT-4o. (<a href="https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/4-openai-scorecard-gpt-4o.png">Large preview</a>)</figcaption></figure><h3 id="designing-for-trust-repair-graceful-error-handling-and-not-knowing-an-answer">Designing For Trust Repair (Graceful Error Handling) And Not Knowing an Answer</h3><p>Your AI will make mistakes.</p><blockquote>Trust is not determined by the absence of errors, but by how those errors are handled.</blockquote><ul><li><strong>Acknowledge Errors Humbly.</strong><br></br>When the AI is wrong, it should be able to state that clearly. <em>“My apologies, I misunderstood that request. Could you please rephrase it?”</em> is far better than silence or a nonsensical answer.</li><li><strong>Provide an Easy Path to Correction.</strong><br></br>Make feedback mechanisms (like thumbs up/down or a correction box) obvious. More importantly, show that the feedback is being used. A <em>“Thank you, I’m learning from your correction”</em> can help rebuild trust after a failure. As long as this is true.</li></ul><p>Likewise, your AI can’t know everything. You should acknowledge this to your users.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aUX%20practitioners%20should%20work%20with%20the%20product%20team%20to%20ensure%20that%20honesty%20about%20limitations%20is%20a%20core%20product%20principle.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fpsychology-trust-ai-guide-measuring-designing-user-confidence%2f">UX practitioners should work with the product team to ensure that honesty about limitations is a core product principle.</a></p></blockquote><p>This can include the following:</p><ul><li><strong>Establish User-Centric Metrics:</strong> Instead of only measuring engagement or task completion, UXers can work with product managers to define and track metrics like:<ul><li><strong>Hallucination Rate:</strong> The frequency with which the AI provides verifiably false information.</li><li><strong>Successful Fallback Rate:</strong> How often the AI correctly identifies its inability to answer and provides a helpful, honest alternative.</li></ul></li><li><strong>Prioritize the “I Don’t Know” Experience:</strong> UXers should frame the “I don’t know” response not as an error state, but as a critical feature. They must lobby for the engineering and content resources needed to design a high-quality, helpful fallback experience.</li></ul><h2 id="ux-writing-and-trust">UX Writing And Trust</h2><p>All of these considerations highlight the critical role of <a href="https://lmsanchez.medium.com/what-is-ux-writing-1eb71b0f0606">UX writing</a> in the development of trustworthy AI. UX writers are the architects of the AI’s voice and tone, ensuring that its communication is clear, honest, and empathetic. They translate complex technical processes into user-friendly explanations, craft helpful error messages, and design conversational flows that build confidence and rapport. Without <strong>thoughtful UX writing</strong>, even the most technologically advanced AI can feel opaque and untrustworthy.</p><p>The words and phrases an AI uses are its primary interface with users. UX writers are uniquely positioned to shape this interaction, ensuring that every tooltip, prompt, and response contributes to a positive and trust-building experience. Their expertise in <strong>human-centered language and design</strong> is indispensable for creating AI systems that not only perform well but also earn and maintain the trust of their users.</p><p>A few key areas for UX writers to focus on when writing for AI include:</p><ul><li><strong>Prioritize Transparency</strong><br></br>Clearly communicate the AI’s capabilities and limitations, especially when it’s still learning or if its responses are generated rather than factual. Use phrases that indicate the AI’s nature, such as <em>“As an AI, I can&amp;mldr;”</em> or <em>“This is a generated response.”</em></li><li><strong>Design for Explainability</strong><br></br>When the AI provides a recommendation, decision, or complex output, strive to explain the reasoning behind it in an understandable way. This builds trust by showing the user how the AI arrived at its conclusion.</li><li><strong>Emphasize User Control</strong><br></br>Empower users by providing clear ways to provide feedback, correct errors, or opt out of certain AI features. This reinforces the idea that the user is in control and the AI is a tool to assist them.</li></ul><h2 id="the-ethical-tightrope-the-researcher-s-responsibility">The Ethical Tightrope: The Researcher’s Responsibility</h2><p>As the people responsible for understanding and advocating for users, we walk an ethical tightrope. Our work comes with profound responsibilities.</p><h3 id="the-danger-of-trustwashing">The Danger Of “Trustwashing”</h3><p>We must draw a hard line between designing for <em>calibrated trust</em> and designing to <em>manipulate</em> users into trusting a flawed, biased, or harmful system. For example, if an AI system designed for loan approvals consistently discriminates against certain demographics but presents a user interface that implies fairness and transparency, this would be an instance of trustwashing.</p><p>Another example of trustwashing would be if an AI medical diagnostic tool occasionally misdiagnoses conditions, but the user interface makes it seem infallible. To avoid trustwashing, the system should clearly communicate the potential for error and the need for human oversight.</p><p>Our goal must be to create genuinely trustworthy systems, not just the perception of trust. Using these principles to lull users into a false sense of security is a betrayal of our professional ethics.</p><p><strong>To avoid and prevent trustwashing, researchers and UX teams should:</strong></p><ul><li><strong>Prioritize genuine transparency.</strong><br></br>Clearly communicate the limitations, biases, and uncertainties of AI systems. Don’t overstate capabilities or obscure potential risks.</li><li><strong>Conduct rigorous, independent evaluations.</strong><br></br>Go beyond internal testing and seek external validation of system performance, fairness, and robustness.</li><li><strong>Engage with diverse stakeholders.</strong><br></br>Involve users, ethics experts, and impacted communities in the design, development, and evaluation processes to identify potential harms and build genuine trust.</li><li><strong>Be accountable for outcomes.</strong><br></br>Take responsibility for the societal impact of AI systems, even if unintended. Establish mechanisms for redress and continuous improvement.</li><li><strong>Be accountable for outcomes.</strong><br></br>Establish clear and accessible mechanisms for redress when harm occurs, ensuring that individuals and communities affected by AI decisions have avenues for recourse and compensation.</li><li><strong>Educate the public.</strong><br></br>Help users understand how AI works, its limitations, and what to look for when evaluating AI products.</li><li><strong>Advocate for ethical guidelines and regulations.</strong><br></br>Support the development and implementation of industry standards and policies that promote responsible AI development and prevent deceptive practices.</li><li><strong>Be wary of marketing hype.</strong><br></br>Critically assess claims made about AI systems, especially those that emphasize “trustworthiness” without clear evidence or detailed explanations.</li><li><strong>Publish negative findings.</strong><br></br>Don’t shy away from reporting challenges, failures, or ethical dilemmas encountered during research. Transparency about limitations is crucial for building long-term trust.</li><li><strong>Focus on user empowerment.</strong><br></br>Design systems that give users control, agency, and understanding rather than just passively accepting AI outputs.</li></ul><h4 id="the-duty-to-advocate">The Duty To Advocate</h4><p>When our research uncovers deep-seated distrust or potential harm — like the fear of job displacement — our job has only just begun. We have an ethical duty to advocate for that user. In my experience directing research teams, I’ve seen that the hardest part of our job is often carrying these uncomfortable truths into rooms where decisions are made. We must champion these findings and advocate for <strong>design and strategy shifts that prioritize user well-being, even when it challenges the product roadmap</strong>.</p><p>I personally try to approach presenting this information as an opportunity for growth and improvement, rather than a negative challenge.</p><p>For example, instead of stating <em>“Users don’t trust our AI because they fear job displacement,”</em> I might frame it as <em>“Addressing user concerns about job displacement presents a significant opportunity to build deeper trust and long-term loyalty by demonstrating our commitment to responsible AI development and exploring features that enhance human capabilities rather than replace them.”</em> This reframing can shift the conversation from a defensive posture to a proactive, problem-solving mindset, encouraging collaboration and innovative solutions that ultimately benefit both the user and the business.</p><p>It’s no secret that one of the more appealing areas for businesses to use AI is in workforce reduction. In reality, there will be many cases where businesses look to cut 10–20% of a particular job family due to the perceived efficiency gains of AI. However, giving users the opportunity to shape the product may steer it in a direction that makes them <strong>feel safer</strong> than if they do not provide feedback. We should not attempt to convince users they are wrong if they are distrustful of AI. We should appreciate that they are willing to provide feedback, creating an experience that is informed by the human experts who have long been doing the task being automated.</p><h2 id="conclusion-building-our-digital-future-on-a-foundation-of-trust">Conclusion: Building Our Digital Future On A Foundation Of Trust</h2><p>The rise of AI is not the first major technological shift our field has faced. However, it presents one of the most significant psychological challenges of our current time. Building products that are not just usable but also <strong>responsible</strong>, <strong>humane</strong>, and <strong>trustworthy</strong> is our obligation as UX professionals.</p><p><strong>Trust is not a soft metric.</strong> It is the fundamental currency of any successful human-technology relationship. By understanding its psychological roots, measuring it with rigor, and designing for it with intent and integrity, we can move from creating “intelligent” products to building a future where users can place their confidence in the tools they use every day. A trust that is earned and deserved.</p><h3 id="table-1-published-academic-scales-measuring-trust-in-automated-systems">Table 1: Published Academic Scales Measuring Trust In Automated Systems</h3><table><thead><tr><th>Survey Tool Name</th><th>Focus</th><th>Key Dimensions of Trust</th><th>Citation</th></tr></thead><tbody><tr><td>Trust in Automation Scale</td><td>12-item questionnaire to assess trust between people and automated systems.</td><td>Measures a general level of trust, including reliability, predictability, and confidence.</td><td>Jian, J. Y., Bisantz, A. M., &amp; Drury, C. G. (2000). <a href="https://www.researchgate.net/publication/247502831_Foundations_for_an_Empirically_Determined_Scale_of_Trust_in_Automated_Systems">Foundations for an empirically determined scale of trust in automated systems</a>. International Journal of Cognitive Ergonomics, 4(1), 53–71.</td></tr><tr><td>Trust of Automated Systems Test (TOAST)</td><td>9-items used to measure user trust in a variety of automated systems, designed for quick administration.</td><td>Divided into two main subscales: Understanding (user’s comprehension of the system) and Performance (belief in the system’s effectiveness).</td><td>Wojton, H. M., Porter, D., Lane, S. T., Bieber, C., &amp; Madhavan, P. (2020). <a href="https://research.testscience.org/post/2019-initial-validation-of-the-trust-of-automated-systems-test-toast/paper.pdf">Initial validation of the trust of automated systems test (TOAST)</a>. (PDF) The Journal of Social Psychology, 160(6), 735–750.</td></tr><tr><td>Trust in Automation Questionnaire</td><td>A 19-item questionnaire capable of predicting user reliance on automated systems. A 2-item subscale is available for quick assessments; the full tool is recommended for a more thorough analysis.</td><td>Measures 6 factors: Reliability, Understandability, Propensity to trust, Intentions of developers, Familiarity, Trust in automation</td><td>Körber, M. (2018). <a href="https://www.researchgate.net/publication/323611886_Theoretical_considerations_and_development_of_a_questionnaire_to_measure_trust_in_automation">Theoretical considerations and development of a questionnaire to measure trust in automation</a>. In Proceedings 20th Triennial Congress of the IEA. Springer.</td></tr><tr><td>Human Computer Trust Scale</td><td>12-item questionnaire created to provide an empirically sound tool for assessing user trust in technology.</td><td>Divided into two key factors:<ol><li><strong>Benevolence and Competence</strong>: This dimension captures the positive attributes of the technology</li><li><strong>Perceived Risk</strong>: This factor measures the user’s subjective assessment of the potential for negative consequences when using a technical artifact.</li></ol></td><td>Siddharth Gulati, Sonia Sousa &amp; David Lamas (2019): <a href="https://www.researchgate.net/profile/Sonia-Sousa-9/publication/335667672_Towards_an_empirically_developed_scale_for_measuring_trust/links/5f6f36d7458515b7cf508e88/Towards-an-empirically-developed-scale-for-measuring-trust.pdf">Design, development and evaluation of a human-computer trust scale</a>, (PDF) Behaviour &amp; Information Technology</td></tr></tbody></table><h3 id="appendix-a-trust-building-tactics-checklist">Appendix A: Trust-Building Tactics Checklist</h3><p>To design for calibrated trust, consider implementing the following tactics, organized by the four pillars of trust:</p><h4 id="1-ability-competence-predictability">1. Ability (Competence) &amp; Predictability</h4><ul><li>✅ <strong>Set Clear Expectations:</strong> Use onboarding, tooltips, and empty states to honestly communicate the AI’s strengths and weaknesses.</li><li>✅ <strong>Show Confidence Levels:</strong> Display the AI’s uncertainty (e.g., “70% chance,” “85% confident”) or highlight less certain parts of its output.</li><li>✅ <strong>Provide Explainability (XAI):</strong> Offer useful, human-understandable rationales for the AI’s decisions or recommendations (e.g., “Because you frequently read X, I’m recommending Y”).</li><li>✅ <strong>Design for Graceful Error Handling:</strong><ul><li>✅ Acknowledge errors humbly (e.g., “My apologies, I misunderstood that request.”).</li><li>✅ Provide easy paths to correction (e. ] g., prominent feedback mechanisms like thumbs up/down).</li><li>✅ Show that feedback is being used (e.g., “Thank you, I’m learning from your correction”).</li></ul></li><li>✅ <strong>Design for “I Don’t Know” Responses:</strong><ul><li>✅ Acknowledge limitations honestly.</li><li>✅ Prioritize a high-quality, helpful fallback experience when the AI cannot answer.</li></ul></li><li>✅ <strong>Prioritize Transparency:</strong> Clearly communicate the AI’s capabilities and limitations, especially if responses are generated.</li></ul><h4 id="2-benevolence-1">2. Benevolence</h4><ul><li>✅ <strong>Address Existential Fears:</strong> When users express concerns (e.g., job displacement), validate their concerns and reframe the feedback into actionable insights about collaborative tools.</li><li>✅ <strong>Prioritize User Well-being:</strong> Advocate for design and strategy shifts that prioritize user well-being, even if it challenges the product roadmap.</li><li>✅ <strong>Emphasize User Control:</strong> Provide clear ways for users to give feedback, correct errors, or opt out of AI features.</li></ul><h4 id="3-integrity-1">3. Integrity</h4><ul><li>✅ <strong>Adhere to Ethical Principles:</strong> Ensure the AI operates on predictable, ethical principles, demonstrating fairness and honesty.</li><li>✅ <strong>Prioritize Genuine Transparency:</strong> Clearly communicate the limitations, biases, and uncertainties of AI systems; avoid overstating capabilities or obscuring risks.</li><li>✅ <strong>Conduct Rigorous, Independent Evaluations:</strong> Seek external validation of system performance, fairness, and robustness to mitigate bias.</li><li>✅ <strong>Engage Diverse Stakeholders:</strong> Involve users, ethics experts, and impacted communities in the design and evaluation processes.</li><li>✅ <strong>Be Accountable for Outcomes:</strong> Establish clear mechanisms for redress and continuous improvement for societal impacts, even if unintended.</li><li>✅ <strong>Educate the Public:</strong> Help users understand how AI works, its limitations, and how to evaluate AI products.</li><li>✅ <strong>Advocate for Ethical Guidelines:</strong> Support the development and implementation of industry standards and policies that promote responsible AI.</li><li>✅ <strong>Be Wary of Marketing Hype:</strong> Critically assess claims about AI “trustworthiness” and demand verifiable data.</li><li>✅ <strong>Publish Negative Findings:</strong> Be transparent about challenges, failures, or ethical dilemmas encountered during research.</li></ul><h4 id="4-predictability-reliability-1">4. Predictability &amp; Reliability</h4><ul><li>✅ <strong>Set Clear Expectations:</strong> Use onboarding, tooltips, and empty states to honestly communicate what the AI is good at and where it might struggle.</li><li>✅ <strong>Show Confidence Levels:</strong> Instead of just giving an answer, have the AI signal its own uncertainty.</li><li>✅ <strong>Provide Explainability (XAI) and Transparency:</strong> Offer a useful, human-understandable rationale for AI decisions.</li><li>✅ <strong>Design for Graceful Error Handling:</strong> Acknowledge errors humbly and provide easy paths to correction.</li><li>✅ <strong>Prioritize the “I Don’t Know” Experience:</strong> Frame “I don’t know” as a feature and design a high-quality fallback experience.</li><li>✅ <strong>Prioritize Transparency (UX Writing):</strong> Clearly communicate the AI’s capabilities and limitations, especially when it’s still learning or if responses are generated.</li><li>✅ <strong>Design for Explainability (UX Writing):</strong> Explain the reasoning behind AI recommendations, decisions, or complex outputs.</li></ul><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/psychology-trust-ai-guide-measuring-designing-user-confidence.jpg" /><h1>A Guide To Measuring And Designing For User Confidence — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>21 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/ai">AI</a>, <a href="http://www.smashingmagazine.com/category/guides">Guides</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>When AI “hallucinates,” it’s more than just a glitch — it’s a collapse of trust. As generative AI becomes part of more digital products, trust has become the invisible user interface. But trust isn’t mystical. It can be understood, measured, and designed for. Here is a practical guide for designing more trustworthy and ethical AI systems.</section></p><p>Misuse and misplaced trust of AI is becoming an unfortunate <a href="https://www.damiencharlotin.com/hallucinations/">common event</a>. For example, lawyers trying to leverage the power of generative AI for research submit court filings citing multiple compelling legal precedents. The problem? The AI had confidently, eloquently, and completely fabricated the cases cited. The resulting sanctions and public embarrassment can become <a href="https://www.lawnext.com/2025/05/ai-hallucinations-strike-again-two-more-cases-where-lawyers-face-judicial-wrath-for-fake-citations.html">a viral cautionary tale</a>, shared across social media as a stark example of AI’s fallibility.</p><p>This goes beyond a technical glitch; it’s a catastrophic <strong>failure of trust in AI tools</strong> in an industry where accuracy and trust are critical. The trust issue here is twofold — the law firms are submitting briefs in which they have blindly over-trusted the AI tool to return accurate information. The subsequent fallout can lead to a strong distrust in AI tools, to the point where platforms featuring AI might not be considered for use until trust is reestablished.</p><p>Issues with trusting AI aren’t limited to the legal field. We are seeing the impact of fictional AI-generated information in critical fields such as <a href="https://apnews.com/article/ai-artificial-intelligence-health-business-90020cdf5fa16c79ca2e5b6c4c9bbb14">healthcare</a> and <a href="https://mitsloanedtech.mit.edu/ai/basics/addressing-ai-hallucinations-and-bias/">education</a>. On a more personal scale, many of us have had the experience of asking Siri or Alexa to perform a task, only to have it done incorrectly or not at all, for no apparent reason. I’m guilty of sending more than one out-of-context hands-free text to an unsuspecting contact after Siri mistakenly pulls up a completely different name than the one I’d requested.</p><figure><a href="https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/1-siri-confuse-recipient-message.png"><img alt="Cartoon illustration split into two panels. On the left, a man in a blue hoodie speaks into his phone, saying, “Siri, text Dave, I’m waiting outside of your door.” On the right, a cheerful cartoon phone with a face and arms replies, “I have just texted Martha, I am standing outside of your door.”" decoding="async" fetchpriority="low" height="410" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/1-siri-confuse-recipient-message.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/1-siri-confuse-recipient-message.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/1-siri-confuse-recipient-message.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/1-siri-confuse-recipient-message.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/1-siri-confuse-recipient-message.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/1-siri-confuse-recipient-message.png 2000w" width="800"></img></a><figcaption>Figure 1: Siri and Alexa often tend to confuse the recipient of my message, causing me to distrust using them when accuracy matters. Image generated using Gemini Pro. (<a href="https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/1-siri-confuse-recipient-message.png">Large preview</a>)</figcaption></figure><p>With digital products moving to incorporate generative and agentic AI at an increasingly frequent rate, <strong>trust has become the invisible user interface</strong>. When it works, our interactions are seamless and powerful. When it breaks, the entire experience collapses, with potentially devastating consequences. As UX professionals, we’re on the front lines of a new twist on a common challenge. How do we build products that users can rely on? And how do we even begin to measure something as ephemeral as trust in AI?</p><p>Trust isn’t a mystical quality. It is a psychological construct built on predictable factors. I won’t dive deep into academic literature on trust in this article. However, it is important to understand that trust is a concept that can be <strong>understood</strong>, <strong>measured</strong>, and <strong>designed for</strong>. This article will provide a <strong>practical guide</strong> for UX researchers and designers. We will briefly explore the psychological anatomy of trust, offer concrete methods for measuring it, and provide actionable strategies for designing more trustworthy and ethical AI systems.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="the-anatomy-of-trust-a-psychological-framework-for-ai">The Anatomy of Trust: A Psychological Framework for AI</h2><p>To build trust, we must first understand its components. Think of trust like a four-legged stool. If any one leg is weak, the whole thing becomes unstable. Based on classic <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC10083508/#:~:text=The%20model%20of%20interpersonal%20trust,in%20human%20interpersonal%20trust%20development.">psychological models</a>, we can adapt these “legs” for the AI context.</p><h3 id="1-ability-or-competence">1. Ability (or Competence)</h3><p>This is the most straightforward pillar: Does the AI have the <strong>skills</strong> to perform its function accurately and effectively? If a weather app is consistently wrong, you stop trusting it. If an AI legal assistant creates fictitious cases, it has failed the basic test of ability. This is the functional, foundational layer of trust.</p><h3 id="2-benevolence">2. Benevolence</h3><p>This moves from function to <strong>intent</strong>. Does the user believe the AI is acting in their best interest? A GPS that suggests a toll-free route even if it’s a few minutes longer might be perceived as benevolent. Conversely, an AI that aggressively pushes sponsored products feels self-serving, eroding this sense of benevolence. This is where user fears, such as concerns about job displacement, directly challenge trust—the user starts to believe the AI is not on their side.</p><h3 id="3-integrity">3. Integrity</h3><p>Does AI operate on predictable and ethical principles? This is about <strong>transparency</strong>, <strong>fairness</strong>, and <strong>honesty</strong>. An AI that clearly states how it uses personal data demonstrates integrity. A system that quietly changes its terms of service or uses dark patterns to get users to agree to something violates integrity. An AI job recruiting tool that has subtle yet extremely harmful social biases, existing in the algorithm, violates integrity.</p><h3 id="4-predictability-reliability">4. Predictability &amp; Reliability</h3><p>Can the user form a <strong>stable and accurate mental model</strong> of how the AI will behave? Unpredictability, even if the outcomes are occasionally good, creates anxiety. A user needs to know, roughly, what to expect. An AI that gives a radically different answer to the same question asked twice is unpredictable and, therefore, hard to trust.</p><h2 id="the-trust-spectrum-the-goal-of-a-well-calibrated-relationship">The Trust Spectrum: The Goal of a Well-Calibrated Relationship</h2><p>Our goal as UX professionals shouldn’t be to maximize trust at all costs. An employee who blindly trusts every email they receive is a security risk. Likewise, a user who blindly trusts every AI output can be led into dangerous situations, such as the legal briefs referenced at the beginning of this article. The goal is <em>well-calibrated</em> trust.</p><p>Think of it as a spectrum where the upper-mid level is the ideal state for a truly trustworthy product to achieve:</p><ul><li><strong>Active Distrust</strong><br></br>The user believes the AI is incompetent or malicious. They will avoid it or actively work against it.</li><li><strong>Suspicion &amp; Scrutiny</strong><br></br>The user interacts cautiously, constantly verifying the AI’s outputs. This is a common and often healthy state for users of new AI.</li><li><strong>Calibrated Trust (The Ideal State)</strong><br></br>This is the sweet spot. The user has an accurate understanding of the AI’s capabilities—its strengths and, crucially, its weaknesses. They know when to rely on it and when to be skeptical.</li><li><strong>Over-trust &amp; Automation Bias</strong><br></br>The user unquestioningly accepts the AI’s outputs. This is where users follow flawed AI navigation into a field or accept a fictional legal brief as fact.</li></ul><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aOur%20job%20is%20to%20design%20experiences%20that%20guide%20users%20away%20from%20the%20dangerous%20poles%20of%20Active%20Distrust%20and%20Over-trust%20and%20toward%20that%20healthy,%20realistic%20middle%20ground%20of%20Calibrated%20Trust.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fpsychology-trust-ai-guide-measuring-designing-user-confidence%2f">Our job is to design experiences that guide users away from the dangerous poles of Active Distrust and Over-trust and toward that healthy, realistic middle ground of Calibrated Trust.</a></p></blockquote><figure><a href="https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/2-trust-spectrum.png"><img alt="The trust spectrum" decoding="async" fetchpriority="low" height="307" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/2-trust-spectrum.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/2-trust-spectrum.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/2-trust-spectrum.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/2-trust-spectrum.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/2-trust-spectrum.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/2-trust-spectrum.png 2000w" width="800"></img></a><figcaption>Figure 2: Build user trust in your AI product, avoiding both distrust and over-reliance. Image generated using Gemini Pro. (<a href="https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/2-trust-spectrum.png">Large preview</a>)</figcaption></figure><p>Trust feels abstract, but it leaves measurable fingerprints. Academics in the social sciences have done much to define both what trust looks like and how it might be measured. As researchers, we can capture these signals through a mix of <strong>qualitative</strong>, <strong>quantitative</strong>, and <strong>behavioral</strong> methods.</p><h3 id="qualitative-probes-listening-for-the-language-of-trust">Qualitative Probes: Listening For The Language Of Trust</h3><p>During interviews and usability tests, go beyond <em>“Was that easy to use?”</em> and listen for the underlying psychology. Here are some questions you can start using tomorrow:</p><ul><li><strong>To measure Ability:</strong><br></br><em>“Tell me about a time this tool’s performance surprised you, either positively or negatively.”</em></li><li><strong>To measure Benevolence:</strong><br></br><em>“Do you feel this system is on your side? What gives you that impression?”</em></li><li><strong>To measure Integrity:</strong><br></br><em>“If this AI made a mistake, how would you expect it to handle it? What would be a fair response?”</em></li><li><strong>To measure Predictability:</strong><br></br><em>“Before you clicked that button, what did you expect the AI to do? How closely did it match your expectation?”</em></li></ul><h3 id="investigating-existential-fears-the-job-displacement-scenario">Investigating Existential Fears (The Job Displacement Scenario)</h3><p>One of the most potent challenges to an AI’s Benevolence is the fear of job displacement. When a participant expresses this, it is a critical research finding. It requires a specific, ethical probing technique.</p><p>Imagine a participant says, <em>“Wow, it does that part of my job pretty well. I guess I should be worried.”</em></p><p>An untrained researcher might get defensive or dismiss the comment. An ethical, trained researcher validates and explores:</p><blockquote>“Thank you for sharing that; it’s a vital perspective, and it’s exactly the kind of feedback we need to hear. Can you tell me more about what aspects of this tool make you feel that way? In an ideal world, how would a tool like this work <strong>with</strong> you to make your job better, not to replace it?”</blockquote><p>This approach respects the participant, validates their concern, and reframes the feedback into an actionable insight about designing a collaborative, augmenting tool rather than a replacement. Similarly, your findings should reflect the concern users expressed about replacement. We shouldn’t pretend this fear doesn’t exist, nor should we pretend that every AI feature is being implemented with pure intention. Users know better than that, and we should be prepared to argue on their behalf for how the technology might best co-exist within their roles.</p><h3 id="quantitative-measures-putting-a-number-on-confidence">Quantitative Measures: Putting A Number On Confidence</h3><p>You can quantify trust without needing a data science degree. After a user completes a task with an AI, supplement your standard usability questions with a few simple Likert-scale items:</p><ul><li><em>“The AI’s suggestion was reliable.”</em> (1-7, Strongly Disagree to Strongly Agree)</li><li><em>“I am confident in the AI’s output.”</em> (1-7)</li><li><em>“I understood why the AI made that recommendation.”</em> (1-7)</li><li><em>“The AI responded in a way that I expected.”</em> (1-7)</li><li><em>“The AI provided consistent responses over time.”</em> (1-7)</li></ul><p>Over time, these metrics can track how trust is changing as your product evolves.</p><p><strong>Note</strong>: <em>If you want to go beyond these simple questions that I’ve made up, there are numerous scales (measurements) of trust in technology that exist in academic literature. It might be an interesting endeavor to measure some relevant psychographic and demographic characteristics of your users and see how that correlates with trust in AI/your product. <a href="#table-1-published-academic-scales-measuring-trust-in-automated-systems">Table 1 at the end of the article</a> contains four examples of current scales you might consider using to measure trust. You can decide which is best for your application, or you might pull some of the items from any of the scales if you aren’t looking to publish your findings in an academic journal, yet want to use items that have been subjected to some level of empirical scrutiny.</em></p><h3 id="behavioral-metrics-observing-what-users-do-not-just-what-they-say">Behavioral Metrics: Observing What Users Do, Not Just What They Say</h3><p>People’s true feelings are often revealed in their actions. You can use behaviors that reflect the specific context of use for your product. Here are a few general metrics that might apply to most AI tools that give insight into users’ behavior and the trust they place in your tool.</p><ul><li><strong>Correction Rate</strong><br></br>How often do users manually edit, undo, or ignore the AI’s output? A high correction rate is a powerful signal of low trust in its Ability.</li><li><strong>Verification Behavior</strong><br></br>Do users switch to Google or open another application to double-check the AI’s work? This indicates they don’t trust it as a standalone source of truth. It can also potentially be positive that they are calibrating their trust in the system when they use it up front.</li><li><strong>Disengagement</strong><br></br>Do users turn the AI feature off? Do they stop using it entirely after one bad experience? This is the ultimate behavioral vote of no confidence.</li></ul><h2 id="designing-for-trust-from-principles-to-pixels">Designing For Trust: From Principles to Pixels</h2><p>Once you’ve researched and measured trust, you can begin to design for it. This means translating psychological principles into tangible interface elements and user flows.</p><h3 id="designing-for-competence-and-predictability">Designing for Competence and Predictability</h3><ul><li><strong>Set Clear Expectations</strong><br></br>Use onboarding, tooltips, and empty states to honestly communicate what the AI is good at and where it might struggle. A simple <em>“I’m still learning about [topic X], so please double-check my answers”</em> can work wonders.</li><li><strong>Show Confidence Levels</strong><br></br>Instead of just giving an answer, have the AI signal its own uncertainty. A weather app that says <em>“70% chance of rain”</em> is more trustworthy than one that just says <em>“It will rain”</em> and is wrong. An AI could say, <em>“I’m 85% confident in this summary,”</em> or highlight sentences it’s less sure about.</li></ul><h3 id="the-role-of-explainability-xai-and-transparency">The Role of Explainability (XAI) and Transparency</h3><p>Explainability isn’t about showing users the code. It’s about providing a <em>useful, human-understandable rationale</em> for a decision.</p><blockquote><strong>Instead of:</strong><br></br>“Here is your recommendation.”<p><strong>Try:</strong>“Because you frequently read articles about UX research methods, I’m recommending this new piece on measuring trust in AI.”</p></blockquote><p>This addition transforms AI from an opaque oracle to a transparent logical partner.</p><p>Many of the popular AI tools (e.g., ChatGPT and Gemini) show the thinking that went into the response they provide to a user. Figure 3 shows the steps Gemini went through to provide me with a non-response when I asked it to help me generate the masterpiece displayed above in Figure 2. While this might be more information than most users care to see, it provides a useful resource for a user to audit how the response came to be, and it has provided me with instructions on how I might proceed to address my task.</p><figure><a href="https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/3-gemini-explains-response.png"><img alt="Gemini explains its process and why it can’t complete a task" decoding="async" fetchpriority="low" height="740" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/3-gemini-explains-response.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/3-gemini-explains-response.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/3-gemini-explains-response.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/3-gemini-explains-response.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/3-gemini-explains-response.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/3-gemini-explains-response.png 2000w" width="800"></img></a><figcaption>Figure 3: Gemini shows its process and why it can’t complete a task I’ve asked it to perform. Smartly, it suggests an alternative way to achieve what I’ve requested. (<a href="https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/3-gemini-explains-response.png">Large preview</a>)</figcaption></figure><p>Figure 4 shows an example of a <a href="https://openai.com/index/gpt-4o-system-card/">scorecard</a> OpenAI makes available as an attempt to increase users’ trust. These scorecards are available for each ChatGPT model and go into the specifics of how the models perform as it relates to key areas such as hallucinations, health-based conversations, and much more. In reading the scorecards closely, you will see that no AI model is perfect in any area. The user must remain in a trust but verify mode to make the relationship between human reality and AI work in a way that avoids potential catastrophe. There should never be blind trust in an LLM.</p><figure><a href="https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/4-openai-scorecard-gpt-4o.png"><img alt="Example of OpenAI scorecard for GPT-4o" decoding="async" fetchpriority="low" height="363" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/4-openai-scorecard-gpt-4o.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/4-openai-scorecard-gpt-4o.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/4-openai-scorecard-gpt-4o.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/4-openai-scorecard-gpt-4o.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/4-openai-scorecard-gpt-4o.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/4-openai-scorecard-gpt-4o.png 2000w" width="800"></img></a><figcaption>Figure 4: Example of OpenAI scorecard for GPT-4o. (<a href="https://files.smashing.media/articles/psychology-trust-ai-guide-measuring-designing-user-confidence/4-openai-scorecard-gpt-4o.png">Large preview</a>)</figcaption></figure><h3 id="designing-for-trust-repair-graceful-error-handling-and-not-knowing-an-answer">Designing For Trust Repair (Graceful Error Handling) And Not Knowing an Answer</h3><p>Your AI will make mistakes.</p><blockquote>Trust is not determined by the absence of errors, but by how those errors are handled.</blockquote><ul><li><strong>Acknowledge Errors Humbly.</strong><br></br>When the AI is wrong, it should be able to state that clearly. <em>“My apologies, I misunderstood that request. Could you please rephrase it?”</em> is far better than silence or a nonsensical answer.</li><li><strong>Provide an Easy Path to Correction.</strong><br></br>Make feedback mechanisms (like thumbs up/down or a correction box) obvious. More importantly, show that the feedback is being used. A <em>“Thank you, I’m learning from your correction”</em> can help rebuild trust after a failure. As long as this is true.</li></ul><p>Likewise, your AI can’t know everything. You should acknowledge this to your users.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aUX%20practitioners%20should%20work%20with%20the%20product%20team%20to%20ensure%20that%20honesty%20about%20limitations%20is%20a%20core%20product%20principle.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fpsychology-trust-ai-guide-measuring-designing-user-confidence%2f">UX practitioners should work with the product team to ensure that honesty about limitations is a core product principle.</a></p></blockquote><p>This can include the following:</p><ul><li><strong>Establish User-Centric Metrics:</strong> Instead of only measuring engagement or task completion, UXers can work with product managers to define and track metrics like:<ul><li><strong>Hallucination Rate:</strong> The frequency with which the AI provides verifiably false information.</li><li><strong>Successful Fallback Rate:</strong> How often the AI correctly identifies its inability to answer and provides a helpful, honest alternative.</li></ul></li><li><strong>Prioritize the “I Don’t Know” Experience:</strong> UXers should frame the “I don’t know” response not as an error state, but as a critical feature. They must lobby for the engineering and content resources needed to design a high-quality, helpful fallback experience.</li></ul><h2 id="ux-writing-and-trust">UX Writing And Trust</h2><p>All of these considerations highlight the critical role of <a href="https://lmsanchez.medium.com/what-is-ux-writing-1eb71b0f0606">UX writing</a> in the development of trustworthy AI. UX writers are the architects of the AI’s voice and tone, ensuring that its communication is clear, honest, and empathetic. They translate complex technical processes into user-friendly explanations, craft helpful error messages, and design conversational flows that build confidence and rapport. Without <strong>thoughtful UX writing</strong>, even the most technologically advanced AI can feel opaque and untrustworthy.</p><p>The words and phrases an AI uses are its primary interface with users. UX writers are uniquely positioned to shape this interaction, ensuring that every tooltip, prompt, and response contributes to a positive and trust-building experience. Their expertise in <strong>human-centered language and design</strong> is indispensable for creating AI systems that not only perform well but also earn and maintain the trust of their users.</p><p>A few key areas for UX writers to focus on when writing for AI include:</p><ul><li><strong>Prioritize Transparency</strong><br></br>Clearly communicate the AI’s capabilities and limitations, especially when it’s still learning or if its responses are generated rather than factual. Use phrases that indicate the AI’s nature, such as <em>“As an AI, I can&amp;mldr;”</em> or <em>“This is a generated response.”</em></li><li><strong>Design for Explainability</strong><br></br>When the AI provides a recommendation, decision, or complex output, strive to explain the reasoning behind it in an understandable way. This builds trust by showing the user how the AI arrived at its conclusion.</li><li><strong>Emphasize User Control</strong><br></br>Empower users by providing clear ways to provide feedback, correct errors, or opt out of certain AI features. This reinforces the idea that the user is in control and the AI is a tool to assist them.</li></ul><h2 id="the-ethical-tightrope-the-researcher-s-responsibility">The Ethical Tightrope: The Researcher’s Responsibility</h2><p>As the people responsible for understanding and advocating for users, we walk an ethical tightrope. Our work comes with profound responsibilities.</p><h3 id="the-danger-of-trustwashing">The Danger Of “Trustwashing”</h3><p>We must draw a hard line between designing for <em>calibrated trust</em> and designing to <em>manipulate</em> users into trusting a flawed, biased, or harmful system. For example, if an AI system designed for loan approvals consistently discriminates against certain demographics but presents a user interface that implies fairness and transparency, this would be an instance of trustwashing.</p><p>Another example of trustwashing would be if an AI medical diagnostic tool occasionally misdiagnoses conditions, but the user interface makes it seem infallible. To avoid trustwashing, the system should clearly communicate the potential for error and the need for human oversight.</p><p>Our goal must be to create genuinely trustworthy systems, not just the perception of trust. Using these principles to lull users into a false sense of security is a betrayal of our professional ethics.</p><p><strong>To avoid and prevent trustwashing, researchers and UX teams should:</strong></p><ul><li><strong>Prioritize genuine transparency.</strong><br></br>Clearly communicate the limitations, biases, and uncertainties of AI systems. Don’t overstate capabilities or obscure potential risks.</li><li><strong>Conduct rigorous, independent evaluations.</strong><br></br>Go beyond internal testing and seek external validation of system performance, fairness, and robustness.</li><li><strong>Engage with diverse stakeholders.</strong><br></br>Involve users, ethics experts, and impacted communities in the design, development, and evaluation processes to identify potential harms and build genuine trust.</li><li><strong>Be accountable for outcomes.</strong><br></br>Take responsibility for the societal impact of AI systems, even if unintended. Establish mechanisms for redress and continuous improvement.</li><li><strong>Be accountable for outcomes.</strong><br></br>Establish clear and accessible mechanisms for redress when harm occurs, ensuring that individuals and communities affected by AI decisions have avenues for recourse and compensation.</li><li><strong>Educate the public.</strong><br></br>Help users understand how AI works, its limitations, and what to look for when evaluating AI products.</li><li><strong>Advocate for ethical guidelines and regulations.</strong><br></br>Support the development and implementation of industry standards and policies that promote responsible AI development and prevent deceptive practices.</li><li><strong>Be wary of marketing hype.</strong><br></br>Critically assess claims made about AI systems, especially those that emphasize “trustworthiness” without clear evidence or detailed explanations.</li><li><strong>Publish negative findings.</strong><br></br>Don’t shy away from reporting challenges, failures, or ethical dilemmas encountered during research. Transparency about limitations is crucial for building long-term trust.</li><li><strong>Focus on user empowerment.</strong><br></br>Design systems that give users control, agency, and understanding rather than just passively accepting AI outputs.</li></ul><h4 id="the-duty-to-advocate">The Duty To Advocate</h4><p>When our research uncovers deep-seated distrust or potential harm — like the fear of job displacement — our job has only just begun. We have an ethical duty to advocate for that user. In my experience directing research teams, I’ve seen that the hardest part of our job is often carrying these uncomfortable truths into rooms where decisions are made. We must champion these findings and advocate for <strong>design and strategy shifts that prioritize user well-being, even when it challenges the product roadmap</strong>.</p><p>I personally try to approach presenting this information as an opportunity for growth and improvement, rather than a negative challenge.</p><p>For example, instead of stating <em>“Users don’t trust our AI because they fear job displacement,”</em> I might frame it as <em>“Addressing user concerns about job displacement presents a significant opportunity to build deeper trust and long-term loyalty by demonstrating our commitment to responsible AI development and exploring features that enhance human capabilities rather than replace them.”</em> This reframing can shift the conversation from a defensive posture to a proactive, problem-solving mindset, encouraging collaboration and innovative solutions that ultimately benefit both the user and the business.</p><p>It’s no secret that one of the more appealing areas for businesses to use AI is in workforce reduction. In reality, there will be many cases where businesses look to cut 10–20% of a particular job family due to the perceived efficiency gains of AI. However, giving users the opportunity to shape the product may steer it in a direction that makes them <strong>feel safer</strong> than if they do not provide feedback. We should not attempt to convince users they are wrong if they are distrustful of AI. We should appreciate that they are willing to provide feedback, creating an experience that is informed by the human experts who have long been doing the task being automated.</p><h2 id="conclusion-building-our-digital-future-on-a-foundation-of-trust">Conclusion: Building Our Digital Future On A Foundation Of Trust</h2><p>The rise of AI is not the first major technological shift our field has faced. However, it presents one of the most significant psychological challenges of our current time. Building products that are not just usable but also <strong>responsible</strong>, <strong>humane</strong>, and <strong>trustworthy</strong> is our obligation as UX professionals.</p><p><strong>Trust is not a soft metric.</strong> It is the fundamental currency of any successful human-technology relationship. By understanding its psychological roots, measuring it with rigor, and designing for it with intent and integrity, we can move from creating “intelligent” products to building a future where users can place their confidence in the tools they use every day. A trust that is earned and deserved.</p><h3 id="table-1-published-academic-scales-measuring-trust-in-automated-systems">Table 1: Published Academic Scales Measuring Trust In Automated Systems</h3><table><thead><tr><th>Survey Tool Name</th><th>Focus</th><th>Key Dimensions of Trust</th><th>Citation</th></tr></thead><tbody><tr><td>Trust in Automation Scale</td><td>12-item questionnaire to assess trust between people and automated systems.</td><td>Measures a general level of trust, including reliability, predictability, and confidence.</td><td>Jian, J. Y., Bisantz, A. M., &amp; Drury, C. G. (2000). <a href="https://www.researchgate.net/publication/247502831_Foundations_for_an_Empirically_Determined_Scale_of_Trust_in_Automated_Systems">Foundations for an empirically determined scale of trust in automated systems</a>. International Journal of Cognitive Ergonomics, 4(1), 53–71.</td></tr><tr><td>Trust of Automated Systems Test (TOAST)</td><td>9-items used to measure user trust in a variety of automated systems, designed for quick administration.</td><td>Divided into two main subscales: Understanding (user’s comprehension of the system) and Performance (belief in the system’s effectiveness).</td><td>Wojton, H. M., Porter, D., Lane, S. T., Bieber, C., &amp; Madhavan, P. (2020). <a href="https://research.testscience.org/post/2019-initial-validation-of-the-trust-of-automated-systems-test-toast/paper.pdf">Initial validation of the trust of automated systems test (TOAST)</a>. (PDF) The Journal of Social Psychology, 160(6), 735–750.</td></tr><tr><td>Trust in Automation Questionnaire</td><td>A 19-item questionnaire capable of predicting user reliance on automated systems. A 2-item subscale is available for quick assessments; the full tool is recommended for a more thorough analysis.</td><td>Measures 6 factors: Reliability, Understandability, Propensity to trust, Intentions of developers, Familiarity, Trust in automation</td><td>Körber, M. (2018). <a href="https://www.researchgate.net/publication/323611886_Theoretical_considerations_and_development_of_a_questionnaire_to_measure_trust_in_automation">Theoretical considerations and development of a questionnaire to measure trust in automation</a>. In Proceedings 20th Triennial Congress of the IEA. Springer.</td></tr><tr><td>Human Computer Trust Scale</td><td>12-item questionnaire created to provide an empirically sound tool for assessing user trust in technology.</td><td>Divided into two key factors:<ol><li><strong>Benevolence and Competence</strong>: This dimension captures the positive attributes of the technology</li><li><strong>Perceived Risk</strong>: This factor measures the user’s subjective assessment of the potential for negative consequences when using a technical artifact.</li></ol></td><td>Siddharth Gulati, Sonia Sousa &amp; David Lamas (2019): <a href="https://www.researchgate.net/profile/Sonia-Sousa-9/publication/335667672_Towards_an_empirically_developed_scale_for_measuring_trust/links/5f6f36d7458515b7cf508e88/Towards-an-empirically-developed-scale-for-measuring-trust.pdf">Design, development and evaluation of a human-computer trust scale</a>, (PDF) Behaviour &amp; Information Technology</td></tr></tbody></table><h3 id="appendix-a-trust-building-tactics-checklist">Appendix A: Trust-Building Tactics Checklist</h3><p>To design for calibrated trust, consider implementing the following tactics, organized by the four pillars of trust:</p><h4 id="1-ability-competence-predictability">1. Ability (Competence) &amp; Predictability</h4><ul><li>✅ <strong>Set Clear Expectations:</strong> Use onboarding, tooltips, and empty states to honestly communicate the AI’s strengths and weaknesses.</li><li>✅ <strong>Show Confidence Levels:</strong> Display the AI’s uncertainty (e.g., “70% chance,” “85% confident”) or highlight less certain parts of its output.</li><li>✅ <strong>Provide Explainability (XAI):</strong> Offer useful, human-understandable rationales for the AI’s decisions or recommendations (e.g., “Because you frequently read X, I’m recommending Y”).</li><li>✅ <strong>Design for Graceful Error Handling:</strong><ul><li>✅ Acknowledge errors humbly (e.g., “My apologies, I misunderstood that request.”).</li><li>✅ Provide easy paths to correction (e. ] g., prominent feedback mechanisms like thumbs up/down).</li><li>✅ Show that feedback is being used (e.g., “Thank you, I’m learning from your correction”).</li></ul></li><li>✅ <strong>Design for “I Don’t Know” Responses:</strong><ul><li>✅ Acknowledge limitations honestly.</li><li>✅ Prioritize a high-quality, helpful fallback experience when the AI cannot answer.</li></ul></li><li>✅ <strong>Prioritize Transparency:</strong> Clearly communicate the AI’s capabilities and limitations, especially if responses are generated.</li></ul><h4 id="2-benevolence-1">2. Benevolence</h4><ul><li>✅ <strong>Address Existential Fears:</strong> When users express concerns (e.g., job displacement), validate their concerns and reframe the feedback into actionable insights about collaborative tools.</li><li>✅ <strong>Prioritize User Well-being:</strong> Advocate for design and strategy shifts that prioritize user well-being, even if it challenges the product roadmap.</li><li>✅ <strong>Emphasize User Control:</strong> Provide clear ways for users to give feedback, correct errors, or opt out of AI features.</li></ul><h4 id="3-integrity-1">3. Integrity</h4><ul><li>✅ <strong>Adhere to Ethical Principles:</strong> Ensure the AI operates on predictable, ethical principles, demonstrating fairness and honesty.</li><li>✅ <strong>Prioritize Genuine Transparency:</strong> Clearly communicate the limitations, biases, and uncertainties of AI systems; avoid overstating capabilities or obscuring risks.</li><li>✅ <strong>Conduct Rigorous, Independent Evaluations:</strong> Seek external validation of system performance, fairness, and robustness to mitigate bias.</li><li>✅ <strong>Engage Diverse Stakeholders:</strong> Involve users, ethics experts, and impacted communities in the design and evaluation processes.</li><li>✅ <strong>Be Accountable for Outcomes:</strong> Establish clear mechanisms for redress and continuous improvement for societal impacts, even if unintended.</li><li>✅ <strong>Educate the Public:</strong> Help users understand how AI works, its limitations, and how to evaluate AI products.</li><li>✅ <strong>Advocate for Ethical Guidelines:</strong> Support the development and implementation of industry standards and policies that promote responsible AI.</li><li>✅ <strong>Be Wary of Marketing Hype:</strong> Critically assess claims about AI “trustworthiness” and demand verifiable data.</li><li>✅ <strong>Publish Negative Findings:</strong> Be transparent about challenges, failures, or ethical dilemmas encountered during research.</li></ul><h4 id="4-predictability-reliability-1">4. Predictability &amp; Reliability</h4><ul><li>✅ <strong>Set Clear Expectations:</strong> Use onboarding, tooltips, and empty states to honestly communicate what the AI is good at and where it might struggle.</li><li>✅ <strong>Show Confidence Levels:</strong> Instead of just giving an answer, have the AI signal its own uncertainty.</li><li>✅ <strong>Provide Explainability (XAI) and Transparency:</strong> Offer a useful, human-understandable rationale for AI decisions.</li><li>✅ <strong>Design for Graceful Error Handling:</strong> Acknowledge errors humbly and provide easy paths to correction.</li><li>✅ <strong>Prioritize the “I Don’t Know” Experience:</strong> Frame “I don’t know” as a feature and design a high-quality fallback experience.</li><li>✅ <strong>Prioritize Transparency (UX Writing):</strong> Clearly communicate the AI’s capabilities and limitations, especially when it’s still learning or if responses are generated.</li><li>✅ <strong>Design for Explainability (UX Writing):</strong> Explain the reasoning behind AI recommendations, decisions, or complex outputs.</li></ul><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (Victor Yocco) <![CDATA[How To Minimize The Environmental Impact Of Your Website]]> https://smashingmagazine.com/2025/09/how-minimize-environmental-impact-website/ https://smashingmagazine.com/2025/09/how-minimize-environmental-impact-website/ Thu, 18 Sep 2025 10:00:00 GMT <img src="https://files.smashing.media/articles/how-minimize-environmental-impact-website/how-minimize-environmental-impact-website.jpg" /><h1>How To Minimize The Environmental Impact Of Your Website — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>15 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/optimization">Optimization</a>, <a href="http://www.smashingmagazine.com/category/performance">Performance</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>As responsible digital professionals, we are becoming increasingly aware of the environmental impact of our work and need to find effective and pragmatic ways to reduce it. James Chudley shares a new decarbonising approach that will help you to minimise the environmental impact of your website, benefiting people, profit, purpose, performance, and the planet.</section></p><p>Climate change is the single biggest health threat to humanity, accelerated by human activities such as the burning of fossil fuels, which generate greenhouse gases that trap the sun’s heat.</p><p>The average temperature of the earth’s surface is now <a href="https://www.un.org/en/climatechange/what-is-climate-change">1.2°C warmer than it was in the late 1800’s, and projected to more than double by the end of the century.</a></p><figure><a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/1-climate-stripes.png"><img alt="Image shows a series of vertical stripes of varying colours showing how average temperatures have risen since 1850, containing the text ‘each stripe represents the average temperature for a single year, relative to the average temperature from 1850 to 2024’" decoding="async" fetchpriority="low" height="453" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/1-climate-stripes.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/1-climate-stripes.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-minimize-environmental-impact-website/1-climate-stripes.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-minimize-environmental-impact-website/1-climate-stripes.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-minimize-environmental-impact-website/1-climate-stripes.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-minimize-environmental-impact-website/1-climate-stripes.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://showyourstripes.info/">‘Climate stripes’ by Professor Ed Hawkins (University of Reading)</a>. (<a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/1-climate-stripes.png">Large preview</a>)</figcaption></figure><p>The consequences of climate change include intense droughts, water shortages, severe fires, melting polar ice, catastrophic storms, and declining biodiversity.</p><h2 id="the-internet-is-a-significant-part-of-the-problem">The Internet Is A Significant Part Of The Problem</h2><p>Shockingly, the <a href="https://www.wholegraindigital.com/blog/new-sustainable-web-design-model-changes-the-context-of-internet-emissions/">internet is responsible for higher global greenhouse emissions than the aviation industry</a>, and is <a href="https://climateproductleaders.org/">projected to be responsible for 14% of all global greenhouse gas emissions by 2040</a>.</p><p>If the internet were a country, it would be <a href="https://www.sustainablewebmanifesto.com/">the 4th largest polluter in the world</a> and represents the <a href="https://www.mozillafoundation.org/en/blog/internet-climate-change-fixes/">largest coal-powered machine on the planet</a>.</p><p>But how can something digital like the internet produce harmful emissions?</p><p>Internet emissions come from powering the infrastructure that drives the internet, such as the vast data centres and data transmission networks that consume huge amounts of electricity.</p><p>Internet emissions also come from the global manufacturing, distribution, and usage of the estimated 30.5 billion devices (phones, laptops, etc.) that we use to access the internet.</p><p>Unsurprisingly, internet related emissions are increasing, <a href="https://www.nature.com/articles/s41467-024-47621-w">given that 60% of the world’s population spend, on average, 40% of their waking hours online</a>.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="we-must-urgently-reduce-the-environmental-impact-of-the-internet">We Must Urgently Reduce The Environmental Impact Of The Internet</h2><p>As responsible digital professionals, we must act quickly to minimise the environmental impact of our work.</p><p>It is encouraging to see the UK government encourage action by adding “<a href="https://www.gov.uk/guidance/government-design-principles#minimise-environmental-impact">Minimise environmental impact</a>” to their best practice design principles, but there is <strong>still too much talking and not enough corrective action</strong> taking place within our industry.</p><figure><a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/politicians-discussing-climate-change.jpg"><img alt="Photo shows an artwork containing small figures representing politicians who are in a puddle, depicting how, as they continue to talk, the water level rises around them, representing rising sea levels due to climate change." decoding="async" fetchpriority="low" height="535" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/politicians-discussing-climate-change.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/politicians-discussing-climate-change.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-minimize-environmental-impact-website/politicians-discussing-climate-change.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-minimize-environmental-impact-website/politicians-discussing-climate-change.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-minimize-environmental-impact-website/politicians-discussing-climate-change.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-minimize-environmental-impact-website/politicians-discussing-climate-change.jpg 2000w" width="800"></img></a><figcaption>Credit: ‘Politicians discussing climate change’ by Isaac Cordal. (<a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/politicians-discussing-climate-change.jpg">Large preview</a>)</figcaption></figure><p>The reality of many tightly constrained, fast-paced, and commercially driven web projects is that minimising environmental impact is far from the agenda.</p><p>So how can we make the environment more of a priority and talk about it in ways that stakeholders will listen to?</p><p>A eureka moment on a recent web optimisation project gave me an idea.</p><h2 id="my-eureka-moment">My Eureka Moment</h2><p>I led a project to optimise the mobile performance of <a href="http://www.talktofrank.com">www.talktofrank.com</a>, a government drug advice website that aims to keep everyone safe from harm.</p><p>Mobile performance is critically important for the success of this service to ensure that users with older mobile devices and those using slower network connections can still access the information they need.</p><p>Our work to minimise page weights focused on purely technical changes that our developer made following recommendations from tools such as <a href="https://developer.chrome.com/docs/lighthouse/overview">Google Lighthouse</a> that reduced the size of the webpages of a key user journey by up to 80%. This resulted in pages downloading up to 30% faster and the carbon footprint of the journey being reduced by 80%.</p><p>We hadn’t set out to reduce the carbon footprint, but seeing these results led to my eureka moment.</p><blockquote>I realised that by minimising page weights, you improve performance (which is a win for users and service owners) and also consume less energy (due to needing to transfer and store less data), creating additional benefits for the planet — so everyone wins.</blockquote><p>This felt like a breakthrough because business, user, and environmental requirements are often at odds with one another. By focussing on minimising websites to be as simple, lightweight and easy to use as possible you get benefits that extend beyond the <a href="https://online.hbs.edu/blog/post/what-is-the-triple-bottom-line">triple bottom line</a> of people, planet and profit to include performance and purpose.</p><figure><a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/2-minimising-benefits.png"><img alt="Image shows the word ‘Minimise’ surrounded by the words ‘people’, ‘planet’, ‘performance’, ‘profit’ and ‘purpose’." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/2-minimising-benefits.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/2-minimising-benefits.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-minimize-environmental-impact-website/2-minimising-benefits.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-minimize-environmental-impact-website/2-minimising-benefits.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-minimize-environmental-impact-website/2-minimising-benefits.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-minimize-environmental-impact-website/2-minimising-benefits.png 2000w" width="800"></img></a><figcaption>The multiple benefits of minimising make it a great digital sustainability strategy. (<a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/2-minimising-benefits.png">Large preview</a>)</figcaption></figure><p>So why is ‘minimising’ such a great digital sustainability strategy?</p><ul><li><strong>Profit</strong><br></br>Website providers win because their website becomes more efficient and more likely to meet its intended outcomes, and a lighter site should also lead to lower hosting bills.</li><li><strong>People</strong><br></br>People win because they get to use a website that downloads faster, is quick and easy to use because it’s been intentionally designed to be as simple as possible, enabling them to complete their tasks with the minimum amount of effort and mental energy.</li><li><strong>Performance</strong><br></br>Lightweight webpages download faster so perform better for users, particularly those on older devices and on slower network connections.</li><li><strong>Planet</strong><br></br>The planet wins because the amount of energy (and associated emissions) that is required to deliver the website is reduced.</li><li><strong>Purpose</strong><br></br>We know that we do our best work when we feel a sense of purpose. It is hugely gratifying as a digital professional to know that our work is doing good in the world and contributing to making things better for people and the environment.</li></ul><p>In order to prioritise the environment, we need to be able to speak confidently in a language that will resonate with the business and ensure that any investment in time and resources yields the widest range of benefits possible.</p><p>So even if you feel that the environment is a very low priority on your projects, focusing on minimising page weights to improve performance (which is generally high on the agenda) presents the perfect trojan horse for an environmental agenda (should you need one).</p><p>Doing the right thing isn’t always easy, <strong>but we’ve done it before</strong> when managing to prioritise issues such as usability, accessibility, and inclusion on digital projects.</p><p>Many of the things that make websites easier to use, more accessible, and more effective also help to minimise their environmental impact, so the things you need to do will feel familiar and achievable, so don’t worry about it all being another new thing to learn about!</p><p>So this all makes sense in theory, but what’s the master plan to use when putting it into practice?</p><h2 id="the-masterplan">The Masterplan</h2><p>The masterplan for creating websites that have minimal environmental impact is to <strong>focus on offering the maximum value from the minimum input of energy</strong>.</p><figure><a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/3-sustainability-masterplan.png"><img alt="Image shows a diagram with a ‘digital service’ at the centre with an input stating ‘minimise the energy required to operate it’ and another input stating ‘minimise the human energy to use it’. The output states ‘maximise the value created by it’." decoding="async" fetchpriority="low" height="449" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/3-sustainability-masterplan.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/3-sustainability-masterplan.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-minimize-environmental-impact-website/3-sustainability-masterplan.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-minimize-environmental-impact-website/3-sustainability-masterplan.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-minimize-environmental-impact-website/3-sustainability-masterplan.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-minimize-environmental-impact-website/3-sustainability-masterplan.png 2000w" width="800"></img></a><figcaption>The digital sustainability masterplan is to offer maximum value from the minimum input of energy. (<a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/3-sustainability-masterplan.png">Large preview</a>)</figcaption></figure><p>It’s an adaptation of <a href="https://en.wikipedia.org/wiki/Buckminster_Fuller">Buckminister Fuller’s</a> <a href="https://en.wikipedia.org/wiki/Dymaxion">‘Dymaxion’</a> principle, which is one of his many progressive and groundbreaking sustainability strategies for living and surviving on a planet with finite resources.</p><p>Inputs of energy include both the electrical energy that is required to operate websites and also the mental energy that is required to use them.</p><p>You can achieve this by <strong>minimising websites to their core content, features, and functionality</strong>, ensuring that everything can be justified from the perspective of meeting a business or user need. This means that anything that isn’t adding a proportional amount of value to the amount of energy it requires to provide it should be removed.</p><p>So that’s the masterplan, but how do you put it into practice?</p><h2 id="decarbonise-your-highest-value-user-journeys">Decarbonise Your Highest Value User Journeys</h2><p>I’ve developed a new approach called ‘Decarbonising User Journeys’ that will help you to minimise the environmental impact of your website and maximise its performance.</p><p><strong>Note</strong>: The approach deliberately focuses on optimising key user journeys and not entire websites to keep things manageable and to make it easier to get started.</p><p>The secret here is to start small, demonstrate improvements, and then scale.</p><p>The approach consists of five simple steps:</p><ol><li><strong>Identify</strong> your highest value user journey,</li><li><strong>Benchmark</strong> your user journey,</li><li>Set <strong>targets</strong>,</li><li><strong>Decarbonise</strong> your user journey,</li><li><strong>Track</strong> and <strong>share</strong> your progress.</li></ol><p>Here’s how it works.</p><h3 id="step-1-identify-your-highest-value-user-journey">Step 1: Identify Your Highest Value User Journey</h3><p>Your highest value user journey might be the one that your users value the most, the one that brings you the highest revenue, or the one that is fundamental to the success of your organisation.</p><p>You could also focus on a user journey that you know is performing particularly badly and has the potential to deliver significant business and user benefits if improved.</p><p>You may have lots of important user journeys, and it’s fine to decarbonise multiple journeys in parallel if you have the resources, but <strong>I’d recommend starting with one</strong> first to keep things simple.</p><p>To bring this to life, let’s consider a hypothetical example of a premiership football club trying to decarbonise its online ticket-buying journey that receives high levels of traffic and is responsible for a significant proportion of its weekly income.</p><figure><a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/ticket-user-journey.jpg"><img alt="Image shows a series of four blue boxes linked by arrows containing the words ‘home’, ‘’fixtures’, ‘news’ and ‘tickets’ and represents a hypothetical user journey through a football club website." decoding="async" fetchpriority="low" height="232" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/ticket-user-journey.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/ticket-user-journey.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-minimize-environmental-impact-website/ticket-user-journey.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-minimize-environmental-impact-website/ticket-user-journey.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-minimize-environmental-impact-website/ticket-user-journey.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-minimize-environmental-impact-website/ticket-user-journey.jpg 2000w" width="800"></img></a><figcaption>A hypothetical high-value ticket purchasing user journey for a football club website. (<a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/ticket-user-journey.jpg">Large preview</a>)</figcaption></figure><h3 id="step-2-benchmark-your-user-journey">Step 2: Benchmark Your User Journey</h3><p>Once you’ve selected your user journey, you need to benchmark it in terms of how well it meets user needs, the value it offers your organisation, and its carbon footprint.</p><blockquote>It is vital that you understand the job it needs to do and how well it is doing it before you start to decarbonise it. There is no point in removing elements of the journey in an effort to reduce its carbon footprint, for example, if you compromise its ability to meet a key user or business need.</blockquote><p>You can benchmark how well your user journey is meeting user needs by conducting user research alongside analysing existing customer feedback. Interviews with business stakeholders will help you to understand the value that your journey is providing the organisation and how well business needs are being met.</p><p>You can benchmark the carbon footprint and performance of your user journey using online tools such as <a href="https://cardamon.io/">Cardamon</a>, <a href="https://ecograder.com/">Ecograder</a>, <a href="https://www.websitecarbon.com/">Website Carbon Calculator</a>, <a href="https://developer.chrome.com/docs/lighthouse/overview">Google Lighthouse</a>, and <a href="https://bioscore.com/">Bioscore</a>. Make sure you have your analytics data to hand to help get the most accurate estimate of your footprint.</p><p>To use these tools, simply add the URL of each page of your journey, and they will give you a range of information such as page weight, energy rating, and carbon emissions. <a href="https://developer.chrome.com/docs/lighthouse/overview">Google Lighthouse</a> works slightly differently via a browser plugin and generates a really useful and detailed performance report as opposed to giving you a carbon rating.</p><p>A great way to bring your benchmarking scores to life is to <strong>visualise</strong> them in a similar way to how you would present a customer journey map or service blueprint.</p><p>This example focuses on just communicating the carbon footprint of the user journey, but you can also add more swimlanes to communicate how well the journey is performing from a user and business perspective, too, adding user pain points, quotes, and business metrics where appropriate.</p><figure><a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/5-carbon-footprint-user-journey.png"><img alt="Image shows a visualisation of the carbon footprint of a hypothetical user journey consisting of 4 steps showing how the energy efficiency ratings of the different pages vary across the journey." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/5-carbon-footprint-user-journey.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/5-carbon-footprint-user-journey.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-minimize-environmental-impact-website/5-carbon-footprint-user-journey.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-minimize-environmental-impact-website/5-carbon-footprint-user-journey.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-minimize-environmental-impact-website/5-carbon-footprint-user-journey.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-minimize-environmental-impact-website/5-carbon-footprint-user-journey.png 2000w" width="800"></img></a><figcaption>Visualising the carbon footprint of your user journey makes it easy to see where the problems are. (<a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/5-carbon-footprint-user-journey.png">Large preview</a>)</figcaption></figure><p>I’ve found that adding the <strong>energy efficiency ratings</strong> is really effective because it’s an approach that people recognise from their household appliances. This adds a useful context to just showing the weights (such as grams or kilograms) of CO2, which are generally meaningless to people.</p><p>Within my benchmarking reports, I also add a set of benchmarking data for every page within the user journey. This gives your stakeholders a more detailed breakdown and a simple summary alongside a snapshot of the benchmarked page.</p><figure><a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/6-page-level-breakdowns.png"><img alt="Image shows a screenshot of the Manchester City football club homepage with a breakdown of information for that page, including energy efficiency rating, page size, usage stats, power consumption, CO2 emissions, CO2 per view, and hosting power source information." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/6-page-level-breakdowns.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/6-page-level-breakdowns.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-minimize-environmental-impact-website/6-page-level-breakdowns.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-minimize-environmental-impact-website/6-page-level-breakdowns.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-minimize-environmental-impact-website/6-page-level-breakdowns.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-minimize-environmental-impact-website/6-page-level-breakdowns.png 2000w" width="800"></img></a><figcaption>Page-level breakdowns are useful to see how each page within the user journey is performing. (<a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/6-page-level-breakdowns.png">Large preview</a>)</figcaption></figure><p>Your benchmarking activities will give you a really clear picture of where remedial work is required from an environmental, user, and business point of view.</p><p>In our football user journey example, it’s clear that the ‘News’ and ‘Tickets’ pages need some attention to reduce their carbon footprint, so they would be a sensible priority for decarbonising.</p><h3 id="step-3-set-targets">Step 3: Set Targets</h3><p>Use your benchmarking results to help you set targets to aim for, such as a <strong>carbon budget</strong>, <strong>energy efficiency</strong>, <strong>maximum page weight</strong>, and <strong>minimum Google Lighthouse performance targets</strong> for each individual page, in addition to your existing UX metrics and business KPIs.</p><p>There is no right or wrong way to set targets. Choose what you think feels achievable and viable for your business, and you’ll only learn how reasonable and achievable they are when you begin to decarbonise your user journeys.</p><figure><a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/7-carbon-footprint-targets.png"><img alt="Image shows a representation of the carbon footprint of a user journey with different energy efficiency targets for each step of the journey." decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/7-carbon-footprint-targets.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/7-carbon-footprint-targets.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-minimize-environmental-impact-website/7-carbon-footprint-targets.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-minimize-environmental-impact-website/7-carbon-footprint-targets.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-minimize-environmental-impact-website/7-carbon-footprint-targets.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-minimize-environmental-impact-website/7-carbon-footprint-targets.png 2000w" width="800"></img></a><figcaption>Visualising your targets makes it easy for your stakeholders to understand what you’re aiming for. (<a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/7-carbon-footprint-targets.png">Large preview</a>)</figcaption></figure><p>Setting targets is important because it gives you something to aim for and keeps you focused and accountable. The quantitative nature of this work is great because it gives you the ability to quickly demonstrate the positive impact of your work, making it easier to justify the time and resources you are dedicating to it.</p><h3 id="step-4-decarbonise-your-user-journey">Step 4: Decarbonise Your User Journey</h3><p>Your objective now is to decarbonise your user journey by minimising page weights, improving your Lighthouse performance rating, and minimising pages so that they meet both user and business needs in the most efficient, simple, and effective way possible.</p><p>It’s up to you how you approach this depending on the resources and skills that you have, you can focus on specific pages or addressing a specific problem area such as heavyweight images or videos across the entire user journey.</p><p>Here’s a list of activities that will all help to reduce the carbon footprint of your user journey:</p><ul><li>Work through the recommendations in the ‘diagnostics’ section of your <a href="https://developer.chrome.com/docs/lighthouse/overview">Google Lighthouse</a> report to help optimise page performance.</li><li>Switch to a <strong>green hosting provider</strong> if you are not already using one. Use the <a href="https://www.thegreenwebfoundation.org/tools/directory/">Green Web Directory</a> to help you choose one.</li><li>Work through the <a href="https://w3c.github.io/sustainableweb-wsg/">W3C Web Sustainability Guidelines</a>, implementing the most relevant guidelines to your specific user journey.</li><li><strong>Remove</strong> anything that is not adding any user or business value.</li><li><strong>Reduce</strong> the amount of information on your webpages to make them easier to read and less overwhelming for people.</li><li><strong>Replace</strong> content with a lighter-weight alternative (such as swapping a video for text) if the lighter-weight alternative provides the same value.</li><li><strong>Optimise</strong> assets such as photos, videos, and code to reduce file sizes.</li><li>Remove any <strong>barriers</strong> to accessing your website and any <strong>distractions</strong> that are getting in the way.</li><li><strong>Re-use</strong> familiar components and design patterns to make your websites quicker and easier to use.</li><li>Write <strong>simply</strong> and <strong>clearly</strong> in plain English to help people get the most value from your website and to help them avoid making mistakes that waste time and energy to resolve.</li><li><strong>Fix</strong> any usability issues you identified during your benchmarking to ensure that your website is as easy to use and useful as possible.</li><li>Ensure your user journey is as <a href="https://aaardvarkaccessibility.com/wcag-plain-english/">accessible</a> as possible so the widest possible audience can benefit from using it, offsetting the environmental cost of providing the website.</li></ul><p>As you decarbonise your user journeys, use the benchmarking tools from step 2 to track your progress against the targets you set in step 3 and share your progress as part of your wider sustainability reporting initiatives.</p><p>All being well at this point, you will have the numbers to demonstrate how the performance of your user journey has improved and also how you have managed to reduce its carbon footprint.</p><p>Share these results with the business as soon as you have them to help you secure the resources to continue the work and initiate similar work on other high-value user journeys.</p><p>You should also start to <strong>communicate your progress with your users</strong>.</p><p>It’s important that they are made aware of the carbon footprint of their digital activity and empowered to make informed choices about the environmental impact of the websites that they use.</p><p>Ideally, every website should communicate the emissions generated from viewing their pages to help people make these informed choices and also to encourage website providers to minimise their emissions if they are being displayed publicly.</p><p>Often, people will have no choice but to use a specific website to complete a specific task, so it is the responsibility of the website provider to ensure the environmental impact of using their website is as small as possible.</p><p>You can also help to raise awareness of the environmental impact of websites and what you are doing to minimise your own impact by publishing a <strong>digital sustainability statement</strong>, such as Unilever’s, as shown below.</p><figure><a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/8-unilever-digital-sustainability-statement.png"><img alt="Image shows a screenshot of the digital sustainability statement from Unilever’s website." decoding="async" fetchpriority="low" height="537" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/8-unilever-digital-sustainability-statement.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/8-unilever-digital-sustainability-statement.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-minimize-environmental-impact-website/8-unilever-digital-sustainability-statement.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-minimize-environmental-impact-website/8-unilever-digital-sustainability-statement.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-minimize-environmental-impact-website/8-unilever-digital-sustainability-statement.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-minimize-environmental-impact-website/8-unilever-digital-sustainability-statement.png 2000w" width="800"></img></a><figcaption>Unilever’s digital sustainability statement is a great example of what every website should offer. (<a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/8-unilever-digital-sustainability-statement.png">Large preview</a>)</figcaption></figure><p>A good digital sustainability statement should acknowledge the environmental impact of your website, what you have done to reduce it, and what you plan to do next to minimise it further.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aAs%20an%20industry,%20we%20should%20normalise%20publishing%20digital%20sustainability%20statements%20in%20the%20same%20way%20that%20accessibility%20statements%20have%20become%20a%20standard%20addition%20to%20website%20footers.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fhow-minimize-environmental-impact-website%2f">As an industry, we should normalise publishing digital sustainability statements in the same way that accessibility statements have become a standard addition to website footers.</a></p></blockquote><h2 id="useful-decarbonising-principles">Useful Decarbonising Principles</h2><p>Keep these principles in mind to help you decarbonise your user journeys:</p><ul><li><strong>More doing and less talking.</strong><br></br>Start decarbonising your user journeys as soon as possible to accelerate your learning and positive change.</li><li><strong>Start small.</strong><br></br>Starting small by decarbonising an individual journey makes it easier to get started and generates results to demonstrate value faster.</li><li><strong>Aim to do more with less.</strong><br></br>Minimise what you offer to ensure you are providing the maximum amount of value for the energy you are consuming.</li><li><strong>Make your website as useful and as easy to use as possible.</strong><br></br>Useful websites can justify the energy they consume to provide them, ensuring they are net positive in terms of doing more good than harm.</li><li><strong>Focus on progress over perfection.</strong><br></br>Websites are never finished or perfect but they can always be improved, every small improvement you make will make a difference.</li></ul><h2 id="start-decarbonising-your-user-journeys-today">Start Decarbonising Your User Journeys Today</h2><p>Decarbonising user journeys shouldn’t be done as a one-off, reserved for the next time that you decide to redesign or replatform your website; it should happen on a <strong>continual basis</strong> as part of your broader <a href="https://docs.google.com/document/d/1adM94O0u-YMoFgkFg0FwoPASYevw_Xa6wCYKJL8Ni34/edit?usp=sharing">digital sustainability strategy</a>.</p><p>We know that websites are never finished and that the best websites continually improve as both user and business needs change. I’d like to encourage people to adopt the same mindset when it comes to minimising the environmental impact of their websites.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aDecarbonising%20will%20happen%20most%20effectively%20when%20digital%20professionals%20challenge%20themselves%20on%20a%20daily%20basis%20to%20%e2%80%98minimise%e2%80%99%20the%20things%20they%20are%20working%20on.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fhow-minimize-environmental-impact-website%2f">Decarbonising will happen most effectively when digital professionals challenge themselves on a daily basis to ‘minimise’ the things they are working on.</a></p></blockquote><p>This avoids building ‘carbon debt’ that consists of compounding technical and design debt within our websites, which is always harder to retrospectively remove than avoid in the first place.</p><p>By taking a pragmatic approach, such as optimising high-value user journeys and aligning with business metrics such as performance, we stand the best possible chance of making digital sustainability a priority.</p><p>You’ll have noticed that, other than using website carbon calculator tools, this approach doesn’t require any skills that don’t already exist within typical digital teams today. This is great because it means <strong>you’ve already got the skills that you need</strong> to do this important work.</p><p>I would encourage everyone to raise the issue of the environmental impact of the internet in their next team meeting and to try this decarbonising approach to create better outcomes for people, profit, performance, purpose, and the planet.</p><p>Good luck!</p><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/how-minimize-environmental-impact-website/how-minimize-environmental-impact-website.jpg" /><h1>How To Minimize The Environmental Impact Of Your Website — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>15 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/optimization">Optimization</a>, <a href="http://www.smashingmagazine.com/category/performance">Performance</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>As responsible digital professionals, we are becoming increasingly aware of the environmental impact of our work and need to find effective and pragmatic ways to reduce it. James Chudley shares a new decarbonising approach that will help you to minimise the environmental impact of your website, benefiting people, profit, purpose, performance, and the planet.</section></p><p>Climate change is the single biggest health threat to humanity, accelerated by human activities such as the burning of fossil fuels, which generate greenhouse gases that trap the sun’s heat.</p><p>The average temperature of the earth’s surface is now <a href="https://www.un.org/en/climatechange/what-is-climate-change">1.2°C warmer than it was in the late 1800’s, and projected to more than double by the end of the century.</a></p><figure><a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/1-climate-stripes.png"><img alt="Image shows a series of vertical stripes of varying colours showing how average temperatures have risen since 1850, containing the text ‘each stripe represents the average temperature for a single year, relative to the average temperature from 1850 to 2024’" decoding="async" fetchpriority="low" height="453" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/1-climate-stripes.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/1-climate-stripes.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-minimize-environmental-impact-website/1-climate-stripes.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-minimize-environmental-impact-website/1-climate-stripes.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-minimize-environmental-impact-website/1-climate-stripes.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-minimize-environmental-impact-website/1-climate-stripes.png 2000w" width="800"></img></a><figcaption>Image source: <a href="https://showyourstripes.info/">‘Climate stripes’ by Professor Ed Hawkins (University of Reading)</a>. (<a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/1-climate-stripes.png">Large preview</a>)</figcaption></figure><p>The consequences of climate change include intense droughts, water shortages, severe fires, melting polar ice, catastrophic storms, and declining biodiversity.</p><h2 id="the-internet-is-a-significant-part-of-the-problem">The Internet Is A Significant Part Of The Problem</h2><p>Shockingly, the <a href="https://www.wholegraindigital.com/blog/new-sustainable-web-design-model-changes-the-context-of-internet-emissions/">internet is responsible for higher global greenhouse emissions than the aviation industry</a>, and is <a href="https://climateproductleaders.org/">projected to be responsible for 14% of all global greenhouse gas emissions by 2040</a>.</p><p>If the internet were a country, it would be <a href="https://www.sustainablewebmanifesto.com/">the 4th largest polluter in the world</a> and represents the <a href="https://www.mozillafoundation.org/en/blog/internet-climate-change-fixes/">largest coal-powered machine on the planet</a>.</p><p>But how can something digital like the internet produce harmful emissions?</p><p>Internet emissions come from powering the infrastructure that drives the internet, such as the vast data centres and data transmission networks that consume huge amounts of electricity.</p><p>Internet emissions also come from the global manufacturing, distribution, and usage of the estimated 30.5 billion devices (phones, laptops, etc.) that we use to access the internet.</p><p>Unsurprisingly, internet related emissions are increasing, <a href="https://www.nature.com/articles/s41467-024-47621-w">given that 60% of the world’s population spend, on average, 40% of their waking hours online</a>.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="we-must-urgently-reduce-the-environmental-impact-of-the-internet">We Must Urgently Reduce The Environmental Impact Of The Internet</h2><p>As responsible digital professionals, we must act quickly to minimise the environmental impact of our work.</p><p>It is encouraging to see the UK government encourage action by adding “<a href="https://www.gov.uk/guidance/government-design-principles#minimise-environmental-impact">Minimise environmental impact</a>” to their best practice design principles, but there is <strong>still too much talking and not enough corrective action</strong> taking place within our industry.</p><figure><a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/politicians-discussing-climate-change.jpg"><img alt="Photo shows an artwork containing small figures representing politicians who are in a puddle, depicting how, as they continue to talk, the water level rises around them, representing rising sea levels due to climate change." decoding="async" fetchpriority="low" height="535" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/politicians-discussing-climate-change.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/politicians-discussing-climate-change.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-minimize-environmental-impact-website/politicians-discussing-climate-change.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-minimize-environmental-impact-website/politicians-discussing-climate-change.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-minimize-environmental-impact-website/politicians-discussing-climate-change.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-minimize-environmental-impact-website/politicians-discussing-climate-change.jpg 2000w" width="800"></img></a><figcaption>Credit: ‘Politicians discussing climate change’ by Isaac Cordal. (<a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/politicians-discussing-climate-change.jpg">Large preview</a>)</figcaption></figure><p>The reality of many tightly constrained, fast-paced, and commercially driven web projects is that minimising environmental impact is far from the agenda.</p><p>So how can we make the environment more of a priority and talk about it in ways that stakeholders will listen to?</p><p>A eureka moment on a recent web optimisation project gave me an idea.</p><h2 id="my-eureka-moment">My Eureka Moment</h2><p>I led a project to optimise the mobile performance of <a href="http://www.talktofrank.com">www.talktofrank.com</a>, a government drug advice website that aims to keep everyone safe from harm.</p><p>Mobile performance is critically important for the success of this service to ensure that users with older mobile devices and those using slower network connections can still access the information they need.</p><p>Our work to minimise page weights focused on purely technical changes that our developer made following recommendations from tools such as <a href="https://developer.chrome.com/docs/lighthouse/overview">Google Lighthouse</a> that reduced the size of the webpages of a key user journey by up to 80%. This resulted in pages downloading up to 30% faster and the carbon footprint of the journey being reduced by 80%.</p><p>We hadn’t set out to reduce the carbon footprint, but seeing these results led to my eureka moment.</p><blockquote>I realised that by minimising page weights, you improve performance (which is a win for users and service owners) and also consume less energy (due to needing to transfer and store less data), creating additional benefits for the planet — so everyone wins.</blockquote><p>This felt like a breakthrough because business, user, and environmental requirements are often at odds with one another. By focussing on minimising websites to be as simple, lightweight and easy to use as possible you get benefits that extend beyond the <a href="https://online.hbs.edu/blog/post/what-is-the-triple-bottom-line">triple bottom line</a> of people, planet and profit to include performance and purpose.</p><figure><a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/2-minimising-benefits.png"><img alt="Image shows the word ‘Minimise’ surrounded by the words ‘people’, ‘planet’, ‘performance’, ‘profit’ and ‘purpose’." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/2-minimising-benefits.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/2-minimising-benefits.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-minimize-environmental-impact-website/2-minimising-benefits.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-minimize-environmental-impact-website/2-minimising-benefits.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-minimize-environmental-impact-website/2-minimising-benefits.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-minimize-environmental-impact-website/2-minimising-benefits.png 2000w" width="800"></img></a><figcaption>The multiple benefits of minimising make it a great digital sustainability strategy. (<a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/2-minimising-benefits.png">Large preview</a>)</figcaption></figure><p>So why is ‘minimising’ such a great digital sustainability strategy?</p><ul><li><strong>Profit</strong><br></br>Website providers win because their website becomes more efficient and more likely to meet its intended outcomes, and a lighter site should also lead to lower hosting bills.</li><li><strong>People</strong><br></br>People win because they get to use a website that downloads faster, is quick and easy to use because it’s been intentionally designed to be as simple as possible, enabling them to complete their tasks with the minimum amount of effort and mental energy.</li><li><strong>Performance</strong><br></br>Lightweight webpages download faster so perform better for users, particularly those on older devices and on slower network connections.</li><li><strong>Planet</strong><br></br>The planet wins because the amount of energy (and associated emissions) that is required to deliver the website is reduced.</li><li><strong>Purpose</strong><br></br>We know that we do our best work when we feel a sense of purpose. It is hugely gratifying as a digital professional to know that our work is doing good in the world and contributing to making things better for people and the environment.</li></ul><p>In order to prioritise the environment, we need to be able to speak confidently in a language that will resonate with the business and ensure that any investment in time and resources yields the widest range of benefits possible.</p><p>So even if you feel that the environment is a very low priority on your projects, focusing on minimising page weights to improve performance (which is generally high on the agenda) presents the perfect trojan horse for an environmental agenda (should you need one).</p><p>Doing the right thing isn’t always easy, <strong>but we’ve done it before</strong> when managing to prioritise issues such as usability, accessibility, and inclusion on digital projects.</p><p>Many of the things that make websites easier to use, more accessible, and more effective also help to minimise their environmental impact, so the things you need to do will feel familiar and achievable, so don’t worry about it all being another new thing to learn about!</p><p>So this all makes sense in theory, but what’s the master plan to use when putting it into practice?</p><h2 id="the-masterplan">The Masterplan</h2><p>The masterplan for creating websites that have minimal environmental impact is to <strong>focus on offering the maximum value from the minimum input of energy</strong>.</p><figure><a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/3-sustainability-masterplan.png"><img alt="Image shows a diagram with a ‘digital service’ at the centre with an input stating ‘minimise the energy required to operate it’ and another input stating ‘minimise the human energy to use it’. The output states ‘maximise the value created by it’." decoding="async" fetchpriority="low" height="449" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/3-sustainability-masterplan.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/3-sustainability-masterplan.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-minimize-environmental-impact-website/3-sustainability-masterplan.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-minimize-environmental-impact-website/3-sustainability-masterplan.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-minimize-environmental-impact-website/3-sustainability-masterplan.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-minimize-environmental-impact-website/3-sustainability-masterplan.png 2000w" width="800"></img></a><figcaption>The digital sustainability masterplan is to offer maximum value from the minimum input of energy. (<a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/3-sustainability-masterplan.png">Large preview</a>)</figcaption></figure><p>It’s an adaptation of <a href="https://en.wikipedia.org/wiki/Buckminster_Fuller">Buckminister Fuller’s</a> <a href="https://en.wikipedia.org/wiki/Dymaxion">‘Dymaxion’</a> principle, which is one of his many progressive and groundbreaking sustainability strategies for living and surviving on a planet with finite resources.</p><p>Inputs of energy include both the electrical energy that is required to operate websites and also the mental energy that is required to use them.</p><p>You can achieve this by <strong>minimising websites to their core content, features, and functionality</strong>, ensuring that everything can be justified from the perspective of meeting a business or user need. This means that anything that isn’t adding a proportional amount of value to the amount of energy it requires to provide it should be removed.</p><p>So that’s the masterplan, but how do you put it into practice?</p><h2 id="decarbonise-your-highest-value-user-journeys">Decarbonise Your Highest Value User Journeys</h2><p>I’ve developed a new approach called ‘Decarbonising User Journeys’ that will help you to minimise the environmental impact of your website and maximise its performance.</p><p><strong>Note</strong>: The approach deliberately focuses on optimising key user journeys and not entire websites to keep things manageable and to make it easier to get started.</p><p>The secret here is to start small, demonstrate improvements, and then scale.</p><p>The approach consists of five simple steps:</p><ol><li><strong>Identify</strong> your highest value user journey,</li><li><strong>Benchmark</strong> your user journey,</li><li>Set <strong>targets</strong>,</li><li><strong>Decarbonise</strong> your user journey,</li><li><strong>Track</strong> and <strong>share</strong> your progress.</li></ol><p>Here’s how it works.</p><h3 id="step-1-identify-your-highest-value-user-journey">Step 1: Identify Your Highest Value User Journey</h3><p>Your highest value user journey might be the one that your users value the most, the one that brings you the highest revenue, or the one that is fundamental to the success of your organisation.</p><p>You could also focus on a user journey that you know is performing particularly badly and has the potential to deliver significant business and user benefits if improved.</p><p>You may have lots of important user journeys, and it’s fine to decarbonise multiple journeys in parallel if you have the resources, but <strong>I’d recommend starting with one</strong> first to keep things simple.</p><p>To bring this to life, let’s consider a hypothetical example of a premiership football club trying to decarbonise its online ticket-buying journey that receives high levels of traffic and is responsible for a significant proportion of its weekly income.</p><figure><a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/ticket-user-journey.jpg"><img alt="Image shows a series of four blue boxes linked by arrows containing the words ‘home’, ‘’fixtures’, ‘news’ and ‘tickets’ and represents a hypothetical user journey through a football club website." decoding="async" fetchpriority="low" height="232" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/ticket-user-journey.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/ticket-user-journey.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-minimize-environmental-impact-website/ticket-user-journey.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-minimize-environmental-impact-website/ticket-user-journey.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-minimize-environmental-impact-website/ticket-user-journey.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-minimize-environmental-impact-website/ticket-user-journey.jpg 2000w" width="800"></img></a><figcaption>A hypothetical high-value ticket purchasing user journey for a football club website. (<a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/ticket-user-journey.jpg">Large preview</a>)</figcaption></figure><h3 id="step-2-benchmark-your-user-journey">Step 2: Benchmark Your User Journey</h3><p>Once you’ve selected your user journey, you need to benchmark it in terms of how well it meets user needs, the value it offers your organisation, and its carbon footprint.</p><blockquote>It is vital that you understand the job it needs to do and how well it is doing it before you start to decarbonise it. There is no point in removing elements of the journey in an effort to reduce its carbon footprint, for example, if you compromise its ability to meet a key user or business need.</blockquote><p>You can benchmark how well your user journey is meeting user needs by conducting user research alongside analysing existing customer feedback. Interviews with business stakeholders will help you to understand the value that your journey is providing the organisation and how well business needs are being met.</p><p>You can benchmark the carbon footprint and performance of your user journey using online tools such as <a href="https://cardamon.io/">Cardamon</a>, <a href="https://ecograder.com/">Ecograder</a>, <a href="https://www.websitecarbon.com/">Website Carbon Calculator</a>, <a href="https://developer.chrome.com/docs/lighthouse/overview">Google Lighthouse</a>, and <a href="https://bioscore.com/">Bioscore</a>. Make sure you have your analytics data to hand to help get the most accurate estimate of your footprint.</p><p>To use these tools, simply add the URL of each page of your journey, and they will give you a range of information such as page weight, energy rating, and carbon emissions. <a href="https://developer.chrome.com/docs/lighthouse/overview">Google Lighthouse</a> works slightly differently via a browser plugin and generates a really useful and detailed performance report as opposed to giving you a carbon rating.</p><p>A great way to bring your benchmarking scores to life is to <strong>visualise</strong> them in a similar way to how you would present a customer journey map or service blueprint.</p><p>This example focuses on just communicating the carbon footprint of the user journey, but you can also add more swimlanes to communicate how well the journey is performing from a user and business perspective, too, adding user pain points, quotes, and business metrics where appropriate.</p><figure><a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/5-carbon-footprint-user-journey.png"><img alt="Image shows a visualisation of the carbon footprint of a hypothetical user journey consisting of 4 steps showing how the energy efficiency ratings of the different pages vary across the journey." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/5-carbon-footprint-user-journey.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/5-carbon-footprint-user-journey.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-minimize-environmental-impact-website/5-carbon-footprint-user-journey.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-minimize-environmental-impact-website/5-carbon-footprint-user-journey.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-minimize-environmental-impact-website/5-carbon-footprint-user-journey.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-minimize-environmental-impact-website/5-carbon-footprint-user-journey.png 2000w" width="800"></img></a><figcaption>Visualising the carbon footprint of your user journey makes it easy to see where the problems are. (<a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/5-carbon-footprint-user-journey.png">Large preview</a>)</figcaption></figure><p>I’ve found that adding the <strong>energy efficiency ratings</strong> is really effective because it’s an approach that people recognise from their household appliances. This adds a useful context to just showing the weights (such as grams or kilograms) of CO2, which are generally meaningless to people.</p><p>Within my benchmarking reports, I also add a set of benchmarking data for every page within the user journey. This gives your stakeholders a more detailed breakdown and a simple summary alongside a snapshot of the benchmarked page.</p><figure><a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/6-page-level-breakdowns.png"><img alt="Image shows a screenshot of the Manchester City football club homepage with a breakdown of information for that page, including energy efficiency rating, page size, usage stats, power consumption, CO2 emissions, CO2 per view, and hosting power source information." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/6-page-level-breakdowns.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/6-page-level-breakdowns.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-minimize-environmental-impact-website/6-page-level-breakdowns.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-minimize-environmental-impact-website/6-page-level-breakdowns.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-minimize-environmental-impact-website/6-page-level-breakdowns.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-minimize-environmental-impact-website/6-page-level-breakdowns.png 2000w" width="800"></img></a><figcaption>Page-level breakdowns are useful to see how each page within the user journey is performing. (<a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/6-page-level-breakdowns.png">Large preview</a>)</figcaption></figure><p>Your benchmarking activities will give you a really clear picture of where remedial work is required from an environmental, user, and business point of view.</p><p>In our football user journey example, it’s clear that the ‘News’ and ‘Tickets’ pages need some attention to reduce their carbon footprint, so they would be a sensible priority for decarbonising.</p><h3 id="step-3-set-targets">Step 3: Set Targets</h3><p>Use your benchmarking results to help you set targets to aim for, such as a <strong>carbon budget</strong>, <strong>energy efficiency</strong>, <strong>maximum page weight</strong>, and <strong>minimum Google Lighthouse performance targets</strong> for each individual page, in addition to your existing UX metrics and business KPIs.</p><p>There is no right or wrong way to set targets. Choose what you think feels achievable and viable for your business, and you’ll only learn how reasonable and achievable they are when you begin to decarbonise your user journeys.</p><figure><a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/7-carbon-footprint-targets.png"><img alt="Image shows a representation of the carbon footprint of a user journey with different energy efficiency targets for each step of the journey." decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/7-carbon-footprint-targets.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/7-carbon-footprint-targets.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-minimize-environmental-impact-website/7-carbon-footprint-targets.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-minimize-environmental-impact-website/7-carbon-footprint-targets.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-minimize-environmental-impact-website/7-carbon-footprint-targets.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-minimize-environmental-impact-website/7-carbon-footprint-targets.png 2000w" width="800"></img></a><figcaption>Visualising your targets makes it easy for your stakeholders to understand what you’re aiming for. (<a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/7-carbon-footprint-targets.png">Large preview</a>)</figcaption></figure><p>Setting targets is important because it gives you something to aim for and keeps you focused and accountable. The quantitative nature of this work is great because it gives you the ability to quickly demonstrate the positive impact of your work, making it easier to justify the time and resources you are dedicating to it.</p><h3 id="step-4-decarbonise-your-user-journey">Step 4: Decarbonise Your User Journey</h3><p>Your objective now is to decarbonise your user journey by minimising page weights, improving your Lighthouse performance rating, and minimising pages so that they meet both user and business needs in the most efficient, simple, and effective way possible.</p><p>It’s up to you how you approach this depending on the resources and skills that you have, you can focus on specific pages or addressing a specific problem area such as heavyweight images or videos across the entire user journey.</p><p>Here’s a list of activities that will all help to reduce the carbon footprint of your user journey:</p><ul><li>Work through the recommendations in the ‘diagnostics’ section of your <a href="https://developer.chrome.com/docs/lighthouse/overview">Google Lighthouse</a> report to help optimise page performance.</li><li>Switch to a <strong>green hosting provider</strong> if you are not already using one. Use the <a href="https://www.thegreenwebfoundation.org/tools/directory/">Green Web Directory</a> to help you choose one.</li><li>Work through the <a href="https://w3c.github.io/sustainableweb-wsg/">W3C Web Sustainability Guidelines</a>, implementing the most relevant guidelines to your specific user journey.</li><li><strong>Remove</strong> anything that is not adding any user or business value.</li><li><strong>Reduce</strong> the amount of information on your webpages to make them easier to read and less overwhelming for people.</li><li><strong>Replace</strong> content with a lighter-weight alternative (such as swapping a video for text) if the lighter-weight alternative provides the same value.</li><li><strong>Optimise</strong> assets such as photos, videos, and code to reduce file sizes.</li><li>Remove any <strong>barriers</strong> to accessing your website and any <strong>distractions</strong> that are getting in the way.</li><li><strong>Re-use</strong> familiar components and design patterns to make your websites quicker and easier to use.</li><li>Write <strong>simply</strong> and <strong>clearly</strong> in plain English to help people get the most value from your website and to help them avoid making mistakes that waste time and energy to resolve.</li><li><strong>Fix</strong> any usability issues you identified during your benchmarking to ensure that your website is as easy to use and useful as possible.</li><li>Ensure your user journey is as <a href="https://aaardvarkaccessibility.com/wcag-plain-english/">accessible</a> as possible so the widest possible audience can benefit from using it, offsetting the environmental cost of providing the website.</li></ul><p>As you decarbonise your user journeys, use the benchmarking tools from step 2 to track your progress against the targets you set in step 3 and share your progress as part of your wider sustainability reporting initiatives.</p><p>All being well at this point, you will have the numbers to demonstrate how the performance of your user journey has improved and also how you have managed to reduce its carbon footprint.</p><p>Share these results with the business as soon as you have them to help you secure the resources to continue the work and initiate similar work on other high-value user journeys.</p><p>You should also start to <strong>communicate your progress with your users</strong>.</p><p>It’s important that they are made aware of the carbon footprint of their digital activity and empowered to make informed choices about the environmental impact of the websites that they use.</p><p>Ideally, every website should communicate the emissions generated from viewing their pages to help people make these informed choices and also to encourage website providers to minimise their emissions if they are being displayed publicly.</p><p>Often, people will have no choice but to use a specific website to complete a specific task, so it is the responsibility of the website provider to ensure the environmental impact of using their website is as small as possible.</p><p>You can also help to raise awareness of the environmental impact of websites and what you are doing to minimise your own impact by publishing a <strong>digital sustainability statement</strong>, such as Unilever’s, as shown below.</p><figure><a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/8-unilever-digital-sustainability-statement.png"><img alt="Image shows a screenshot of the digital sustainability statement from Unilever’s website." decoding="async" fetchpriority="low" height="537" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/8-unilever-digital-sustainability-statement.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/how-minimize-environmental-impact-website/8-unilever-digital-sustainability-statement.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/how-minimize-environmental-impact-website/8-unilever-digital-sustainability-statement.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/how-minimize-environmental-impact-website/8-unilever-digital-sustainability-statement.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/how-minimize-environmental-impact-website/8-unilever-digital-sustainability-statement.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/how-minimize-environmental-impact-website/8-unilever-digital-sustainability-statement.png 2000w" width="800"></img></a><figcaption>Unilever’s digital sustainability statement is a great example of what every website should offer. (<a href="https://files.smashing.media/articles/how-minimize-environmental-impact-website/8-unilever-digital-sustainability-statement.png">Large preview</a>)</figcaption></figure><p>A good digital sustainability statement should acknowledge the environmental impact of your website, what you have done to reduce it, and what you plan to do next to minimise it further.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aAs%20an%20industry,%20we%20should%20normalise%20publishing%20digital%20sustainability%20statements%20in%20the%20same%20way%20that%20accessibility%20statements%20have%20become%20a%20standard%20addition%20to%20website%20footers.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fhow-minimize-environmental-impact-website%2f">As an industry, we should normalise publishing digital sustainability statements in the same way that accessibility statements have become a standard addition to website footers.</a></p></blockquote><h2 id="useful-decarbonising-principles">Useful Decarbonising Principles</h2><p>Keep these principles in mind to help you decarbonise your user journeys:</p><ul><li><strong>More doing and less talking.</strong><br></br>Start decarbonising your user journeys as soon as possible to accelerate your learning and positive change.</li><li><strong>Start small.</strong><br></br>Starting small by decarbonising an individual journey makes it easier to get started and generates results to demonstrate value faster.</li><li><strong>Aim to do more with less.</strong><br></br>Minimise what you offer to ensure you are providing the maximum amount of value for the energy you are consuming.</li><li><strong>Make your website as useful and as easy to use as possible.</strong><br></br>Useful websites can justify the energy they consume to provide them, ensuring they are net positive in terms of doing more good than harm.</li><li><strong>Focus on progress over perfection.</strong><br></br>Websites are never finished or perfect but they can always be improved, every small improvement you make will make a difference.</li></ul><h2 id="start-decarbonising-your-user-journeys-today">Start Decarbonising Your User Journeys Today</h2><p>Decarbonising user journeys shouldn’t be done as a one-off, reserved for the next time that you decide to redesign or replatform your website; it should happen on a <strong>continual basis</strong> as part of your broader <a href="https://docs.google.com/document/d/1adM94O0u-YMoFgkFg0FwoPASYevw_Xa6wCYKJL8Ni34/edit?usp=sharing">digital sustainability strategy</a>.</p><p>We know that websites are never finished and that the best websites continually improve as both user and business needs change. I’d like to encourage people to adopt the same mindset when it comes to minimising the environmental impact of their websites.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aDecarbonising%20will%20happen%20most%20effectively%20when%20digital%20professionals%20challenge%20themselves%20on%20a%20daily%20basis%20to%20%e2%80%98minimise%e2%80%99%20the%20things%20they%20are%20working%20on.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fhow-minimize-environmental-impact-website%2f">Decarbonising will happen most effectively when digital professionals challenge themselves on a daily basis to ‘minimise’ the things they are working on.</a></p></blockquote><p>This avoids building ‘carbon debt’ that consists of compounding technical and design debt within our websites, which is always harder to retrospectively remove than avoid in the first place.</p><p>By taking a pragmatic approach, such as optimising high-value user journeys and aligning with business metrics such as performance, we stand the best possible chance of making digital sustainability a priority.</p><p>You’ll have noticed that, other than using website carbon calculator tools, this approach doesn’t require any skills that don’t already exist within typical digital teams today. This is great because it means <strong>you’ve already got the skills that you need</strong> to do this important work.</p><p>I would encourage everyone to raise the issue of the environmental impact of the internet in their next team meeting and to try this decarbonising approach to create better outcomes for people, profit, performance, purpose, and the planet.</p><p>Good luck!</p><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (James Chudley) <![CDATA[SerpApi: A Complete API For Fetching Search Engine Data]]> https://smashingmagazine.com/2025/09/serpapi-complete-api-fetching-search-engine-data/ https://smashingmagazine.com/2025/09/serpapi-complete-api-fetching-search-engine-data/ Tue, 16 Sep 2025 17:00:00 GMT <img src="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/serpapi-complete-api-fetching-search-engine-data.jpg" /><h1>A Complete API For Fetching Search Engine Data — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>6 min read</li><li><a href="http://www.smashingmagazine.com/category/api">API</a>, <a href="http://www.smashingmagazine.com/category/tools">Tools</a>, <a href="http://www.smashingmagazine.com/category/research">Research</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>From competitive SEO research and monitoring prices to training AI and parsing local geographic data, real-time search results power smarter apps. Tools like SerpApi make it easy to pull, customize, and integrate this data directly into your app or website.</section></p><p>SerpApi leverages the power of search engine giants, like Google, DuckDuckGo, Baidu, and more, to put together the most pertinent and accurate search result data for your users from the comfort of your app or website. It’s customizable, adaptable, and offers an easy integration into any project.</p><p>What do you want to put together?</p><ul><li>Search information on a brand or business for <a href="https://serpapi.com/use-cases/seo?utm_source=smashingmagazine">SEO purposes</a>;</li><li>Input data to <a href="https://serpapi.com/use-cases/machine-learning-and-artificial-intelligence?utm_source=smashingmagazine">train AI models</a>, such as the Large Language Model, for a customer service chatbot;</li><li>Top <a href="https://serpapi.com/use-cases/news-monitoring?utm_source=smashingmagazine">news</a> and websites to pick from for a subscriber newsletter;</li><li><a href="https://serpapi.com/google-flights-api?utm_source=smashingmagazine">Google Flights API</a>: collect flight information for your travel app;</li><li><a href="https://serpapi.com/use-cases/price-monitoring?utm_source=smashingmagazine">Price</a> comparisons for the same product across different platforms;</li><li>Extra definitions and examples for words that can be offered along a language learning app.</li></ul><p>The list goes on.</p><p>In other words, you get to leverage the most comprehensive source of data on the internet for any number of needs, from <a href="https://serpapi.com/use-cases/seo?utm_source=smashingmagazine">competitive SEO research</a> and <a href="https://serpapi.com/use-cases/news-monitoring?utm_source=smashingmagazine">tracking news</a> to <a href="https://serpapi.com/use-cases/local-seo?utm_source=smashingmagazine">parsing local geographic data</a> and even <a href="https://serpapi.com/use-cases/background-check-automation?utm_source=smashingmagazine">completing personal background checks</a> for employment.</p><h2 id="start-with-a-simple-get-request">Start With A Simple GET Request</h2><p>The results from the <a href="https://serpapi.com?utm_source=smashingmagazine/#integrationsMountPoint">search API</a> are <strong>only a URL request away</strong> for those who want a super quick start. Just add your search details in the URL parameters. Say you need the search result for “Stone Henge” from the location “Westminster, England, United Kingdom” in language “en-GB”, and country of search origin “uk” from the domain “google.co.uk”. Here’s how simple it is to put the GET request together:</p><div><pre><code>https://serpapi.com/search.json?q=Stone+Henge&amp;location=Westminster,+England,+United+Kingdom&amp;hl=en-GB&amp;gl=uk&amp;google_domain=google.co.uk&amp;api_key=your_api_key </code></pre></div><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/1-get-request.png"><img alt="" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/1-get-request.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/1-get-request.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/1-get-request.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/1-get-request.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/1-get-request.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/1-get-request.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/1-get-request.png">Large preview</a>)</figcaption></figure><p>Then there’s the impressive list of libraries that seamlessly integrate the APIs into mainstream programming languages and frameworks such as JavaScript, Ruby, .NET, and more.</p><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/2-javascript-integration-code-serpapi.png"><img alt="JavaScript integration code for SerpApi" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/2-javascript-integration-code-serpapi.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/2-javascript-integration-code-serpapi.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/2-javascript-integration-code-serpapi.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/2-javascript-integration-code-serpapi.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/2-javascript-integration-code-serpapi.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/2-javascript-integration-code-serpapi.png 2000w" width="800"></img></a><figcaption>JavaScript integration code for SerpApi. (<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/2-javascript-integration-code-serpapi.png">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/3-table-serpapi-libraries.png"><img alt="Table of SerpApi libraries showing information about seven libraries." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/3-table-serpapi-libraries.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/3-table-serpapi-libraries.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/3-table-serpapi-libraries.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/3-table-serpapi-libraries.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/3-table-serpapi-libraries.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/3-table-serpapi-libraries.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/3-table-serpapi-libraries.png">Large preview</a>)</figcaption></figure><h2 id="give-it-a-quick-try">Give It A Quick Try</h2><p>Want to give it a spin? <a href="https://serpapi.com/users/sign_up?utm_source=smashingmagazine">Sign up and start for free</a>, or tinker with the SerpApi’s <a href="https://serpapi.com/playground?utm_source=smashingmagazine">live playground</a> without signing up. The <strong>playground</strong> allows you to choose which search engine to target, and you can fill in the values for all the basic parameters available in the chosen API to customize your search. On clicking “Search”, you get the search result page and its extracted JSON data.</p><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/4-serpapi-google-flights-api.png"><img alt="Playground search for flights from LGW to MLA airport using SerpApi’s Google Flights API." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/4-serpapi-google-flights-api.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/4-serpapi-google-flights-api.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/4-serpapi-google-flights-api.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/4-serpapi-google-flights-api.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/4-serpapi-google-flights-api.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/4-serpapi-google-flights-api.png 2000w" width="800"></img></a><figcaption>Playground search for flights from LGW to MLA airport using SerpApi’s Google Flights API. (<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/4-serpapi-google-flights-api.png">Large preview</a>)</figcaption></figure><p>If you need to get a feel for the full API first, you can explore their easy-to-grasp <a href="https://serpapi.com/search-api?utm_source=smashingmagazine">web documentation</a> before making any decision. You have the chance to work with all of the APIs to your satisfaction before committing to it, and when that time comes, SerpApi’s multiple <a href="https://serpapi.com/pricing?utm_source=smashingmagazine">price plans</a> tackle anywhere between an economic few hundred searches a month and bulk queries fit for large corporations.</p><h2 id="what-data-do-you-need">What Data Do You Need?</h2><p>Beyond the rudimentary search scraping, SerpApi provides a range of configurations, features, and additional APIs worth considering.</p><h3 id="geolocation">Geolocation</h3><p>Capture the global trends, or refine down to more localized particulars by names of locations or Google’s place identifiers. SerpApi’s optimized routing of requests ensures <strong>accurate retrieval of search result</strong> data from any location worldwide. If locations themselves are the answers to your queries — say, a cycle trail to be suggested in a fitness app — those can be extracted and presented as maps using SerpApi’s <a href="https://serpapi.com/google-maps-api?utm_source=smashingmagazine">Google Maps API</a>.</p><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/5-serpapi-geolocation.png"><img alt="SerpApi’s cycle route" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/5-serpapi-geolocation.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/5-serpapi-geolocation.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/5-serpapi-geolocation.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/5-serpapi-geolocation.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/5-serpapi-geolocation.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/5-serpapi-geolocation.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/5-serpapi-geolocation.png">Large preview</a>)</figcaption></figure><h3 id="structured-json">Structured JSON</h3><p>Although search engines reveal results in a tidy user interface, deriving data into your application could cause you to end up with a large data dump to be sifted through — but not if you’re using SerpApi.</p><p>SerpApi pulls data in a <strong>well-structured JSON format</strong>, even for the popular kinds of <em>enriched search results</em>, such as knowledge graphs, review snippets, sports league stats, ratings, product listings, AI overview, and more.</p><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/6-serpapi-data-json-format.png"><img alt="Example of SerpApi returning data in a JSON format." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/6-serpapi-data-json-format.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/6-serpapi-data-json-format.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/6-serpapi-data-json-format.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/6-serpapi-data-json-format.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/6-serpapi-data-json-format.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/6-serpapi-data-json-format.png 2000w" width="800"></img></a><figcaption>SerpApi returns data in a JSON format, making it easy to integrate into your application. (<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/6-serpapi-data-json-format.png">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/7-types-search-engine-results.png"><img alt="Various types of search engine results, such as meta related to video, audio, geolocation, questions, and recipes." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/7-types-search-engine-results.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/7-types-search-engine-results.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/7-types-search-engine-results.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/7-types-search-engine-results.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/7-types-search-engine-results.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/7-types-search-engine-results.png 2000w" width="800"></img></a><figcaption>Various types of search engine results, such as meta related to video, audio, geolocation, questions, and recipes. (<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/7-types-search-engine-results.png">Large preview</a>)</figcaption></figure><h3 id="speedy-results">Speedy Results</h3><p>SerpApi’s baseline performance can take care of timely search data for real-time requirements. But what if you need more? SerpApi’s <a href="https://serpapi.com/ludicrous-speed"><strong>Ludicrous Speed</strong></a> option, easily enabled from the dashboard with an upgrade, provides a super-fast response time. More than twice as fast as usual, thanks to twice the server power.</p><p>There’s also <a href="https://serpapi.com/ludicrous-speed-max"><strong>Ludicrous Speed Max</strong></a>, which allocates four times more server resources for your data retrieval. Data that is time-sensitive and for monitoring things in real-time, such as sports scores and tracking product prices, will lose its value if it is not handled in a timely manner. Ludicrous Speed Max guarantees no delays, even for a large-scale enterprise haul.</p><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/8-list-flight-prices.png"><img alt="A list of flight prices from Google Flights" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/8-list-flight-prices.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/8-list-flight-prices.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/8-list-flight-prices.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/8-list-flight-prices.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/8-list-flight-prices.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/8-list-flight-prices.png 2000w" width="800"></img></a><figcaption>A list of flight prices from Google Flights. (<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/8-list-flight-prices.png">Large preview</a>)</figcaption></figure><p>You can also use a relevant SerpApi API to hone in on your <strong>relevant category</strong>, like <a href="https://serpapi.com/google-flights-api?utm_source=smashingmagazine">Google Flights API</a>, <a href="https://serpapi.com/amazon-search-api?utm_source=smashingmagazine">Amazon API</a>, <a href="https://serpapi.com/google-news-api?utm_source=smashingmagazine">Google News API</a>, etc., to get fresh and apt results.</p><p>If you don’t need the full depth of the <a href="https://serpapi.com?utm_source=smashingmagazine/#integrationsMountPoint">search</a> <a href="https://serpapi.com?utm_source=smashingmagazine/#integrationsMountPoint">API</a>, there’s a <strong>Light version</strong> available for Google Search, Google Images, Google Videos, Google News, and DuckDuckGo Search APIs.</p><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/9-serpapi-api-list.png"><img alt="Three-column list of 45 Search APIs that are supported by SerpApi" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/9-serpapi-api-list.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/9-serpapi-api-list.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/9-serpapi-api-list.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/9-serpapi-api-list.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/9-serpapi-api-list.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/9-serpapi-api-list.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/9-serpapi-api-list.png">Large preview</a>)</figcaption></figure><h3 id="search-controls-privacy">Search Controls &amp; Privacy</h3><p>Need the results asynchronously picked up? Want a refined output using advanced <a href="https://serpapi.com?utm_source=smashingmagazine/#integrationsMountPoint">search</a> <a href="https://serpapi.com?utm_source=smashingmagazine/#integrationsMountPoint">API</a> parameters and a JSON Restrictor? Looking for search outcomes for specific devices? Don’t want auto-corrected query results? <strong>There’s no shortage of ways to configure SerpApi to get exactly what you need.</strong></p><p>Additionally, if you prefer not to have your search metadata on their servers, simply turn on the <a href="https://serpapi.com/zero-trace-mode?utm_source=smashingmagazine"><strong>“ZeroTrace” mode</strong></a> that’s available for selected plans.</p><h3 id="the-x-ray">The X-Ray</h3><p>Save yourself a headache, literally, trying to play match between what you see on a search result page and its extracted data in JSON. SerpApi’s <a href="https://serpapi.com/xray?utm_source=smashingmagazine"><strong>X-Ray tool</strong></a> <strong>shows you where what comes from</strong>. It’s available and free in all plans.</p><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/10-serpapi-x-ray.png"><img alt="SerpApi’s X-Ray tool" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/10-serpapi-x-ray.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/10-serpapi-x-ray.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/10-serpapi-x-ray.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/10-serpapi-x-ray.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/10-serpapi-x-ray.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/10-serpapi-x-ray.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/10-serpapi-x-ray.png">Large preview</a>)</figcaption></figure><h3 id="inclusive-support">Inclusive Support</h3><p>If you don’t have the expertise or resources for tackling the validity of scraping search results, here’s what SerpApi says:</p><blockquote>“SerpApi, LLC assumes scraping and parsing liabilities for both domestic and foreign companies unless your usage is otherwise illegal”.</blockquote><p>You can reach out and have a conversation with them regarding the legal protections they offer, as well as inquire about anything else you might want to know about, including SerpApi in your project, such as pricing, performance expected, on-demand options, and technical support. Just drop a message at their <a href="https://serpapi.com/#contact">contact page</a>.</p><p>In other words, the SerpApi team has your back with the support and expertise to get the most from your fetched data.</p><h3 id="try-serpapi-free">Try SerpApi Free</h3><p>That’s right, you can get your hands on SerpApi today and start fetching data with absolutely no commitment, thanks to a free starter plan that gives you up to 250 free search queries. Give it a try and then bump up to one of the reasonably-priced monthly subscription plans with generous search limits.</p><ul><li><a href="https://serpapi.com/users/sign_up?utm_source=smashingmagazine">Try SerpApi</a></li></ul><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/serpapi-complete-api-fetching-search-engine-data.jpg" /><h1>A Complete API For Fetching Search Engine Data — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>6 min read</li><li><a href="http://www.smashingmagazine.com/category/api">API</a>, <a href="http://www.smashingmagazine.com/category/tools">Tools</a>, <a href="http://www.smashingmagazine.com/category/research">Research</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>From competitive SEO research and monitoring prices to training AI and parsing local geographic data, real-time search results power smarter apps. Tools like SerpApi make it easy to pull, customize, and integrate this data directly into your app or website.</section></p><p>SerpApi leverages the power of search engine giants, like Google, DuckDuckGo, Baidu, and more, to put together the most pertinent and accurate search result data for your users from the comfort of your app or website. It’s customizable, adaptable, and offers an easy integration into any project.</p><p>What do you want to put together?</p><ul><li>Search information on a brand or business for <a href="https://serpapi.com/use-cases/seo?utm_source=smashingmagazine">SEO purposes</a>;</li><li>Input data to <a href="https://serpapi.com/use-cases/machine-learning-and-artificial-intelligence?utm_source=smashingmagazine">train AI models</a>, such as the Large Language Model, for a customer service chatbot;</li><li>Top <a href="https://serpapi.com/use-cases/news-monitoring?utm_source=smashingmagazine">news</a> and websites to pick from for a subscriber newsletter;</li><li><a href="https://serpapi.com/google-flights-api?utm_source=smashingmagazine">Google Flights API</a>: collect flight information for your travel app;</li><li><a href="https://serpapi.com/use-cases/price-monitoring?utm_source=smashingmagazine">Price</a> comparisons for the same product across different platforms;</li><li>Extra definitions and examples for words that can be offered along a language learning app.</li></ul><p>The list goes on.</p><p>In other words, you get to leverage the most comprehensive source of data on the internet for any number of needs, from <a href="https://serpapi.com/use-cases/seo?utm_source=smashingmagazine">competitive SEO research</a> and <a href="https://serpapi.com/use-cases/news-monitoring?utm_source=smashingmagazine">tracking news</a> to <a href="https://serpapi.com/use-cases/local-seo?utm_source=smashingmagazine">parsing local geographic data</a> and even <a href="https://serpapi.com/use-cases/background-check-automation?utm_source=smashingmagazine">completing personal background checks</a> for employment.</p><h2 id="start-with-a-simple-get-request">Start With A Simple GET Request</h2><p>The results from the <a href="https://serpapi.com?utm_source=smashingmagazine/#integrationsMountPoint">search API</a> are <strong>only a URL request away</strong> for those who want a super quick start. Just add your search details in the URL parameters. Say you need the search result for “Stone Henge” from the location “Westminster, England, United Kingdom” in language “en-GB”, and country of search origin “uk” from the domain “google.co.uk”. Here’s how simple it is to put the GET request together:</p><div><pre><code>https://serpapi.com/search.json?q=Stone+Henge&amp;location=Westminster,+England,+United+Kingdom&amp;hl=en-GB&amp;gl=uk&amp;google_domain=google.co.uk&amp;api_key=your_api_key </code></pre></div><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/1-get-request.png"><img alt="" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/1-get-request.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/1-get-request.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/1-get-request.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/1-get-request.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/1-get-request.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/1-get-request.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/1-get-request.png">Large preview</a>)</figcaption></figure><p>Then there’s the impressive list of libraries that seamlessly integrate the APIs into mainstream programming languages and frameworks such as JavaScript, Ruby, .NET, and more.</p><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/2-javascript-integration-code-serpapi.png"><img alt="JavaScript integration code for SerpApi" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/2-javascript-integration-code-serpapi.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/2-javascript-integration-code-serpapi.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/2-javascript-integration-code-serpapi.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/2-javascript-integration-code-serpapi.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/2-javascript-integration-code-serpapi.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/2-javascript-integration-code-serpapi.png 2000w" width="800"></img></a><figcaption>JavaScript integration code for SerpApi. (<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/2-javascript-integration-code-serpapi.png">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/3-table-serpapi-libraries.png"><img alt="Table of SerpApi libraries showing information about seven libraries." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/3-table-serpapi-libraries.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/3-table-serpapi-libraries.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/3-table-serpapi-libraries.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/3-table-serpapi-libraries.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/3-table-serpapi-libraries.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/3-table-serpapi-libraries.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/3-table-serpapi-libraries.png">Large preview</a>)</figcaption></figure><h2 id="give-it-a-quick-try">Give It A Quick Try</h2><p>Want to give it a spin? <a href="https://serpapi.com/users/sign_up?utm_source=smashingmagazine">Sign up and start for free</a>, or tinker with the SerpApi’s <a href="https://serpapi.com/playground?utm_source=smashingmagazine">live playground</a> without signing up. The <strong>playground</strong> allows you to choose which search engine to target, and you can fill in the values for all the basic parameters available in the chosen API to customize your search. On clicking “Search”, you get the search result page and its extracted JSON data.</p><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/4-serpapi-google-flights-api.png"><img alt="Playground search for flights from LGW to MLA airport using SerpApi’s Google Flights API." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/4-serpapi-google-flights-api.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/4-serpapi-google-flights-api.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/4-serpapi-google-flights-api.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/4-serpapi-google-flights-api.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/4-serpapi-google-flights-api.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/4-serpapi-google-flights-api.png 2000w" width="800"></img></a><figcaption>Playground search for flights from LGW to MLA airport using SerpApi’s Google Flights API. (<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/4-serpapi-google-flights-api.png">Large preview</a>)</figcaption></figure><p>If you need to get a feel for the full API first, you can explore their easy-to-grasp <a href="https://serpapi.com/search-api?utm_source=smashingmagazine">web documentation</a> before making any decision. You have the chance to work with all of the APIs to your satisfaction before committing to it, and when that time comes, SerpApi’s multiple <a href="https://serpapi.com/pricing?utm_source=smashingmagazine">price plans</a> tackle anywhere between an economic few hundred searches a month and bulk queries fit for large corporations.</p><h2 id="what-data-do-you-need">What Data Do You Need?</h2><p>Beyond the rudimentary search scraping, SerpApi provides a range of configurations, features, and additional APIs worth considering.</p><h3 id="geolocation">Geolocation</h3><p>Capture the global trends, or refine down to more localized particulars by names of locations or Google’s place identifiers. SerpApi’s optimized routing of requests ensures <strong>accurate retrieval of search result</strong> data from any location worldwide. If locations themselves are the answers to your queries — say, a cycle trail to be suggested in a fitness app — those can be extracted and presented as maps using SerpApi’s <a href="https://serpapi.com/google-maps-api?utm_source=smashingmagazine">Google Maps API</a>.</p><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/5-serpapi-geolocation.png"><img alt="SerpApi’s cycle route" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/5-serpapi-geolocation.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/5-serpapi-geolocation.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/5-serpapi-geolocation.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/5-serpapi-geolocation.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/5-serpapi-geolocation.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/5-serpapi-geolocation.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/5-serpapi-geolocation.png">Large preview</a>)</figcaption></figure><h3 id="structured-json">Structured JSON</h3><p>Although search engines reveal results in a tidy user interface, deriving data into your application could cause you to end up with a large data dump to be sifted through — but not if you’re using SerpApi.</p><p>SerpApi pulls data in a <strong>well-structured JSON format</strong>, even for the popular kinds of <em>enriched search results</em>, such as knowledge graphs, review snippets, sports league stats, ratings, product listings, AI overview, and more.</p><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/6-serpapi-data-json-format.png"><img alt="Example of SerpApi returning data in a JSON format." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/6-serpapi-data-json-format.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/6-serpapi-data-json-format.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/6-serpapi-data-json-format.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/6-serpapi-data-json-format.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/6-serpapi-data-json-format.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/6-serpapi-data-json-format.png 2000w" width="800"></img></a><figcaption>SerpApi returns data in a JSON format, making it easy to integrate into your application. (<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/6-serpapi-data-json-format.png">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/7-types-search-engine-results.png"><img alt="Various types of search engine results, such as meta related to video, audio, geolocation, questions, and recipes." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/7-types-search-engine-results.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/7-types-search-engine-results.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/7-types-search-engine-results.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/7-types-search-engine-results.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/7-types-search-engine-results.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/7-types-search-engine-results.png 2000w" width="800"></img></a><figcaption>Various types of search engine results, such as meta related to video, audio, geolocation, questions, and recipes. (<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/7-types-search-engine-results.png">Large preview</a>)</figcaption></figure><h3 id="speedy-results">Speedy Results</h3><p>SerpApi’s baseline performance can take care of timely search data for real-time requirements. But what if you need more? SerpApi’s <a href="https://serpapi.com/ludicrous-speed"><strong>Ludicrous Speed</strong></a> option, easily enabled from the dashboard with an upgrade, provides a super-fast response time. More than twice as fast as usual, thanks to twice the server power.</p><p>There’s also <a href="https://serpapi.com/ludicrous-speed-max"><strong>Ludicrous Speed Max</strong></a>, which allocates four times more server resources for your data retrieval. Data that is time-sensitive and for monitoring things in real-time, such as sports scores and tracking product prices, will lose its value if it is not handled in a timely manner. Ludicrous Speed Max guarantees no delays, even for a large-scale enterprise haul.</p><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/8-list-flight-prices.png"><img alt="A list of flight prices from Google Flights" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/8-list-flight-prices.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/8-list-flight-prices.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/8-list-flight-prices.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/8-list-flight-prices.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/8-list-flight-prices.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/8-list-flight-prices.png 2000w" width="800"></img></a><figcaption>A list of flight prices from Google Flights. (<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/8-list-flight-prices.png">Large preview</a>)</figcaption></figure><p>You can also use a relevant SerpApi API to hone in on your <strong>relevant category</strong>, like <a href="https://serpapi.com/google-flights-api?utm_source=smashingmagazine">Google Flights API</a>, <a href="https://serpapi.com/amazon-search-api?utm_source=smashingmagazine">Amazon API</a>, <a href="https://serpapi.com/google-news-api?utm_source=smashingmagazine">Google News API</a>, etc., to get fresh and apt results.</p><p>If you don’t need the full depth of the <a href="https://serpapi.com?utm_source=smashingmagazine/#integrationsMountPoint">search</a> <a href="https://serpapi.com?utm_source=smashingmagazine/#integrationsMountPoint">API</a>, there’s a <strong>Light version</strong> available for Google Search, Google Images, Google Videos, Google News, and DuckDuckGo Search APIs.</p><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/9-serpapi-api-list.png"><img alt="Three-column list of 45 Search APIs that are supported by SerpApi" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/9-serpapi-api-list.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/9-serpapi-api-list.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/9-serpapi-api-list.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/9-serpapi-api-list.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/9-serpapi-api-list.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/9-serpapi-api-list.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/9-serpapi-api-list.png">Large preview</a>)</figcaption></figure><h3 id="search-controls-privacy">Search Controls &amp; Privacy</h3><p>Need the results asynchronously picked up? Want a refined output using advanced <a href="https://serpapi.com?utm_source=smashingmagazine/#integrationsMountPoint">search</a> <a href="https://serpapi.com?utm_source=smashingmagazine/#integrationsMountPoint">API</a> parameters and a JSON Restrictor? Looking for search outcomes for specific devices? Don’t want auto-corrected query results? <strong>There’s no shortage of ways to configure SerpApi to get exactly what you need.</strong></p><p>Additionally, if you prefer not to have your search metadata on their servers, simply turn on the <a href="https://serpapi.com/zero-trace-mode?utm_source=smashingmagazine"><strong>“ZeroTrace” mode</strong></a> that’s available for selected plans.</p><h3 id="the-x-ray">The X-Ray</h3><p>Save yourself a headache, literally, trying to play match between what you see on a search result page and its extracted data in JSON. SerpApi’s <a href="https://serpapi.com/xray?utm_source=smashingmagazine"><strong>X-Ray tool</strong></a> <strong>shows you where what comes from</strong>. It’s available and free in all plans.</p><figure><a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/10-serpapi-x-ray.png"><img alt="SerpApi’s X-Ray tool" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/10-serpapi-x-ray.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/10-serpapi-x-ray.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/10-serpapi-x-ray.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/10-serpapi-x-ray.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/10-serpapi-x-ray.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/10-serpapi-x-ray.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/serpapi-complete-api-fetching-search-engine-data/10-serpapi-x-ray.png">Large preview</a>)</figcaption></figure><h3 id="inclusive-support">Inclusive Support</h3><p>If you don’t have the expertise or resources for tackling the validity of scraping search results, here’s what SerpApi says:</p><blockquote>“SerpApi, LLC assumes scraping and parsing liabilities for both domestic and foreign companies unless your usage is otherwise illegal”.</blockquote><p>You can reach out and have a conversation with them regarding the legal protections they offer, as well as inquire about anything else you might want to know about, including SerpApi in your project, such as pricing, performance expected, on-demand options, and technical support. Just drop a message at their <a href="https://serpapi.com/#contact">contact page</a>.</p><p>In other words, the SerpApi team has your back with the support and expertise to get the most from your fetched data.</p><h3 id="try-serpapi-free">Try SerpApi Free</h3><p>That’s right, you can get your hands on SerpApi today and start fetching data with absolutely no commitment, thanks to a free starter plan that gives you up to 250 free search queries. Give it a try and then bump up to one of the reasonably-priced monthly subscription plans with generous search limits.</p><ul><li><a href="https://serpapi.com/users/sign_up?utm_source=smashingmagazine">Try SerpApi</a></li></ul><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (Preethi Sam) <![CDATA[Functional Personas With AI: A Lean, Practical Workflow]]> https://smashingmagazine.com/2025/09/functional-personas-ai-lean-practical-workflow/ https://smashingmagazine.com/2025/09/functional-personas-ai-lean-practical-workflow/ Tue, 16 Sep 2025 08:00:00 GMT <img src="https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/functional-personas-ai-lean-practical-workflow.jpg" /><h1>A Lean, Practical Workflow — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>9 min read</li><li><a href="http://www.smashingmagazine.com/category/ai">AI</a>, <a href="http://www.smashingmagazine.com/category/workflow">Workflow</a>, <a href="http://www.smashingmagazine.com/category/techniques">Techniques</a>, <a href="http://www.smashingmagazine.com/category/ux">UX</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>For too long, personas have been something that many of us just created, despite the considerable work that goes into them, only to find they have limited usefulness. Paul Boag shows how to breathe new life into this stale UX asset and demonstrates that it’s possible to create truly useful functional personas in a lightweight way.</section></p><p>Traditional personas suck for UX work. They obsess over marketing metrics like age, income, and job titles while missing what actually matters in design: what people are trying to accomplish.</p><p><a href="https://boagworld.com/usability/personas/">Functional personas</a>, on the other hand, focus on what people are trying to do, not who they are on paper. With a simple AI‑assisted workflow, you can build and maintain personas that actually guide design, content, and conversion decisions.</p><ul><li>Keep users front of mind with task‑driven personas,</li><li>Skip fragile demographics; center on goals, questions, and blockers,</li><li>Use AI to process your messy inputs fast and fill research gaps,</li><li>Validate lightly, ship confidently, and keep them updated.</li></ul><p>In this article, I want to breathe new life into a stale UX asset.</p><figure><a href="https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/traditional-demographic-personas.png"><img alt="Traditional demographic personas" decoding="async" fetchpriority="low" height="483" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/traditional-demographic-personas.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/traditional-demographic-personas.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/traditional-demographic-personas.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/traditional-demographic-personas.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/traditional-demographic-personas.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/traditional-demographic-personas.png 2000w" width="800"></img></a><figcaption>Traditional demographic personas look good but quickly get outdated, need constant updating, and rarely offer practical UX guidance. (<a href="https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/traditional-demographic-personas.png">Large preview</a>)</figcaption></figure><p>For too long, personas have been something that many of us just created, despite the considerable work that goes into them, only to find they have limited usefulness.</p><p>I know that many of you may have given up on them entirely, but I am hoping in this post to encourage you that it is possible to create truly useful personas in a lightweight way.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="why-personas-still-matter">Why Personas Still Matter</h2><p>Personas give you a shared lens. When everyone uses the same reference point, you cut debate and make better calls. For UX designers, developers, and digital teams, that shared lens keeps you from designing in silos and helps you prioritize work that genuinely improves the experience.</p><p>I use personas as a quick test: <em>Would this change help this user complete their task faster, with fewer doubts?</em> If the answer is no (or a shrug), it’s probably a sign the idea isn’t worth pursuing.</p><h2 id="from-demographics-to-function">From Demographics To Function</h2><p>Traditional personas tell you someone’s age, job title, or favorite brand. That makes a nice poster, but it rarely changes design or copy.</p><p><strong>Functional personas flip the script.</strong> They describe:</p><ul><li><strong>Goals &amp; tasks:</strong> What the person is here to achieve.</li><li><strong>Questions &amp; objections:</strong> What they need to know before they act.</li><li><strong>Touchpoints:</strong> How the person interacts with the organization.</li><li><strong>Service gaps:</strong> How the company might be letting this persona down.</li></ul><p>When you center on tasks and friction, you get direct lines from user needs to UI decisions, content, and conversion paths.</p><figure><a href="https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/persona-templates.png"><img alt="Persona templates" decoding="async" fetchpriority="low" height="2354" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/persona-templates.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/persona-templates.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/persona-templates.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/persona-templates.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/persona-templates.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/persona-templates.png 2000w" width="800"></img></a><figcaption>Persona templates should be customized for each organization’s specific needs and contexts. (<a href="https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/persona-templates.png">Large preview</a>)</figcaption></figure><p>But remember, this list isn’t set in stone — adapt it to what’s actually useful in your specific situation.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aOne%20of%20the%20biggest%20problems%20with%20traditional%20personas%20was%20following%20a%20rigid%20template%20regardless%20of%20whether%20it%20made%20sense%20for%20your%20project.%20We%20must%20not%20fall%20into%20that%20same%20mistake%20with%20functional%20personas.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2ffunctional-personas-ai-lean-practical-workflow%2f">One of the biggest problems with traditional personas was following a rigid template regardless of whether it made sense for your project. We must not fall into that same mistake with functional personas.</a></p></blockquote><h2 id="the-benefits-of-functional-personas">The Benefits of Functional Personas</h2><p>For small startups, functional personas <strong>reduce wasted effort</strong>. For enterprise teams, they keep sprawling projects grounded in what matters most.</p><p>However, because of the way we are going to produce our personas, they provide certain benefits in either case:</p><ul><li><strong>Lighten the load:</strong> They’re easier to update without large research cycles.</li><li><strong>Stay current:</strong> Because they are easy to produce, we can update them more often.</li><li><strong>Tie to outcomes:</strong> Tasks, objections, and proof points map straight to funnels, flows, and product decisions.</li></ul><p>We can deliver these benefits because we are going to use AI to help us, rather than carrying out a lot of time-consuming new research.</p><h2 id="how-ai-helps-us-get-there">How AI Helps Us Get There</h2><p>Of course, doing fresh research is always preferable. But in many cases, it is not feasible due to time or budget constraints. I would argue that using AI to help us create personas based on existing assets is preferable to having no focus on user attention at all.</p><p>AI tools can chew through the inputs you already have (surveys, analytics, chat logs, reviews) and surface patterns you can act on. They also help you scan public conversations around your product category to fill gaps.</p><p>I therefore recommend using AI to:</p><ul><li><strong>Synthesize inputs:</strong> Turn scattered notes into clean themes.</li><li><strong>Spot segments by need:</strong> Group people by jobs‑to‑be‑done, not demographics.</li><li><strong>Draft quickly:</strong> Produce first‑pass personas and sample journeys in minutes.</li><li><strong>Iterate with stakeholders:</strong> Update on the fly as you get feedback.</li></ul><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aAI%20doesn%e2%80%99t%20remove%20the%20need%20for%20traditional%20research.%20Rather,%20it%20is%20a%20way%20of%20extracting%20more%20value%20from%20the%20scattered%20insights%20into%20users%20that%20already%20exist%20within%20an%20organization%20or%20online.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2ffunctional-personas-ai-lean-practical-workflow%2f">AI doesn’t remove the need for traditional research. Rather, it is a way of extracting more value from the scattered insights into users that already exist within an organization or online.</a></p></blockquote><h2 id="the-workflow">The Workflow</h2><p>Here’s how to move from scattered inputs to usable personas. Each step builds on the last, so treat it as a cycle you can repeat as projects evolve.</p><h3 id="1-set-up-a-dedicated-workspace">1. Set Up A Dedicated Workspace</h3><p>Create a dedicated space within your AI tool for this work. Most AI platforms offer project management features that let you organize files and conversations:</p><ul><li>In ChatGPT and Claude, use “Projects” to store context and instructions.</li><li>In Perplexity, Gemini and CoPilot similar functionality is referred to as “Spaces.”</li></ul><p>This project space becomes your central repository where all uploaded documents, research data, and generated personas live together. The AI will maintain context between sessions, so you won’t have to re-upload materials each time you iterate. This structured approach makes your workflow more efficient and helps the AI deliver more consistent results.</p><figure><a href="https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/chatgpt-projects-persona-development.png"><img alt="ChatGPT Project for persona development" decoding="async" fetchpriority="low" height="525" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/chatgpt-projects-persona-development.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/chatgpt-projects-persona-development.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/chatgpt-projects-persona-development.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/chatgpt-projects-persona-development.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/chatgpt-projects-persona-development.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/chatgpt-projects-persona-development.png 2000w" width="800"></img></a><figcaption>ChatGPT Projects serve as an effective tool for gathering and analyzing user research data in ways that directly support persona development. (<a href="https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/chatgpt-projects-persona-development.png">Large preview</a>)</figcaption></figure><h3 id="2-write-clear-instructions">2. Write Clear Instructions</h3><p>Next, you can brief your AI project so that it understands what it wants from you. For example:</p><blockquote>“Act as a user researcher. Create realistic, functional personas using the project files and public research. Segment by needs, tasks, questions, pain points, and goals. Show your reasoning.”</blockquote><p>Asking for a rationale gives you a paper trail you can defend to stakeholders.</p><h3 id="3-upload-what-you-ve-got-even-if-it-s-messy">3. Upload What You’ve Got (Even If It’s Messy)</h3><p>This is where things get really powerful.</p><p>Upload everything (and I mean everything) you can put your hands on relating to the user. Old surveys, past personas, analytics screenshots, FAQs, support tickets, review snippets; dump them all in. The more varied the sources, the stronger the triangulation.</p><h3 id="4-run-focused-external-research">4. Run Focused External Research</h3><p>Once you have done that, you can supplement that data by getting AI to carry out “deep research” about your brand. Have AI scan recent (I often focus on the last year) public conversations for your brand, product space, or competitors. Look for:</p><ul><li>Who’s talking and what they’re trying to do;</li><li>Common questions and blockers;</li><li>Phrases people use (great for copywriting).</li></ul><p>Save the report you get back into your project.</p><h3 id="5-propose-segments-by-need">5. Propose Segments By Need</h3><p>Once you have done that, ask AI to suggest segments based on tasks and friction points (not demographics). Push back until each segment is <strong>distinct, observable, and actionable</strong>. If two would behave the same way in your flow, merge them.</p><p>This takes a little bit of trial and error and is where your experience really comes into play.</p><h3 id="6-generate-draft-personas">6. Generate Draft Personas</h3><p>Now you have your segments, the next step is to draft your personas. Use a simple template so the document is read and used. If your personas become too complicated, people will not read them. Each persona should:</p><ul><li>State goals and tasks,</li><li>List objections and blockers,</li><li>Highlight pain points,</li><li>Show touchpoints,</li><li>Identify service gaps.</li></ul><p>Below is a sample template you can work with:</p><pre><code># Persona Title: e.g. Savvy Shopper - Person's Name: e.g. John Smith. - Age: e.g. 24 - Job: e.g. Social Media Manager "A quote that sums up the persona's general attitude" ## Primary Goal What they’re here to achieve (1–2 lines). ## Key Tasks • Task 1 • Task 2 • Task 3 ## Questions &amp; Objections • What do they need to know before they act? • What might make them hesitate? ## Pain Points • Where do they get stuck? • What feels risky, slow, or confusing? ## Touchpoints • What channels are they most commonly interacting with? ## Service Gaps • How is the organization currently failing this persona? </code></pre><p>Remember, you should customize this to reflect what will prove useful within your organization.</p><h3 id="7-validate">7. Validate</h3><p>It is important to validate that what the AI has produced is realistic. Obviously, no persona is a true representation as it is a snapshot in time of a Hypothetical user. However, we do want it to be as accurate as possible.</p><p>Share your drafts with colleagues who interact regularly with real users — people in support cells or research teams. Where possible, test with a handful of users. Then cut anything that you can’t defend or correct any errors that are identified.</p><h2 id="troubleshooting-guardrails">Troubleshooting &amp; Guardrails</h2><p>As you work through the above process, you will encounter problems. Here are common pitfalls and how to avoid them:</p><ul><li><strong>Too many personas?</strong><br></br>Merge until each one changes a design or copy decision. Three strong personas beat seven weak ones.</li><li><strong>Stakeholder wants demographics?</strong><br></br>Only include details that affect behavior. Otherwise, leave them out. Suggest separate personas for other functions (such as marketing).</li><li><strong>AI hallucinations?</strong><br></br>Always ask for a rationale or sources. Cross‑check with your own data and customer‑facing teams.</li><li><strong>Not enough data?</strong><br></br>Mark assumptions clearly, then validate with quick interviews, surveys, or usability tests.</li></ul><h2 id="making-personas-useful-in-practice">Making Personas Useful In Practice</h2><p>The most important thing to remember is to actually use your personas once they’ve been created. They can easily become forgotten PDFs rather than active tools. Instead, personas should shape your work and be referenced regularly. Here are some ways you can put personas to work:</p><ul><li><strong>Navigation &amp; IA:</strong> Structure menus by top tasks.</li><li><strong>Content &amp; Proof:</strong> Map objections to FAQs, case studies, and microcopy.</li><li><strong>Flows &amp; UI:</strong> Streamline steps to match how people think.</li><li><strong>Conversion:</strong> Match CTAs to personas’ readiness, goals, and pain points.</li><li><strong>Measurement:</strong> Track KPIs that map to personas, not vanity metrics.</li></ul><p>With this approach, personas evolve from static deliverables into <strong>dynamic reference points</strong> your whole team can rely on.</p><h2 id="keep-them-alive">Keep Them Alive</h2><p>Treat personas as a <strong>living toolkit</strong>. Schedule a refresh every quarter or after major product changes. Rerun the research pass, regenerate summaries, and archive outdated assumptions. The goal isn’t perfection; it’s keeping them relevant enough to guide decisions.</p><h2 id="bottom-line">Bottom Line</h2><p>Functional personas are faster to build, easier to maintain, and better aligned with real user behavior. By combining AI’s speed with human judgment, you can create personas that don’t just sit in a slide deck; they actively shape better products, clearer interfaces, and smoother experiences.</p><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/functional-personas-ai-lean-practical-workflow.jpg" /><h1>A Lean, Practical Workflow — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>9 min read</li><li><a href="http://www.smashingmagazine.com/category/ai">AI</a>, <a href="http://www.smashingmagazine.com/category/workflow">Workflow</a>, <a href="http://www.smashingmagazine.com/category/techniques">Techniques</a>, <a href="http://www.smashingmagazine.com/category/ux">UX</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>For too long, personas have been something that many of us just created, despite the considerable work that goes into them, only to find they have limited usefulness. Paul Boag shows how to breathe new life into this stale UX asset and demonstrates that it’s possible to create truly useful functional personas in a lightweight way.</section></p><p>Traditional personas suck for UX work. They obsess over marketing metrics like age, income, and job titles while missing what actually matters in design: what people are trying to accomplish.</p><p><a href="https://boagworld.com/usability/personas/">Functional personas</a>, on the other hand, focus on what people are trying to do, not who they are on paper. With a simple AI‑assisted workflow, you can build and maintain personas that actually guide design, content, and conversion decisions.</p><ul><li>Keep users front of mind with task‑driven personas,</li><li>Skip fragile demographics; center on goals, questions, and blockers,</li><li>Use AI to process your messy inputs fast and fill research gaps,</li><li>Validate lightly, ship confidently, and keep them updated.</li></ul><p>In this article, I want to breathe new life into a stale UX asset.</p><figure><a href="https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/traditional-demographic-personas.png"><img alt="Traditional demographic personas" decoding="async" fetchpriority="low" height="483" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/traditional-demographic-personas.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/traditional-demographic-personas.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/traditional-demographic-personas.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/traditional-demographic-personas.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/traditional-demographic-personas.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/traditional-demographic-personas.png 2000w" width="800"></img></a><figcaption>Traditional demographic personas look good but quickly get outdated, need constant updating, and rarely offer practical UX guidance. (<a href="https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/traditional-demographic-personas.png">Large preview</a>)</figcaption></figure><p>For too long, personas have been something that many of us just created, despite the considerable work that goes into them, only to find they have limited usefulness.</p><p>I know that many of you may have given up on them entirely, but I am hoping in this post to encourage you that it is possible to create truly useful personas in a lightweight way.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="why-personas-still-matter">Why Personas Still Matter</h2><p>Personas give you a shared lens. When everyone uses the same reference point, you cut debate and make better calls. For UX designers, developers, and digital teams, that shared lens keeps you from designing in silos and helps you prioritize work that genuinely improves the experience.</p><p>I use personas as a quick test: <em>Would this change help this user complete their task faster, with fewer doubts?</em> If the answer is no (or a shrug), it’s probably a sign the idea isn’t worth pursuing.</p><h2 id="from-demographics-to-function">From Demographics To Function</h2><p>Traditional personas tell you someone’s age, job title, or favorite brand. That makes a nice poster, but it rarely changes design or copy.</p><p><strong>Functional personas flip the script.</strong> They describe:</p><ul><li><strong>Goals &amp; tasks:</strong> What the person is here to achieve.</li><li><strong>Questions &amp; objections:</strong> What they need to know before they act.</li><li><strong>Touchpoints:</strong> How the person interacts with the organization.</li><li><strong>Service gaps:</strong> How the company might be letting this persona down.</li></ul><p>When you center on tasks and friction, you get direct lines from user needs to UI decisions, content, and conversion paths.</p><figure><a href="https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/persona-templates.png"><img alt="Persona templates" decoding="async" fetchpriority="low" height="2354" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/persona-templates.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/persona-templates.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/persona-templates.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/persona-templates.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/persona-templates.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/persona-templates.png 2000w" width="800"></img></a><figcaption>Persona templates should be customized for each organization’s specific needs and contexts. (<a href="https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/persona-templates.png">Large preview</a>)</figcaption></figure><p>But remember, this list isn’t set in stone — adapt it to what’s actually useful in your specific situation.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aOne%20of%20the%20biggest%20problems%20with%20traditional%20personas%20was%20following%20a%20rigid%20template%20regardless%20of%20whether%20it%20made%20sense%20for%20your%20project.%20We%20must%20not%20fall%20into%20that%20same%20mistake%20with%20functional%20personas.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2ffunctional-personas-ai-lean-practical-workflow%2f">One of the biggest problems with traditional personas was following a rigid template regardless of whether it made sense for your project. We must not fall into that same mistake with functional personas.</a></p></blockquote><h2 id="the-benefits-of-functional-personas">The Benefits of Functional Personas</h2><p>For small startups, functional personas <strong>reduce wasted effort</strong>. For enterprise teams, they keep sprawling projects grounded in what matters most.</p><p>However, because of the way we are going to produce our personas, they provide certain benefits in either case:</p><ul><li><strong>Lighten the load:</strong> They’re easier to update without large research cycles.</li><li><strong>Stay current:</strong> Because they are easy to produce, we can update them more often.</li><li><strong>Tie to outcomes:</strong> Tasks, objections, and proof points map straight to funnels, flows, and product decisions.</li></ul><p>We can deliver these benefits because we are going to use AI to help us, rather than carrying out a lot of time-consuming new research.</p><h2 id="how-ai-helps-us-get-there">How AI Helps Us Get There</h2><p>Of course, doing fresh research is always preferable. But in many cases, it is not feasible due to time or budget constraints. I would argue that using AI to help us create personas based on existing assets is preferable to having no focus on user attention at all.</p><p>AI tools can chew through the inputs you already have (surveys, analytics, chat logs, reviews) and surface patterns you can act on. They also help you scan public conversations around your product category to fill gaps.</p><p>I therefore recommend using AI to:</p><ul><li><strong>Synthesize inputs:</strong> Turn scattered notes into clean themes.</li><li><strong>Spot segments by need:</strong> Group people by jobs‑to‑be‑done, not demographics.</li><li><strong>Draft quickly:</strong> Produce first‑pass personas and sample journeys in minutes.</li><li><strong>Iterate with stakeholders:</strong> Update on the fly as you get feedback.</li></ul><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aAI%20doesn%e2%80%99t%20remove%20the%20need%20for%20traditional%20research.%20Rather,%20it%20is%20a%20way%20of%20extracting%20more%20value%20from%20the%20scattered%20insights%20into%20users%20that%20already%20exist%20within%20an%20organization%20or%20online.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2ffunctional-personas-ai-lean-practical-workflow%2f">AI doesn’t remove the need for traditional research. Rather, it is a way of extracting more value from the scattered insights into users that already exist within an organization or online.</a></p></blockquote><h2 id="the-workflow">The Workflow</h2><p>Here’s how to move from scattered inputs to usable personas. Each step builds on the last, so treat it as a cycle you can repeat as projects evolve.</p><h3 id="1-set-up-a-dedicated-workspace">1. Set Up A Dedicated Workspace</h3><p>Create a dedicated space within your AI tool for this work. Most AI platforms offer project management features that let you organize files and conversations:</p><ul><li>In ChatGPT and Claude, use “Projects” to store context and instructions.</li><li>In Perplexity, Gemini and CoPilot similar functionality is referred to as “Spaces.”</li></ul><p>This project space becomes your central repository where all uploaded documents, research data, and generated personas live together. The AI will maintain context between sessions, so you won’t have to re-upload materials each time you iterate. This structured approach makes your workflow more efficient and helps the AI deliver more consistent results.</p><figure><a href="https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/chatgpt-projects-persona-development.png"><img alt="ChatGPT Project for persona development" decoding="async" fetchpriority="low" height="525" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/chatgpt-projects-persona-development.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/chatgpt-projects-persona-development.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/chatgpt-projects-persona-development.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/chatgpt-projects-persona-development.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/chatgpt-projects-persona-development.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/chatgpt-projects-persona-development.png 2000w" width="800"></img></a><figcaption>ChatGPT Projects serve as an effective tool for gathering and analyzing user research data in ways that directly support persona development. (<a href="https://files.smashing.media/articles/functional-personas-ai-lean-practical-workflow/chatgpt-projects-persona-development.png">Large preview</a>)</figcaption></figure><h3 id="2-write-clear-instructions">2. Write Clear Instructions</h3><p>Next, you can brief your AI project so that it understands what it wants from you. For example:</p><blockquote>“Act as a user researcher. Create realistic, functional personas using the project files and public research. Segment by needs, tasks, questions, pain points, and goals. Show your reasoning.”</blockquote><p>Asking for a rationale gives you a paper trail you can defend to stakeholders.</p><h3 id="3-upload-what-you-ve-got-even-if-it-s-messy">3. Upload What You’ve Got (Even If It’s Messy)</h3><p>This is where things get really powerful.</p><p>Upload everything (and I mean everything) you can put your hands on relating to the user. Old surveys, past personas, analytics screenshots, FAQs, support tickets, review snippets; dump them all in. The more varied the sources, the stronger the triangulation.</p><h3 id="4-run-focused-external-research">4. Run Focused External Research</h3><p>Once you have done that, you can supplement that data by getting AI to carry out “deep research” about your brand. Have AI scan recent (I often focus on the last year) public conversations for your brand, product space, or competitors. Look for:</p><ul><li>Who’s talking and what they’re trying to do;</li><li>Common questions and blockers;</li><li>Phrases people use (great for copywriting).</li></ul><p>Save the report you get back into your project.</p><h3 id="5-propose-segments-by-need">5. Propose Segments By Need</h3><p>Once you have done that, ask AI to suggest segments based on tasks and friction points (not demographics). Push back until each segment is <strong>distinct, observable, and actionable</strong>. If two would behave the same way in your flow, merge them.</p><p>This takes a little bit of trial and error and is where your experience really comes into play.</p><h3 id="6-generate-draft-personas">6. Generate Draft Personas</h3><p>Now you have your segments, the next step is to draft your personas. Use a simple template so the document is read and used. If your personas become too complicated, people will not read them. Each persona should:</p><ul><li>State goals and tasks,</li><li>List objections and blockers,</li><li>Highlight pain points,</li><li>Show touchpoints,</li><li>Identify service gaps.</li></ul><p>Below is a sample template you can work with:</p><pre><code># Persona Title: e.g. Savvy Shopper - Person's Name: e.g. John Smith. - Age: e.g. 24 - Job: e.g. Social Media Manager "A quote that sums up the persona's general attitude" ## Primary Goal What they’re here to achieve (1–2 lines). ## Key Tasks • Task 1 • Task 2 • Task 3 ## Questions &amp; Objections • What do they need to know before they act? • What might make them hesitate? ## Pain Points • Where do they get stuck? • What feels risky, slow, or confusing? ## Touchpoints • What channels are they most commonly interacting with? ## Service Gaps • How is the organization currently failing this persona? </code></pre><p>Remember, you should customize this to reflect what will prove useful within your organization.</p><h3 id="7-validate">7. Validate</h3><p>It is important to validate that what the AI has produced is realistic. Obviously, no persona is a true representation as it is a snapshot in time of a Hypothetical user. However, we do want it to be as accurate as possible.</p><p>Share your drafts with colleagues who interact regularly with real users — people in support cells or research teams. Where possible, test with a handful of users. Then cut anything that you can’t defend or correct any errors that are identified.</p><h2 id="troubleshooting-guardrails">Troubleshooting &amp; Guardrails</h2><p>As you work through the above process, you will encounter problems. Here are common pitfalls and how to avoid them:</p><ul><li><strong>Too many personas?</strong><br></br>Merge until each one changes a design or copy decision. Three strong personas beat seven weak ones.</li><li><strong>Stakeholder wants demographics?</strong><br></br>Only include details that affect behavior. Otherwise, leave them out. Suggest separate personas for other functions (such as marketing).</li><li><strong>AI hallucinations?</strong><br></br>Always ask for a rationale or sources. Cross‑check with your own data and customer‑facing teams.</li><li><strong>Not enough data?</strong><br></br>Mark assumptions clearly, then validate with quick interviews, surveys, or usability tests.</li></ul><h2 id="making-personas-useful-in-practice">Making Personas Useful In Practice</h2><p>The most important thing to remember is to actually use your personas once they’ve been created. They can easily become forgotten PDFs rather than active tools. Instead, personas should shape your work and be referenced regularly. Here are some ways you can put personas to work:</p><ul><li><strong>Navigation &amp; IA:</strong> Structure menus by top tasks.</li><li><strong>Content &amp; Proof:</strong> Map objections to FAQs, case studies, and microcopy.</li><li><strong>Flows &amp; UI:</strong> Streamline steps to match how people think.</li><li><strong>Conversion:</strong> Match CTAs to personas’ readiness, goals, and pain points.</li><li><strong>Measurement:</strong> Track KPIs that map to personas, not vanity metrics.</li></ul><p>With this approach, personas evolve from static deliverables into <strong>dynamic reference points</strong> your whole team can rely on.</p><h2 id="keep-them-alive">Keep Them Alive</h2><p>Treat personas as a <strong>living toolkit</strong>. Schedule a refresh every quarter or after major product changes. Rerun the research pass, regenerate summaries, and archive outdated assumptions. The goal isn’t perfection; it’s keeping them relevant enough to guide decisions.</p><h2 id="bottom-line">Bottom Line</h2><p>Functional personas are faster to build, easier to maintain, and better aligned with real user behavior. By combining AI’s speed with human judgment, you can create personas that don’t just sit in a slide deck; they actively shape better products, clearer interfaces, and smoother experiences.</p><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (Paul Boag) <![CDATA[Creating Elastic And Bounce Effects With Expressive Animator]]> https://smashingmagazine.com/2025/09/creating-elastic-bounce-effects-expressive-animator/ https://smashingmagazine.com/2025/09/creating-elastic-bounce-effects-expressive-animator/ Mon, 15 Sep 2025 10:00:00 GMT <img src="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/creating-elastic-bounce-effects-expressive-animator.jpg" /><h1>Creating Elastic And Bounce Effects With Expressive Animator — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>7 min read</li><li><a href="http://www.smashingmagazine.com/category/svg">SVG</a>, <a href="http://www.smashingmagazine.com/category/animation">Animation</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/tools">Tools</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Elastic and bounce effects have long been among the most desirable but time-consuming techniques in motion design. Expressive Animator streamlines the process, making it possible to produce lively animations in seconds, bypassing the tedious work of manual keyframe editing.</section></p><p>In the world of modern web design, SVG images are used everywhere, from illustrations to icons to background effects, and are universally prized for their crispness and lightweight size. While static SVG images play an important role in web design, most of the time their true potential is unlocked only when they are combined with motion.</p><p>Few things add more life and personality to a website than a well-executed SVG animation. But not all animations have the same impact in terms of digital experience. For example, <strong>elastic and bounce effects</strong> have a unique appeal in motion design because they bring a <strong>sense of realism into movement</strong>, making animations more engaging and memorable.</p><figure><a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/grumpy-egg.gif"><img alt="Grumpy Egg" height="800" src="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/grumpy-egg-800.gif" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/grumpy-egg.gif">Large preview</a>)</figcaption></figure><p>However, anyone who has dived into animating SVGs knows <a href="https://www.smashingmagazine.com/2023/02/putting-gears-motion-animating-cars-with-html-svg/">the technical hurdles involved</a>. Creating a convincing elastic or bounce effect traditionally requires handling complex CSS keyframes or wrestling with JavaScript animation libraries. Even when using an SVG animation editor, it will most likely require you to manually add the keyframes and adjust the easing functions between them, which can become a time-consuming process of trial and error, no matter the level of experience you have.</p><p>This is where Expressive Animator shines. It allows creators to apply elastic and bounce effects <strong>in seconds</strong>, bypassing the tedious work of manual keyframe editing. And the result is always exceptional: animations that feel <em>alive</em>, produced with a fraction of the effort.</p><h2 id="using-expressive-animator-to-create-an-elastic-effect">Using Expressive Animator To Create An Elastic Effect</h2><p>Creating an elastic effect in Expressive Animator is remarkably simple, fast, and intuitive, since the effect is built right into the software as an easing function. This means you only need two keyframes (start and end) to make the effect, and the software will automatically handle the springy motion in between. Even better, the elastic easing can be applied to <strong>any animatable property</strong> (e.g., position, scale, rotation, opacity, morph, etc.), giving you a consistent way to add it to your animations.</p><p>Before we dive into the tutorial, take a look at the video below to see what you will learn to create and the entire process from start to finish.</p><figure><p><iframe allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" frameborder="0" src="https://player.vimeo.com/video/1116135653"></iframe></p></figure><p>First things first, let’s set the scene. For this, we’ll <a href="https://expressive.app/expressive-animator/docs/v1/projects/create/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">create a new project</a> by pressing <kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>P</kbd> and configuring it in the “Create New Project” dialog that pops up. For frame size, we’ll choose 1080×1080, for a duration of 00:01:30, and we’ll let the frame rate remain unchanged at 60 frames per second (fps).</p><figure><a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/01-create-dialog.png"><img alt="“Create New Project” dialog" decoding="async" fetchpriority="low" height="467" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/01-create-dialog.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/01-create-dialog.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/01-create-dialog.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/01-create-dialog.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/01-create-dialog.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/01-create-dialog.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/01-create-dialog.png">Large preview</a>)</figcaption></figure><p>Once you hit the “Create project” button, you can use the <a href="https://expressive.app/expressive-animator/docs/v1/tools/pen-tool/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">Pen</a> and <a href="https://expressive.app/expressive-animator/docs/v1/tools/ellipse-tool/">Ellipse</a> tools to create the artwork that will be animated, or you can simply copy and paste the artwork below.</p><figure><p data-default-tab="result" data-height="600" data-slug-hash="pvjmwxv" data-theme-id="light" data-user="smashingmag">See the Pen [Effects With Expressive Animator - Artwork for Animation](https://codepen.io/smashingmag/pen/pvjmwxv).</p><figcaption>See the Pen <a href="https://codepen.io/smashingmag/pen/pvjmwxv">Effects With Expressive Animator - Artwork for Animation</a>.</figcaption></figure><p>Now that everything has been set up, let’s create the animation. Make sure that snapping and auto-record are enabled, then move the playhead to 01:00f. By <a href="https://expressive.app/expressive-animator/docs/v1/canvas/snapping/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">enabling snapping</a>, you will be able to perfectly align nodes and graphic objects on the canvas. On the other hand, as the name suggests, auto-record tracks every change you make to the artwork and adds the appropriate keyframes on the timeline.</p><figure><a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/02-prepare-scene.png"><img alt="Screenshot with snapping and auto-record are enabled and the playhead moved to 01:00f" decoding="async" fetchpriority="low" height="467" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/02-prepare-scene.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/02-prepare-scene.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/02-prepare-scene.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/02-prepare-scene.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/02-prepare-scene.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/02-prepare-scene.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/02-prepare-scene.png">Large preview</a>)</figcaption></figure><p>Press the <kbd>A</kbd> key on your keyboard to switch to the <a href="https://expressive.app/expressive-animator/docs/v1/tools/node-tool/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">Node tool</a>, then select the String object and move its handle to the center-right point of the artboard. Don’t worry about precision, as the snapping will do all the heavy lifting for you. This will bend the shape and add keyframes for the Morph animator.</p><figure><a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/03-string.png"><img alt="Screenshot with the String object and its handle moved to the center-right point of the artboard" decoding="async" fetchpriority="low" height="467" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/03-string.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/03-string.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/03-string.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/03-string.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/03-string.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/03-string.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/03-string.png">Large preview</a>)</figcaption></figure><p>Next, press the <kbd>V</kbd> key on your keyboard to switch to the <a href="https://expressive.app/expressive-animator/docs/v1/tools/selection-tool/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">Selection tool</a>. With this tool enabled, select the Ball, move it to the right, and place it in the middle of the string. Once again, snapping will do all the hard work, allowing you to position the ball exactly where you want to, while auto-recording automatically adds the appropriate keyframes.</p><figure><a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/04-ball.png"><img alt="Screenshot with the Ball selected and moved to the middle of the string" decoding="async" fetchpriority="low" height="467" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/04-ball.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/04-ball.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/04-ball.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/04-ball.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/04-ball.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/04-ball.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/04-ball.png">Large preview</a>)</figcaption></figure><p>You can now replay the animation and disable auto-recording by clicking on the Auto-Record button again.</p><p>As you can see when replaying, the direction in which the String and Ball objects are moving is wrong. Fortunately, we can fix this extremely easily just by reversing the keyframes. To do this, select the keyframes in the timeline and right-click to open the context menu and choose Reverse. This will reverse the keyframes, and if you replay the animation, you will see that the direction is now correct.</p><figure><a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/05-reverse.png"><img alt="Screenshot with the context menu where you can choose Reverse" decoding="async" fetchpriority="low" height="467" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/05-reverse.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/05-reverse.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/05-reverse.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/05-reverse.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/05-reverse.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/05-reverse.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/05-reverse.png">Large preview</a>)</figcaption></figure><p>With this out of the way, we can finally add the elastic effect. Select all the keyframes in the timeline and click on the Custom easing button to open a dialog with easing options. From the dialog, choose Elastic and set the oscillations to 4 and the stiffness to 2.5.</p><p>That’s it! Click anywhere outside the easing dialog to close it and replay the animation to see the result.</p><figure><a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/06-effect.png"><img alt="Selected custom easing button that opened a dialog with easing options" decoding="async" fetchpriority="low" height="467" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/06-effect.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/06-effect.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/06-effect.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/06-effect.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/06-effect.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/06-effect.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/06-effect.png">Large preview</a>)</figcaption></figure><p><a href="https://expressive.app/expressive-animator/docs/v1/export/svg/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">The animation can be exported as well.</a> Press <kbd>Cmd</kbd>/<kbd>Ctrl</kbd> + <kbd>E</kbd> on your keyboard to open the export dialog and choose from various export options, ranging from vectorized formats, such as <a href="https://expressive.app/expressive-animator/docs/v1/export/svg/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">SVG</a> and <a href="https://expressive.app/expressive-animator/docs/v1/export/lottie/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">Lottie</a>, to rasterized formats, such as <a href="https://expressive.app/expressive-animator/docs/v1/export/image/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">GIF</a> and <a href="https://expressive.app/expressive-animator/docs/v1/export/video/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">video</a>.</p><p>For this specific animation, we’re going to choose the SVG export format. Expressive Animator allows you to choose between three different types of SVG, depending on the technology used for animation: <a href="https://expressive.app/expressive-animator/docs/v1/export/svg/smil/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">SMIL</a>, <a href="https://expressive.app/expressive-animator/docs/v1/export/svg/css/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">CSS</a>, or <a href="https://expressive.app/expressive-animator/docs/v1/export/svg/js/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">JavaScript</a>.</p><figure><a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/07-export.png"><img alt="Export settings in the Expressive Animator" decoding="async" fetchpriority="low" height="467" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/07-export.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/07-export.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/07-export.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/07-export.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/07-export.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/07-export.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/07-export.png">Large preview</a>)</figcaption></figure><p>Each of these technologies has different strengths and weaknesses, but for this tutorial, we are going to choose SMIL. This is because SMIL-based animations are widely supported, even on Safari browsers, and can be used as background images or embedded in HTML pages using the <code><img></code> tag. In fact, <a href="https://www.smashingmagazine.com/2025/05/smashing-animations-part-3-smil-not-dead/">Andy Clarke recently wrote all about SMIL animations here at Smashing Magazine</a> if you want a full explanation of how it works.</p><p>You can visualize the exported SVG in the following CodePen demo:</p><figure><p data-default-tab="result" data-height="600" data-slug-hash="GgpaEyG" data-theme-id="light" data-user="smashingmag">See the Pen [Expressive Animator - Exported SVG](https://codepen.io/smashingmag/pen/GgpaEyG).</p><figcaption>See the Pen <a href="https://codepen.io/smashingmag/pen/GgpaEyG">Expressive Animator - Exported SVG</a>.</figcaption></figure><h2 id="expressive-animator-for-bounce-and-other-effects">Expressive Animator For Bounce And Other Effects</h2><p>Adding a bounce effect to an animation is very similar to the process we just covered for creating an elastic effect, since both are built into Expressive Animator as easing functions. Just like elastic, bounce easing can be applied to any animatable property, giving you quick ways to create realistic motion.</p><p>Beyond these two effects, Expressive Animator also offers other easing options that can shape the personality of your animation, like Back, Steps, Sinc, just to name a few.</p><figure><a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/08-easing-functions.png"><img alt="Easing functions in the Expressive Animator" decoding="async" fetchpriority="low" height="757" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/08-easing-functions.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/08-easing-functions.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/08-easing-functions.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/08-easing-functions.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/08-easing-functions.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/08-easing-functions.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/08-easing-functions.png">Large preview</a>)</figcaption></figure><h2 id="conclusion">Conclusion</h2><p>Elastic and bounce effects have long been among the most desirable but time-consuming techniques in motion design. By integrating them directly into its easing functions, Expressive Animator removes the complexity of manual keyframe manipulation and transforms what used to be a technical challenge into a creative opportunity.</p><p>The best part is that getting started with Expressive Animator comes with zero risk. The software offers a full 7–day <strong>free trial without requiring an account</strong>, so you can download it instantly and begin experimenting with your own designs right away. After the trial ends, you can buy Expressive Animator with a one-time payment, <strong>no subscription required</strong>. This will give you a perpetual license covering both Windows and macOS.</p><p>To help you get started even faster, I’ve prepared some extra resources for you. You’ll find the source files for the animations created in this tutorial, along with a curated list of useful links that will guide you further in exploring Expressive Animator and SVG animation. These materials are meant to give you a solid starting point so you can learn, experiment, and build on your own with confidence.</p><ul><li>Grumpy Egg: The <a download="" href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/grumpy-egg.eaf"><code>.eaf</code></a> source file for the sample animation presented at the beginning of this article.</li><li>Elastic Effect: Another <a download="" href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/elastic-effect.eaf"><code>.eaf</code></a> file, this time for the animation we made in this tutorial.</li><li><a href="https://expressive.app/expressive-animator/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">Get started with Expressive Animator</a></li><li>Expressive Animator <a href="https://expressive.app/expressive-animator/docs/v1/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">Documentation</a></li></ul><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/creating-elastic-bounce-effects-expressive-animator.jpg" /><h1>Creating Elastic And Bounce Effects With Expressive Animator — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>7 min read</li><li><a href="http://www.smashingmagazine.com/category/svg">SVG</a>, <a href="http://www.smashingmagazine.com/category/animation">Animation</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/tools">Tools</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Elastic and bounce effects have long been among the most desirable but time-consuming techniques in motion design. Expressive Animator streamlines the process, making it possible to produce lively animations in seconds, bypassing the tedious work of manual keyframe editing.</section></p><p>In the world of modern web design, SVG images are used everywhere, from illustrations to icons to background effects, and are universally prized for their crispness and lightweight size. While static SVG images play an important role in web design, most of the time their true potential is unlocked only when they are combined with motion.</p><p>Few things add more life and personality to a website than a well-executed SVG animation. But not all animations have the same impact in terms of digital experience. For example, <strong>elastic and bounce effects</strong> have a unique appeal in motion design because they bring a <strong>sense of realism into movement</strong>, making animations more engaging and memorable.</p><figure><a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/grumpy-egg.gif"><img alt="Grumpy Egg" height="800" src="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/grumpy-egg-800.gif" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/grumpy-egg.gif">Large preview</a>)</figcaption></figure><p>However, anyone who has dived into animating SVGs knows <a href="https://www.smashingmagazine.com/2023/02/putting-gears-motion-animating-cars-with-html-svg/">the technical hurdles involved</a>. Creating a convincing elastic or bounce effect traditionally requires handling complex CSS keyframes or wrestling with JavaScript animation libraries. Even when using an SVG animation editor, it will most likely require you to manually add the keyframes and adjust the easing functions between them, which can become a time-consuming process of trial and error, no matter the level of experience you have.</p><p>This is where Expressive Animator shines. It allows creators to apply elastic and bounce effects <strong>in seconds</strong>, bypassing the tedious work of manual keyframe editing. And the result is always exceptional: animations that feel <em>alive</em>, produced with a fraction of the effort.</p><h2 id="using-expressive-animator-to-create-an-elastic-effect">Using Expressive Animator To Create An Elastic Effect</h2><p>Creating an elastic effect in Expressive Animator is remarkably simple, fast, and intuitive, since the effect is built right into the software as an easing function. This means you only need two keyframes (start and end) to make the effect, and the software will automatically handle the springy motion in between. Even better, the elastic easing can be applied to <strong>any animatable property</strong> (e.g., position, scale, rotation, opacity, morph, etc.), giving you a consistent way to add it to your animations.</p><p>Before we dive into the tutorial, take a look at the video below to see what you will learn to create and the entire process from start to finish.</p><figure><p><iframe allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" frameborder="0" src="https://player.vimeo.com/video/1116135653"></iframe></p></figure><p>First things first, let’s set the scene. For this, we’ll <a href="https://expressive.app/expressive-animator/docs/v1/projects/create/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">create a new project</a> by pressing <kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>P</kbd> and configuring it in the “Create New Project” dialog that pops up. For frame size, we’ll choose 1080×1080, for a duration of 00:01:30, and we’ll let the frame rate remain unchanged at 60 frames per second (fps).</p><figure><a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/01-create-dialog.png"><img alt="“Create New Project” dialog" decoding="async" fetchpriority="low" height="467" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/01-create-dialog.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/01-create-dialog.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/01-create-dialog.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/01-create-dialog.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/01-create-dialog.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/01-create-dialog.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/01-create-dialog.png">Large preview</a>)</figcaption></figure><p>Once you hit the “Create project” button, you can use the <a href="https://expressive.app/expressive-animator/docs/v1/tools/pen-tool/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">Pen</a> and <a href="https://expressive.app/expressive-animator/docs/v1/tools/ellipse-tool/">Ellipse</a> tools to create the artwork that will be animated, or you can simply copy and paste the artwork below.</p><figure><p data-default-tab="result" data-height="600" data-slug-hash="pvjmwxv" data-theme-id="light" data-user="smashingmag">See the Pen [Effects With Expressive Animator - Artwork for Animation](https://codepen.io/smashingmag/pen/pvjmwxv).</p><figcaption>See the Pen <a href="https://codepen.io/smashingmag/pen/pvjmwxv">Effects With Expressive Animator - Artwork for Animation</a>.</figcaption></figure><p>Now that everything has been set up, let’s create the animation. Make sure that snapping and auto-record are enabled, then move the playhead to 01:00f. By <a href="https://expressive.app/expressive-animator/docs/v1/canvas/snapping/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">enabling snapping</a>, you will be able to perfectly align nodes and graphic objects on the canvas. On the other hand, as the name suggests, auto-record tracks every change you make to the artwork and adds the appropriate keyframes on the timeline.</p><figure><a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/02-prepare-scene.png"><img alt="Screenshot with snapping and auto-record are enabled and the playhead moved to 01:00f" decoding="async" fetchpriority="low" height="467" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/02-prepare-scene.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/02-prepare-scene.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/02-prepare-scene.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/02-prepare-scene.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/02-prepare-scene.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/02-prepare-scene.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/02-prepare-scene.png">Large preview</a>)</figcaption></figure><p>Press the <kbd>A</kbd> key on your keyboard to switch to the <a href="https://expressive.app/expressive-animator/docs/v1/tools/node-tool/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">Node tool</a>, then select the String object and move its handle to the center-right point of the artboard. Don’t worry about precision, as the snapping will do all the heavy lifting for you. This will bend the shape and add keyframes for the Morph animator.</p><figure><a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/03-string.png"><img alt="Screenshot with the String object and its handle moved to the center-right point of the artboard" decoding="async" fetchpriority="low" height="467" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/03-string.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/03-string.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/03-string.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/03-string.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/03-string.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/03-string.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/03-string.png">Large preview</a>)</figcaption></figure><p>Next, press the <kbd>V</kbd> key on your keyboard to switch to the <a href="https://expressive.app/expressive-animator/docs/v1/tools/selection-tool/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">Selection tool</a>. With this tool enabled, select the Ball, move it to the right, and place it in the middle of the string. Once again, snapping will do all the hard work, allowing you to position the ball exactly where you want to, while auto-recording automatically adds the appropriate keyframes.</p><figure><a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/04-ball.png"><img alt="Screenshot with the Ball selected and moved to the middle of the string" decoding="async" fetchpriority="low" height="467" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/04-ball.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/04-ball.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/04-ball.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/04-ball.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/04-ball.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/04-ball.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/04-ball.png">Large preview</a>)</figcaption></figure><p>You can now replay the animation and disable auto-recording by clicking on the Auto-Record button again.</p><p>As you can see when replaying, the direction in which the String and Ball objects are moving is wrong. Fortunately, we can fix this extremely easily just by reversing the keyframes. To do this, select the keyframes in the timeline and right-click to open the context menu and choose Reverse. This will reverse the keyframes, and if you replay the animation, you will see that the direction is now correct.</p><figure><a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/05-reverse.png"><img alt="Screenshot with the context menu where you can choose Reverse" decoding="async" fetchpriority="low" height="467" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/05-reverse.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/05-reverse.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/05-reverse.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/05-reverse.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/05-reverse.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/05-reverse.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/05-reverse.png">Large preview</a>)</figcaption></figure><p>With this out of the way, we can finally add the elastic effect. Select all the keyframes in the timeline and click on the Custom easing button to open a dialog with easing options. From the dialog, choose Elastic and set the oscillations to 4 and the stiffness to 2.5.</p><p>That’s it! Click anywhere outside the easing dialog to close it and replay the animation to see the result.</p><figure><a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/06-effect.png"><img alt="Selected custom easing button that opened a dialog with easing options" decoding="async" fetchpriority="low" height="467" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/06-effect.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/06-effect.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/06-effect.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/06-effect.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/06-effect.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/06-effect.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/06-effect.png">Large preview</a>)</figcaption></figure><p><a href="https://expressive.app/expressive-animator/docs/v1/export/svg/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">The animation can be exported as well.</a> Press <kbd>Cmd</kbd>/<kbd>Ctrl</kbd> + <kbd>E</kbd> on your keyboard to open the export dialog and choose from various export options, ranging from vectorized formats, such as <a href="https://expressive.app/expressive-animator/docs/v1/export/svg/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">SVG</a> and <a href="https://expressive.app/expressive-animator/docs/v1/export/lottie/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">Lottie</a>, to rasterized formats, such as <a href="https://expressive.app/expressive-animator/docs/v1/export/image/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">GIF</a> and <a href="https://expressive.app/expressive-animator/docs/v1/export/video/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">video</a>.</p><p>For this specific animation, we’re going to choose the SVG export format. Expressive Animator allows you to choose between three different types of SVG, depending on the technology used for animation: <a href="https://expressive.app/expressive-animator/docs/v1/export/svg/smil/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">SMIL</a>, <a href="https://expressive.app/expressive-animator/docs/v1/export/svg/css/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">CSS</a>, or <a href="https://expressive.app/expressive-animator/docs/v1/export/svg/js/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">JavaScript</a>.</p><figure><a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/07-export.png"><img alt="Export settings in the Expressive Animator" decoding="async" fetchpriority="low" height="467" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/07-export.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/07-export.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/07-export.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/07-export.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/07-export.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/07-export.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/07-export.png">Large preview</a>)</figcaption></figure><p>Each of these technologies has different strengths and weaknesses, but for this tutorial, we are going to choose SMIL. This is because SMIL-based animations are widely supported, even on Safari browsers, and can be used as background images or embedded in HTML pages using the <code><img></code> tag. In fact, <a href="https://www.smashingmagazine.com/2025/05/smashing-animations-part-3-smil-not-dead/">Andy Clarke recently wrote all about SMIL animations here at Smashing Magazine</a> if you want a full explanation of how it works.</p><p>You can visualize the exported SVG in the following CodePen demo:</p><figure><p data-default-tab="result" data-height="600" data-slug-hash="GgpaEyG" data-theme-id="light" data-user="smashingmag">See the Pen [Expressive Animator - Exported SVG](https://codepen.io/smashingmag/pen/GgpaEyG).</p><figcaption>See the Pen <a href="https://codepen.io/smashingmag/pen/GgpaEyG">Expressive Animator - Exported SVG</a>.</figcaption></figure><h2 id="expressive-animator-for-bounce-and-other-effects">Expressive Animator For Bounce And Other Effects</h2><p>Adding a bounce effect to an animation is very similar to the process we just covered for creating an elastic effect, since both are built into Expressive Animator as easing functions. Just like elastic, bounce easing can be applied to any animatable property, giving you quick ways to create realistic motion.</p><p>Beyond these two effects, Expressive Animator also offers other easing options that can shape the personality of your animation, like Back, Steps, Sinc, just to name a few.</p><figure><a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/08-easing-functions.png"><img alt="Easing functions in the Expressive Animator" decoding="async" fetchpriority="low" height="757" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/08-easing-functions.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/08-easing-functions.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/08-easing-functions.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/08-easing-functions.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/08-easing-functions.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/08-easing-functions.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/08-easing-functions.png">Large preview</a>)</figcaption></figure><h2 id="conclusion">Conclusion</h2><p>Elastic and bounce effects have long been among the most desirable but time-consuming techniques in motion design. By integrating them directly into its easing functions, Expressive Animator removes the complexity of manual keyframe manipulation and transforms what used to be a technical challenge into a creative opportunity.</p><p>The best part is that getting started with Expressive Animator comes with zero risk. The software offers a full 7–day <strong>free trial without requiring an account</strong>, so you can download it instantly and begin experimenting with your own designs right away. After the trial ends, you can buy Expressive Animator with a one-time payment, <strong>no subscription required</strong>. This will give you a perpetual license covering both Windows and macOS.</p><p>To help you get started even faster, I’ve prepared some extra resources for you. You’ll find the source files for the animations created in this tutorial, along with a curated list of useful links that will guide you further in exploring Expressive Animator and SVG animation. These materials are meant to give you a solid starting point so you can learn, experiment, and build on your own with confidence.</p><ul><li>Grumpy Egg: The <a download="" href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/grumpy-egg.eaf"><code>.eaf</code></a> source file for the sample animation presented at the beginning of this article.</li><li>Elastic Effect: Another <a download="" href="https://files.smashing.media/articles/creating-elastic-bounce-effects-expressive-animator/elastic-effect.eaf"><code>.eaf</code></a> file, this time for the animation we made in this tutorial.</li><li><a href="https://expressive.app/expressive-animator/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">Get started with Expressive Animator</a></li><li>Expressive Animator <a href="https://expressive.app/expressive-animator/docs/v1/?utm_source=smashingmagazine&amp;utm_medium=blog&amp;utm_campaign=elastic_effect">Documentation</a></li></ul><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (Marius Sarca) <![CDATA[From Data To Decisions: UX Strategies For Real-Time Dashboards]]> https://smashingmagazine.com/2025/09/ux-strategies-real-time-dashboards/ https://smashingmagazine.com/2025/09/ux-strategies-real-time-dashboards/ Fri, 12 Sep 2025 15:00:00 GMT <img src="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/ux-strategies-real-time-dashboards.jpg" /><h1>UX Strategies For Real-Time Dashboards — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>18 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/data-visualization">Data Visualization</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/workflow">Workflow</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Real-time dashboards are decision assistants, not passive displays. In environments like fleet management, healthcare, and operations, the cost of a delay or misstep is high. Karan Rawal explores strategic UX patterns that shorten time-to-decision, reduce cognitive overload, and make live systems trustworthy.</section></p><p>I once worked with a fleet operations team that monitored dozens of vehicles in multiple cities. Their dashboard showed fuel consumption, live GPS locations, and real-time driver updates. Yet the team struggled to see what needed urgent attention. The problem was not a lack of data but a lack of clear indicators to support decision-making. There were no priorities, alerts, or context to highlight what mattered most at any moment.</p><p><strong>Real-time dashboards</strong> are now critical decision-making tools in industries like logistics, manufacturing, finance, and healthcare. However, many of them fail to help users make timely and confident decisions, even when they show live data.</p><blockquote>Designing for real-time use is very different from designing static dashboards. The challenge is not only presenting metrics but enabling decisions under pressure. Real-time users face limited time and a high cognitive load. They need clarity on actions, not just access to raw data.</blockquote><p>This requires interface elements that support quick scanning, pattern recognition, and guided attention. Layout hierarchy, alert colors, grouping, and motion cues all help, but they must be driven by a deeper strategy: understanding what the user must decide in <em>that</em> moment.</p><p>This article explores <strong>practical UX strategies</strong> for real-time dashboards that enable real decisions. Instead of focusing only on visual best practices, it looks at how user intent, personalization, and cognitive flow can turn raw data into meaningful, timely insights.</p><h2 id="designing-for-real-time-comprehension-helping-users-stay-focused-under-pressure">Designing for Real-Time Comprehension: Helping Users Stay Focused Under Pressure</h2><p>A GPS app not only shows users their location but also helps them decide where to go next. In the same way, a real-time dashboard should go beyond displaying the latest data. Its purpose is to help users quickly understand complex information and make informed decisions, especially in fast-paced environments with short attention spans.</p><h3 id="how-users-process-real-time-updates">How Users Process Real-Time Updates</h3><p>Humans have limited cognitive capacity, so they can only process a small amount of data at once. Without <strong>proper context</strong> or <strong>visual cues</strong>, rapidly updating dashboards can overwhelm users and shift attention away from key information.</p><p>To address this, I use the following approaches:</p><ul><li><strong>Delta Indicators and Trend Sparklines</strong><br></br><a href="https://in.tradingview.com/scripts/delta/">Delta indicators</a> show value changes at a glance, while sparklines are small line charts that reveal trends over time in a compact space. For example, a sales dashboard might show a green upward arrow next to revenue to indicate growth, along with a sparkline displaying sales trends over the past week.</li><li><strong>Subtle Micro-Animations</strong><br></br><a href="https://www.youtube.com/watch?v=MZjV27K2KR4">Small animations</a> highlight changes without distracting users. Research in cognitive psychology shows that such animations effectively draw attention, helping users notice updates while staying focused. For instance, a soft pulse around a changing metric can signal activity without overwhelming the viewer.</li><li><strong>Mini-History Views</strong><br></br>Showing a short history of recent changes reduces reliance on memory. For example, a dashboard might let users scroll back a few minutes to review updates, supporting better understanding and verification of data trends.<br></br></li></ul><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h3 id="common-challenges-in-real-time-dashboards">Common Challenges In Real-Time Dashboards</h3><blockquote>Many live dashboards fail when treated as static reports instead of dynamic tools for quick decision-making.</blockquote><p>In my early projects, I made this mistake, resulting in cluttered layouts, distractions, and frustrated users.</p><p>Typical errors include the following:</p><ul><li><strong>Overcrowded Interfaces</strong>: Presenting too many metrics competes for users’ attention, making it hard to focus.</li><li><strong>Flat Visual Hierarchy</strong>: Without clear emphasis on critical data, users might focus on less important information.</li><li><strong>No Record of Changes</strong>: When numbers update instantly with no explanation, users can feel lost or confused.</li><li><strong>Excessive Refresh Rates</strong>: Not all data needs constant updates. Updating too frequently can create unnecessary motion and cognitive strain.</li></ul><figure><a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/bad-vs-good-dashboard-ux.png"><img alt="Side-by-side dashboards labeled Bad UX and Good UX. The bad UX dashboard is cluttered with multiple pie charts and bar graphs, while the good UX dashboard uses a clear hierarchy with summary cards, line charts, and simplified visuals for easier data interpretation." decoding="async" fetchpriority="low" height="467" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/bad-vs-good-dashboard-ux.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/bad-vs-good-dashboard-ux.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/bad-vs-good-dashboard-ux.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/bad-vs-good-dashboard-ux.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/bad-vs-good-dashboard-ux.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/bad-vs-good-dashboard-ux.png 2000w" width="800"></img></a><figcaption>Comparison of bad vs. good UX in dashboards, showing how clear hierarchy and visualization improve data understanding. (Image source: <a href="https://www.devoteam.com/expert-view/make-data-make-sense-why-ux-in-dashboards-matters/">devoteam</a>) (<a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/bad-vs-good-dashboard-ux.png">Large preview</a>)</figcaption></figure><h3 id="managing-stress-and-cognitive-overload">Managing Stress And Cognitive Overload</h3><p>Under stress, users depend on intuition and focus only on immediately relevant information. If a dashboard updates too quickly or shows conflicting alerts, users may delay actions or make mistakes. It is important to:</p><ul><li><strong>Prioritize</strong> the most important data first to avoid overwhelming the user.</li><li>Offer <strong>snapshot or pause options</strong> so users can take time to process information.</li><li>Use <strong>clear indicators</strong> to show if an action is required or if everything is operating normally.</li></ul><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aIn%20real-time%20environments,%20the%20best%20dashboards%20balance%20speed%20with%20calmness%20and%20clarity.%20They%20are%20not%20just%20data%20displays%20but%20tools%20that%20promote%20live%20thinking%20and%20better%20decisions.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fux-strategies-real-time-dashboards%2f">In real-time environments, the best dashboards balance speed with calmness and clarity. They are not just data displays but tools that promote live thinking and better decisions.</a></p></blockquote><h3 id="enabling-personalization-for-effective-data-consumption">Enabling Personalization For Effective Data Consumption</h3><p>Many analytics tools let users build custom dashboards, but these design principles guide layouts that support decision-making. Personalization options such as custom metric selection, alert preferences, and update pacing help manage cognitive load and improve data interpretation.</p><table><thead><tr><th>Cognitive Challenge</th><th>UX Risk in Real-Time Dashboards</th><th>Design Strategy to Mitigate</th></tr></thead><tbody><tr><td>Users can’t track rapid changes</td><td>Confusion, missed updates, second-guessing</td><td>Use delta indicators, change animations, and trend sparklines</td></tr><tr><td>Limited working memory</td><td>Overload from too many metrics at once</td><td>Prioritize key KPIs, apply progressive disclosure</td></tr><tr><td>Visual clutter under stress</td><td>Tunnel vision or misprioritized focus</td><td>Apply a clear visual hierarchy, minimize non-critical elements</td></tr><tr><td>Unclear triggers or alerts</td><td>Decision delays, incorrect responses</td><td>Use thresholds, binary status indicators, and plain language</td></tr><tr><td>Lack of context/history</td><td>Misinterpretation of sudden shifts</td><td>Provide micro-history, snapshot freeze, or hover reveal</td></tr></tbody></table><p><em>Common Cognitive Challenges in Real-Time Dashboards and UX Strategies to Overcome Them.</em></p><h2 id="designing-for-focus-using-layout-color-and-animation-to-drive-real-time-decisions">Designing For Focus: Using Layout, Color, And Animation To Drive Real-Time Decisions</h2><p>Layout, color, and animation do more than improve appearance. They help users interpret live data quickly and make decisions under time pressure. Since users respond to rapidly changing information, these elements must reduce cognitive load and highlight key insights immediately.</p><ul><li><strong>Creating a Visual Hierarchy to Guide Attention.</strong><br></br>A clear hierarchy directs users’ eyes to key metrics. Arrange elements so the most important data stands out. For example, place critical figures like sales volume or system health in the upper left corner to match common scanning patterns. Limit visible elements to about five to prevent overload and ease processing—group related data into cards to improve scannability and help users focus without distraction.</li><li><strong>Using Color Purposefully to Convey Meaning.</strong><br></br>Color communicates meaning in data visualization. Red or orange indicates critical alerts or negative trends, signaling urgency. Blue and green represent positive or stable states, offering reassurance. Neutral tones like gray support background data and make key colors stand out. Ensure accessibility with strong contrast and pair colors with icons or labels. For example, bright red can highlight outages while muted gray marks historical logs, keeping attention on urgent issues.</li><li><strong>Supporting Comprehension with Subtle Animation.</strong><br></br>Animation should clarify, not distract. Smooth transitions of 200 to 400 milliseconds communicate changes effectively. For instance, upward motion in a line chart reinforces growth. Hover effects and quick animations provide feedback and improve interaction. Thoughtful motion makes changes noticeable while maintaining focus.</li></ul><figure><a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/car-rental-dashboard-analytics.png"><img alt="An example of a car rental analytics dashboard that uses hierarchy, color, and charts to highlight key metrics like customer growth, satisfaction trends, and acquisition costs, enabling faster decision-making." decoding="async" fetchpriority="low" height="545" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/car-rental-dashboard-analytics.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/car-rental-dashboard-analytics.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/car-rental-dashboard-analytics.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/car-rental-dashboard-analytics.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/car-rental-dashboard-analytics.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/car-rental-dashboard-analytics.png 2000w" width="800"></img></a><figcaption>Car rental dashboard that uses hierarchy, color, and charts to highlight key metrics and trends. (Image credit: <a href="https://www.aqedigital.com/services/ai-ml-solutions-car-rental/">Car Rental Solution</a> by AQe Digital) (<a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/car-rental-dashboard-analytics.png">Large preview</a>)</figcaption></figure><p>Layout, color, and animation create an experience that enables fast, accurate interpretation of live data. Real-time dashboards support continuous monitoring and decision-making by reducing mental effort and <strong>highlighting anomalies or trends</strong>. Personalization allows users to tailor dashboards to their roles, improving relevance and efficiency. For example, operations managers may focus on system health metrics while sales directors prioritize revenue KPIs. This adaptability makes dashboards dynamic, strategic tools.</p><table><thead><tr><th>Element</th><th>Placement &amp; Visual Weight</th><th>Purpose &amp; Suggested Colors</th><th>Animation Use Case &amp; Effect</th></tr></thead><tbody><tr><td><strong>Primary KPIs</strong></td><td>Center or top-left; bold, large font</td><td>Highlight critical metrics; typically stable states</td><td>Value updates: smooth increase (200–400 ms)</td></tr><tr><td><strong>Controls</strong></td><td>Top or left panel; light, minimal visual weight</td><td>Provide navigation/filtering; neutral color schemes</td><td>User actions: subtle feedback (100–150 ms)</td></tr><tr><td><strong>Charts</strong></td><td>Middle or right; medium emphasis</td><td>Show trends and comparisons; use blue/green for positives, grey for neutral</td><td>Chart trends: trail or fade (300–600 ms)</td></tr><tr><td><strong>Alerts</strong></td><td>Edge of dashboard or floating; high contrast (bold)</td><td>Signal critical issues; red/orange for alerts, yellow/amber for warnings</td><td>Quick animations for appearance; highlight changes</td></tr></tbody></table><p><em>Design Elements, Placement, Color, and Motion Strategies for Effective Real-Time Dashboards.</em></p><h2 id="clarity-in-motion-designing-dashboards-that-make-change-understandable">Clarity In Motion: Designing Dashboards That Make Change Understandable</h2><p>If users cannot interpret changes quickly, the dashboard fails regardless of its visual design. Over time, I have developed methods that reduce confusion and make change feel intuitive rather than overwhelming.</p><p>One of the most effective tools I use is the <a href="https://en.wikipedia.org/wiki/Sparkline">sparkline</a>, a compact line chart that shows a trend over time and is typically placed next to a key performance indicator. Unlike full charts, sparklines omit axes and labels. Their simplicity makes them powerful, since they instantly show whether a metric is trending up, down, or steady. For example, placing a sparkline next to monthly revenue immediately reveals if performance is improving or declining, even before the viewer interprets the number.</p><p>When using sparklines effectively, follow these principles:</p><ul><li>Pair sparklines with metrics such as revenue, churn rate, or user activity so users can see both the value and its trajectory at a glance.</li><li>Simplify by removing clutter like axis lines or legends unless they add real value.</li><li>Highlight the latest data point with a dot or accent color since current performance often matters more than historical context.</li><li>Limit the time span. Too many data points compress the sparkline and hurt readability. A focused window, such as the last 7 or 30 days, keeps the trend clear.</li><li>Use sparklines in comparative tables. When placed in rows (for example, across product lines or regions), they reveal anomalies or emerging patterns that static numbers may hide.</li></ul><figure><a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-performance-gif.gif"><img alt="A GIF of a dynamic dashboard showing profit and loss waterfall, performance variance vs budget and last year, profit trend lines, and expense category breakdown for hospitality operations." height="450" src="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-performance-gif.gif" width="800"></img></a><figcaption>Interactive P&amp;L Performance Dashboard with Forecast and Variance Tracking. (<a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-performance-gif.gif">Large preview</a>)</figcaption></figure><p>I combine sparklines with directional indicators like arrows and percentage deltas to support quick interpretation.</p><p>For example, pairing “▲ +3.2%” with a rising sparkline shows both the direction and scale of change. I do not rely only on color to convey meaning.</p><p>Since <a href="https://www.colourblindawareness.org/colour-blindness/">1 in 12 men</a> is color-blind, using red and green alone can exclude some users. To ensure accessibility, I add shapes and icons alongside color cues.</p><p>Micro-animations provide subtle but effective signals. This counters <a href="https://www.nngroup.com/articles/change-blindness">change blindness</a> — our tendency to miss non-salient changes.</p><ul><li>When numbers update, I use fade-ins or count-up transitions to indicate change without distraction.</li><li>If a list reorders, such as when top-performing teams shift positions, a smooth slide animation under 300 milliseconds helps users maintain spatial memory. These animations reduce cognitive friction and prevent disorientation.</li></ul><p>Layout is critical for clarifying change:</p><ul><li>I use <strong>modular cards</strong> with consistent spacing, alignment, and hierarchy to highlight key metrics.</li><li>Cards are arranged in a <strong>sortable grid</strong>, allowing filtering by severity, recency, or relevance.</li><li><strong>Collapsible sections</strong> manage dense information while keeping important data visible for quick scanning and deeper exploration.</li></ul><p>For instance, in a logistics dashboard, a card labeled “On-Time Deliveries” may display a weekly sparkline. If performance dips, the line flattens or turns slightly red, a downward arrow appears with a −1.8% delta, and the updated number fades in. This gives instant clarity without requiring users to open a detailed chart.</p><p>All these design choices support fast, informed decision-making. In high-velocity environments like product analytics, logistics, or financial operations, dashboards must do more than present data. They must <strong>reduce ambiguity</strong> and help teams quickly detect change, understand its impact, and take action.</p><h2 id="making-reliability-visible-designing-for-trust-in-real-time-data-interfaces">Making Reliability Visible: Designing for Trust In Real-Time Data Interfaces</h2><p>In real-time data environments, reliability is not just a technical feature. It is the foundation of user trust. Dashboards are used in high-stakes, fast-moving contexts where decisions depend on timely, accurate data. Yet these systems often face less-than-ideal conditions such as unreliable networks, API delays, and incomplete datasets. Designing for these realities is not just damage control. It is essential for making data experiences usable and trustworthy.</p><p>When data lags or fails to load, it can mislead users in serious ways:</p><ul><li>A dip in a trendline may look like a market decline when it is only a delay in the stream.</li><li>Missing categories in a bar chart, if not clearly signaled, can lead to flawed decisions.</li></ul><p>To mitigate this:</p><ul><li>Every data point should be paired with its condition.</li><li>Interfaces must show not only what the data says but also how current or complete it is.</li></ul><p>One effective strategy is replacing traditional spinners with <a href="https://www.nngroup.com/articles/skeleton-screens/">skeleton UIs</a>. These are greyed-out, animated placeholders that suggest the structure of incoming data. They set expectations, reduce anxiety, and show that the system is actively working. For example, in a financial dashboard, users might see the outline of a candlestick chart filling in as new prices arrive. This signals that data is being refreshed, not stalled.</p><h3 id="handling-data-unavailability">Handling Data Unavailability</h3><p>When data is unavailable, I show <strong>cached snapshots</strong> from the most recent successful load, labeled with timestamps such as “Data as of 10:42 AM.” This keeps users aware of what they are viewing.</p><p>In operational dashboards such as logistics or monitoring systems, this approach lets users act confidently even when real-time updates are temporarily out of sync.</p><h3 id="managing-connectivity-failures">Managing Connectivity Failures</h3><p>To handle connectivity failures, I use <strong>auto-retry mechanisms with exponential backoff</strong>, giving the system several chances to recover quietly before notifying the user.</p><p>If retries fail, I maintain transparency with clear banners such as “Offline… Reconnecting…” In one product, this approach prevented users from reloading entire dashboards unnecessarily, especially in areas with unreliable Wi-Fi.</p><h3 id="ensuring-reliability-with-accessibility">Ensuring Reliability with Accessibility</h3><p>Reliability strongly connects with accessibility:</p><ul><li>Real-time interfaces must announce updates without disrupting user focus, beyond just screen reader compatibility.</li><li><a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Guides/Live_regions">ARIA live regions</a> quietly narrate significant changes in the background, giving screen reader users timely updates without confusion.</li><li>All controls remain keyboard-accessible.</li><li>Animations follow <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion">motion-reduction preferences</a> to support users with vestibular sensitivities.</li></ul><h3 id="data-freshness-indicator">Data Freshness Indicator</h3><p>A compact but powerful pattern I often implement is the Data Freshness Indicator, a small widget that:</p><ul><li>Shows sync status,</li><li>Displays the last updated time,</li><li>Includes a manual refresh button.</li></ul><p>This improves <strong>transparency</strong> and reinforces <strong>user control</strong>. Since different users interpret these cues differently, advanced systems allow personalization. For example:</p><ul><li>Analysts may prefer detailed logs of update attempts.</li><li>Business users might see a simple status such as “Live”, “Stale”, or “Paused”.</li></ul><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aReliability%20in%20data%20visualization%20is%20not%20about%20promising%20perfection.%20It%20is%20about%20creating%20a%20resilient,%20informative%20experience%20that%20supports%20human%20judgment%20by%20revealing%20the%20true%20state%20of%20the%20system.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fux-strategies-real-time-dashboards%2f">Reliability in data visualization is not about promising perfection. It is about creating a resilient, informative experience that supports human judgment by revealing the true state of the system.</a></p></blockquote><p>When users understand what the dashboard knows, what it does not, and what actions it is taking, they are more likely to trust the data and make smarter decisions.</p><h2 id="real-world-case-study">Real-World Case Study</h2><p>In my work across logistics, hospitality, and healthcare, the challenge has always been to distill complexity into clarity. A well-designed dashboard is more than functional; it serves as a trusted companion in decision-making, embedding clarity, speed, and confidence from the start.</p><h3 id="1-fleet-management-dashboard">1. Fleet Management Dashboard</h3><p>A client in the car rental industry struggled with fragmented operational data. Critical details like vehicle locations, fuel usage, maintenance schedules, and downtime alerts were scattered across static reports, spreadsheets, and disconnected systems. Fleet operators had to manually cross-reference data sources, even for basic dispatch tasks, which caused missed warnings, inefficient routing, and delays in response.</p><p>We solved these issues by redesigning the dashboard strategically, focusing on both layout improvements and how users interpret and act on information.</p><p><strong>Strategic Design Improvements and Outcomes:</strong></p><ul><li><strong>Instant visibility of KPIs</strong><br></br>High-contrast cards at the top of the dashboard made key performance indicators instantly visible.<br></br><em>Example: Fuel consumption anomalies that previously went unnoticed for days were flagged within hours, enabling quick corrective action.</em></li><li><strong>Clear trend and pattern visualization</strong><br></br>Booking forecasts, utilization graphs, and city-by-city comparisons highlighted performance trends.<br></br><em>Example: A weekday-weekend booking chart helped a regional manager spot underperformance in one city and plan targeted vehicle redistribution.</em></li><li><strong>Unified operational snapshot</strong><br></br>Cost, downtime, and service schedules were grouped into one view.<br></br><em>Result: The operations team could assess fleet health in under five minutes each morning instead of using multiple tools.</em></li><li><strong>Predictive context for planning</strong><br></br>Visual cues showed peak usage periods and historical demand curves.<br></br><em>Result: Dispatchers prepared for forecasted spikes, reducing customer wait times and improving resource availability.</em></li><li><strong>Live map with real-time status</strong><br></br>A color-coded map displays vehicle status: green for active, red for urgent attention, gray for idle.<br></br><em>Result: Supervisors quickly identified inactive or delayed vehicles and rerouted resources as needed.</em></li><li><strong>Role-based personalization</strong><br></br>Personalization options were built in, allowing each role to customize dashboard views.<br></br><em>Example: Fleet managers prioritized financial KPIs, while technicians filtered for maintenance alerts and overdue service reports.</em></li></ul><figure><a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/auto-leasing-analytics.png"><img alt="A data analytics dashboard for the auto leasing industry displaying revenue per booking, cost recovery, operational efficiency, and top revenue-generating locations across the UAE regions." decoding="async" fetchpriority="low" height="555" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/auto-leasing-analytics.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/auto-leasing-analytics.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/auto-leasing-analytics.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/auto-leasing-analytics.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/auto-leasing-analytics.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/auto-leasing-analytics.png 2000w" width="800"></img></a><figcaption>Auto Leasing Revenue and Efficiency Dashboard. (Image source: <a href="https://www.aqedigital.com/automobile-ai-solution">Fleet management Solution by AQe Digital</a>) (<a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/auto-leasing-analytics.png">Large preview</a>)</figcaption></figure><p><strong>Strategic Impact:</strong> The dashboard redesign was not only about improving visuals. It changed how teams interacted with data. Operators no longer needed to search for insights, as the system presented them in line with tasks and decision-making. The dashboard became a shared reference for teams with different goals, enabling real-time problem solving, fewer manual checks, and stronger alignment across roles. Every element was designed to build both understanding and confidence in action.</p><h3 id="2-hospitality-revenue-dashboard">2. Hospitality Revenue Dashboard</h3><p>One of our clients, a hospitality group with 11 hotels in the UAE, faced a growing strategic gap. They had data from multiple departments, including bookings, events, food and beverage, and profit and loss, but it was spread across disconnected dashboards.</p><p><strong>Strategic Design Improvements and Outcomes:</strong></p><ul><li><strong>All revenue streams (rooms, restaurants, bars, and profit and loss) were consolidated into a single filterable dashboard.</strong><br></br>Example: A revenue manager could filter by property to see if a drop in restaurant revenue was tied to lower occupancy or was an isolated issue. The structure supported daily operations, weekly reviews, and quarterly planning.</li><li><strong>Disconnected charts and metrics were replaced with a unified visual narrative showing how revenue streams interacted.</strong><br></br>Example: The dashboard revealed how event bookings influenced bar sales or staffing. This shifted teams from passive data consumption to active interpretation.</li><li><strong>AI modules for demand forecasting, spend prediction, and pricing recommendations were embedded in the dashboard.</strong><br></br>Result: Managers could test rate changes with interactive sliders and instantly view effects on occupancy, revenue per available room, and food and beverage income. This enabled proactive scenario planning.</li><li><strong>Compact, color-coded sparklines were placed next to each key metric to show short- and long-term trends.</strong><br></br>Result: These visuals made it easy to spot seasonal shifts or channel-specific patterns without switching views or opening separate reports.</li><li><strong>Predictive overlays such as forecast bands and seasonality markers were added to performance graphs.</strong><br></br>Example: If occupancy rose but lagged behind seasonal forecasts, the dashboard surfaced the gap, prompting early action such as promotions or issue checks.</li></ul><figure><a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-revenue-dashboard.png"><img alt="A digital dashboard showing hotel metrics including occupancy, ADR, RevPAR, F&amp;B revenue, and payroll, filtered by date range and department, with performance comparisons to previous periods." decoding="async" fetchpriority="low" height="411" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-revenue-dashboard.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-revenue-dashboard.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-revenue-dashboard.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-revenue-dashboard.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-revenue-dashboard.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-revenue-dashboard.png 2000w" width="800"></img></a><figcaption>P&amp;L Variance and Revenue Intelligence Dashboard for Hotel Performance Review. (Image source: <a href="https://www.aqedigital.com/hospitality-ai-solutions">Hospitality AI Solution by AQe Digital</a>) (<a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-revenue-dashboard.png">Large preview</a>)</figcaption></figure><p><strong>Strategic Impact:</strong> By aligning the dashboard structure with real pricing and revenue strategies, the client shifted from static reporting to forward-looking decision-making. This was not a cosmetic interface update. It was a complete rethinking of how data could support business goals. The result enabled every team, from finance to operations, to interpret data based on their specific roles and responsibilities.</p><h3 id="3-healthcare-interoperability-dashboard">3. Healthcare Interoperability Dashboard</h3><p>In healthcare, timely and accurate access to patient information is essential. A multi-specialist hospital client struggled with fragmented data. Doctors had to consult separate platforms such as electronic health records, lab results, and pharmacy systems to understand a patient’s condition. This fragmented process slowed decision-making and increased risks to patient safety.</p><p><strong>Strategic Design Improvements and Outcomes:</strong></p><ul><li><strong>Patient medical history was integrated to unify lab reports, medications, and allergy information in one view.</strong><br></br>Example: A cardiologist, for example, could review recent cardiac markers with active medications and allergy alerts in the same place, enabling faster diagnosis and treatment.</li><li><strong>Lab report tracking was upgraded to show test type, date, status, and a clear summary with labels such as Pending, Completed, and Awaiting Review.</strong><br></br>Result: Trends were displayed with sparklines and color-coded indicators, helping clinicians quickly spot abnormalities or improvements.</li><li><strong>A medication management module was added for prescription entry, viewing, and exporting. It included dosage, frequency, and prescribing physician details.</strong><br></br>Example: Specialists could customize it to highlight drugs relevant to their practice, reducing overload and focusing on critical treatments.</li><li><strong>Rapid filtering options were introduced to search by patient name, medical record number, date of birth, gender, last visit, insurance company, or policy number.</strong><br></br>Example: Billing staff could locate patients by insurance details, while clinicians filtered records by visits or demographics.</li><li><strong>Visual transparency was provided through interactive tooltips explaining alert rationales and flagged data points.</strong><br></br>Result: Clinicians gained immediate context, such as the reason a lab value was marked as critical, supporting informed and timely decisions.</li></ul><figure><a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/healthcare-dashboard.jpg"><img alt="A medical dashboard interface displaying total patients, active appointments, lab results, system alerts, patient growth trend, appointment status, and lab test processing with insights and alerts." decoding="async" fetchpriority="low" height="523" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/healthcare-dashboard.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/healthcare-dashboard.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/healthcare-dashboard.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/healthcare-dashboard.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/healthcare-dashboard.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/healthcare-dashboard.jpg 2000w" width="800"></img></a><figcaption>Patient and Appointment Monitoring Dashboard for Healthcare Providers (Image source: <a href="https://www.aqedigital.com/healthcare-ai-driven-solutions/">Healthcare Interoperability AI Solution by AQe Digital</a>) (<a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/healthcare-dashboard.jpg">Large preview</a>)</figcaption></figure><p><strong>Strategic Impact:</strong> Our design encourages active decision-making instead of passive data review. Interactive tooltips ensure visual transparency by explaining the rationale behind alerts and flagged data points. These information boxes give clinicians immediate context, such as why a lab value is marked critical, helping them understand implications and next steps without delay.</p><h3 id="key-ux-insights-from-the-above-3-examples">Key UX Insights from the Above 3 Examples</h3><ul><li><strong>Design should drive conclusions, not just display data.</strong><br></br>Contextualized data enabled faster and more confident decisions. For example, a logistics dashboard flagged high-risk delays so dispatchers could act immediately.</li><li><strong>Complexity should be structured, not eliminated.</strong><br></br>Tools used timelines, layering, and progressive disclosure to handle dense information. A financial tool groups transactions by time blocks, easing cognitive load without losing detail.</li><li><strong>Trust requires clear system logic.</strong><br></br>Users trusted predictive alerts only after understanding their triggers. A healthcare interface added a “Why this alert?” option that explained the reasoning.</li><li><strong>The aim is clarity and action, not visual polish.</strong><br></br>Redesigns improved speed, confidence, and decision-making. In real-time contexts, confusion delays are more harmful than design flaws.</li></ul><h2 id="final-takeaways">Final Takeaways</h2><p>Real-time dashboards are not about overwhelming users with data. They are about helping them act quickly and confidently. The most effective dashboards reduce noise, highlight the most important metrics, and support decision-making in complex environments. Success lies in <strong>balancing visual clarity with cognitive ease</strong> while accounting for human limits like memory, stress, and attention alongside technical needs.</p><p><strong>Do:</strong></p><ul><li>Prioritize key metrics in a clear order so priorities are obvious. For instance, a support manager may track open tickets before response times.</li><li>Use subtle micro-animations and small visual cues to indicate changes, helping users spot trends without distraction.</li><li>Display data freshness and sync status to build trust.</li><li>Plan for edge cases like incomplete or offline data to keep the experience consistent.</li><li>Ensure accessibility with high contrast, ARIA labels, and keyboard navigation.</li></ul><p><strong>Don’t:</strong></p><ul><li>Overcrowd the interface with too many metrics.</li><li>Rely only on color to communicate critical information.</li><li>Update all data at once or too often, which can cause overload.</li><li>Hide failures or delays; transparency helps users adapt.</li></ul><p>Over time, I’ve come to <strong>see real-time dashboards as decision assistants rather than control panels</strong>. When users say, <em>“This helps me stay in control,”</em> it reflects a design built on empathy that respects cognitive limits and enhances decision-making. That is the true measure of success.</p><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/ux-strategies-real-time-dashboards.jpg" /><h1>UX Strategies For Real-Time Dashboards — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>18 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/data-visualization">Data Visualization</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/workflow">Workflow</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Real-time dashboards are decision assistants, not passive displays. In environments like fleet management, healthcare, and operations, the cost of a delay or misstep is high. Karan Rawal explores strategic UX patterns that shorten time-to-decision, reduce cognitive overload, and make live systems trustworthy.</section></p><p>I once worked with a fleet operations team that monitored dozens of vehicles in multiple cities. Their dashboard showed fuel consumption, live GPS locations, and real-time driver updates. Yet the team struggled to see what needed urgent attention. The problem was not a lack of data but a lack of clear indicators to support decision-making. There were no priorities, alerts, or context to highlight what mattered most at any moment.</p><p><strong>Real-time dashboards</strong> are now critical decision-making tools in industries like logistics, manufacturing, finance, and healthcare. However, many of them fail to help users make timely and confident decisions, even when they show live data.</p><blockquote>Designing for real-time use is very different from designing static dashboards. The challenge is not only presenting metrics but enabling decisions under pressure. Real-time users face limited time and a high cognitive load. They need clarity on actions, not just access to raw data.</blockquote><p>This requires interface elements that support quick scanning, pattern recognition, and guided attention. Layout hierarchy, alert colors, grouping, and motion cues all help, but they must be driven by a deeper strategy: understanding what the user must decide in <em>that</em> moment.</p><p>This article explores <strong>practical UX strategies</strong> for real-time dashboards that enable real decisions. Instead of focusing only on visual best practices, it looks at how user intent, personalization, and cognitive flow can turn raw data into meaningful, timely insights.</p><h2 id="designing-for-real-time-comprehension-helping-users-stay-focused-under-pressure">Designing for Real-Time Comprehension: Helping Users Stay Focused Under Pressure</h2><p>A GPS app not only shows users their location but also helps them decide where to go next. In the same way, a real-time dashboard should go beyond displaying the latest data. Its purpose is to help users quickly understand complex information and make informed decisions, especially in fast-paced environments with short attention spans.</p><h3 id="how-users-process-real-time-updates">How Users Process Real-Time Updates</h3><p>Humans have limited cognitive capacity, so they can only process a small amount of data at once. Without <strong>proper context</strong> or <strong>visual cues</strong>, rapidly updating dashboards can overwhelm users and shift attention away from key information.</p><p>To address this, I use the following approaches:</p><ul><li><strong>Delta Indicators and Trend Sparklines</strong><br></br><a href="https://in.tradingview.com/scripts/delta/">Delta indicators</a> show value changes at a glance, while sparklines are small line charts that reveal trends over time in a compact space. For example, a sales dashboard might show a green upward arrow next to revenue to indicate growth, along with a sparkline displaying sales trends over the past week.</li><li><strong>Subtle Micro-Animations</strong><br></br><a href="https://www.youtube.com/watch?v=MZjV27K2KR4">Small animations</a> highlight changes without distracting users. Research in cognitive psychology shows that such animations effectively draw attention, helping users notice updates while staying focused. For instance, a soft pulse around a changing metric can signal activity without overwhelming the viewer.</li><li><strong>Mini-History Views</strong><br></br>Showing a short history of recent changes reduces reliance on memory. For example, a dashboard might let users scroll back a few minutes to review updates, supporting better understanding and verification of data trends.<br></br></li></ul><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h3 id="common-challenges-in-real-time-dashboards">Common Challenges In Real-Time Dashboards</h3><blockquote>Many live dashboards fail when treated as static reports instead of dynamic tools for quick decision-making.</blockquote><p>In my early projects, I made this mistake, resulting in cluttered layouts, distractions, and frustrated users.</p><p>Typical errors include the following:</p><ul><li><strong>Overcrowded Interfaces</strong>: Presenting too many metrics competes for users’ attention, making it hard to focus.</li><li><strong>Flat Visual Hierarchy</strong>: Without clear emphasis on critical data, users might focus on less important information.</li><li><strong>No Record of Changes</strong>: When numbers update instantly with no explanation, users can feel lost or confused.</li><li><strong>Excessive Refresh Rates</strong>: Not all data needs constant updates. Updating too frequently can create unnecessary motion and cognitive strain.</li></ul><figure><a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/bad-vs-good-dashboard-ux.png"><img alt="Side-by-side dashboards labeled Bad UX and Good UX. The bad UX dashboard is cluttered with multiple pie charts and bar graphs, while the good UX dashboard uses a clear hierarchy with summary cards, line charts, and simplified visuals for easier data interpretation." decoding="async" fetchpriority="low" height="467" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/bad-vs-good-dashboard-ux.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/bad-vs-good-dashboard-ux.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/bad-vs-good-dashboard-ux.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/bad-vs-good-dashboard-ux.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/bad-vs-good-dashboard-ux.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/bad-vs-good-dashboard-ux.png 2000w" width="800"></img></a><figcaption>Comparison of bad vs. good UX in dashboards, showing how clear hierarchy and visualization improve data understanding. (Image source: <a href="https://www.devoteam.com/expert-view/make-data-make-sense-why-ux-in-dashboards-matters/">devoteam</a>) (<a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/bad-vs-good-dashboard-ux.png">Large preview</a>)</figcaption></figure><h3 id="managing-stress-and-cognitive-overload">Managing Stress And Cognitive Overload</h3><p>Under stress, users depend on intuition and focus only on immediately relevant information. If a dashboard updates too quickly or shows conflicting alerts, users may delay actions or make mistakes. It is important to:</p><ul><li><strong>Prioritize</strong> the most important data first to avoid overwhelming the user.</li><li>Offer <strong>snapshot or pause options</strong> so users can take time to process information.</li><li>Use <strong>clear indicators</strong> to show if an action is required or if everything is operating normally.</li></ul><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aIn%20real-time%20environments,%20the%20best%20dashboards%20balance%20speed%20with%20calmness%20and%20clarity.%20They%20are%20not%20just%20data%20displays%20but%20tools%20that%20promote%20live%20thinking%20and%20better%20decisions.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fux-strategies-real-time-dashboards%2f">In real-time environments, the best dashboards balance speed with calmness and clarity. They are not just data displays but tools that promote live thinking and better decisions.</a></p></blockquote><h3 id="enabling-personalization-for-effective-data-consumption">Enabling Personalization For Effective Data Consumption</h3><p>Many analytics tools let users build custom dashboards, but these design principles guide layouts that support decision-making. Personalization options such as custom metric selection, alert preferences, and update pacing help manage cognitive load and improve data interpretation.</p><table><thead><tr><th>Cognitive Challenge</th><th>UX Risk in Real-Time Dashboards</th><th>Design Strategy to Mitigate</th></tr></thead><tbody><tr><td>Users can’t track rapid changes</td><td>Confusion, missed updates, second-guessing</td><td>Use delta indicators, change animations, and trend sparklines</td></tr><tr><td>Limited working memory</td><td>Overload from too many metrics at once</td><td>Prioritize key KPIs, apply progressive disclosure</td></tr><tr><td>Visual clutter under stress</td><td>Tunnel vision or misprioritized focus</td><td>Apply a clear visual hierarchy, minimize non-critical elements</td></tr><tr><td>Unclear triggers or alerts</td><td>Decision delays, incorrect responses</td><td>Use thresholds, binary status indicators, and plain language</td></tr><tr><td>Lack of context/history</td><td>Misinterpretation of sudden shifts</td><td>Provide micro-history, snapshot freeze, or hover reveal</td></tr></tbody></table><p><em>Common Cognitive Challenges in Real-Time Dashboards and UX Strategies to Overcome Them.</em></p><h2 id="designing-for-focus-using-layout-color-and-animation-to-drive-real-time-decisions">Designing For Focus: Using Layout, Color, And Animation To Drive Real-Time Decisions</h2><p>Layout, color, and animation do more than improve appearance. They help users interpret live data quickly and make decisions under time pressure. Since users respond to rapidly changing information, these elements must reduce cognitive load and highlight key insights immediately.</p><ul><li><strong>Creating a Visual Hierarchy to Guide Attention.</strong><br></br>A clear hierarchy directs users’ eyes to key metrics. Arrange elements so the most important data stands out. For example, place critical figures like sales volume or system health in the upper left corner to match common scanning patterns. Limit visible elements to about five to prevent overload and ease processing—group related data into cards to improve scannability and help users focus without distraction.</li><li><strong>Using Color Purposefully to Convey Meaning.</strong><br></br>Color communicates meaning in data visualization. Red or orange indicates critical alerts or negative trends, signaling urgency. Blue and green represent positive or stable states, offering reassurance. Neutral tones like gray support background data and make key colors stand out. Ensure accessibility with strong contrast and pair colors with icons or labels. For example, bright red can highlight outages while muted gray marks historical logs, keeping attention on urgent issues.</li><li><strong>Supporting Comprehension with Subtle Animation.</strong><br></br>Animation should clarify, not distract. Smooth transitions of 200 to 400 milliseconds communicate changes effectively. For instance, upward motion in a line chart reinforces growth. Hover effects and quick animations provide feedback and improve interaction. Thoughtful motion makes changes noticeable while maintaining focus.</li></ul><figure><a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/car-rental-dashboard-analytics.png"><img alt="An example of a car rental analytics dashboard that uses hierarchy, color, and charts to highlight key metrics like customer growth, satisfaction trends, and acquisition costs, enabling faster decision-making." decoding="async" fetchpriority="low" height="545" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/car-rental-dashboard-analytics.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/car-rental-dashboard-analytics.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/car-rental-dashboard-analytics.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/car-rental-dashboard-analytics.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/car-rental-dashboard-analytics.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/car-rental-dashboard-analytics.png 2000w" width="800"></img></a><figcaption>Car rental dashboard that uses hierarchy, color, and charts to highlight key metrics and trends. (Image credit: <a href="https://www.aqedigital.com/services/ai-ml-solutions-car-rental/">Car Rental Solution</a> by AQe Digital) (<a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/car-rental-dashboard-analytics.png">Large preview</a>)</figcaption></figure><p>Layout, color, and animation create an experience that enables fast, accurate interpretation of live data. Real-time dashboards support continuous monitoring and decision-making by reducing mental effort and <strong>highlighting anomalies or trends</strong>. Personalization allows users to tailor dashboards to their roles, improving relevance and efficiency. For example, operations managers may focus on system health metrics while sales directors prioritize revenue KPIs. This adaptability makes dashboards dynamic, strategic tools.</p><table><thead><tr><th>Element</th><th>Placement &amp; Visual Weight</th><th>Purpose &amp; Suggested Colors</th><th>Animation Use Case &amp; Effect</th></tr></thead><tbody><tr><td><strong>Primary KPIs</strong></td><td>Center or top-left; bold, large font</td><td>Highlight critical metrics; typically stable states</td><td>Value updates: smooth increase (200–400 ms)</td></tr><tr><td><strong>Controls</strong></td><td>Top or left panel; light, minimal visual weight</td><td>Provide navigation/filtering; neutral color schemes</td><td>User actions: subtle feedback (100–150 ms)</td></tr><tr><td><strong>Charts</strong></td><td>Middle or right; medium emphasis</td><td>Show trends and comparisons; use blue/green for positives, grey for neutral</td><td>Chart trends: trail or fade (300–600 ms)</td></tr><tr><td><strong>Alerts</strong></td><td>Edge of dashboard or floating; high contrast (bold)</td><td>Signal critical issues; red/orange for alerts, yellow/amber for warnings</td><td>Quick animations for appearance; highlight changes</td></tr></tbody></table><p><em>Design Elements, Placement, Color, and Motion Strategies for Effective Real-Time Dashboards.</em></p><h2 id="clarity-in-motion-designing-dashboards-that-make-change-understandable">Clarity In Motion: Designing Dashboards That Make Change Understandable</h2><p>If users cannot interpret changes quickly, the dashboard fails regardless of its visual design. Over time, I have developed methods that reduce confusion and make change feel intuitive rather than overwhelming.</p><p>One of the most effective tools I use is the <a href="https://en.wikipedia.org/wiki/Sparkline">sparkline</a>, a compact line chart that shows a trend over time and is typically placed next to a key performance indicator. Unlike full charts, sparklines omit axes and labels. Their simplicity makes them powerful, since they instantly show whether a metric is trending up, down, or steady. For example, placing a sparkline next to monthly revenue immediately reveals if performance is improving or declining, even before the viewer interprets the number.</p><p>When using sparklines effectively, follow these principles:</p><ul><li>Pair sparklines with metrics such as revenue, churn rate, or user activity so users can see both the value and its trajectory at a glance.</li><li>Simplify by removing clutter like axis lines or legends unless they add real value.</li><li>Highlight the latest data point with a dot or accent color since current performance often matters more than historical context.</li><li>Limit the time span. Too many data points compress the sparkline and hurt readability. A focused window, such as the last 7 or 30 days, keeps the trend clear.</li><li>Use sparklines in comparative tables. When placed in rows (for example, across product lines or regions), they reveal anomalies or emerging patterns that static numbers may hide.</li></ul><figure><a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-performance-gif.gif"><img alt="A GIF of a dynamic dashboard showing profit and loss waterfall, performance variance vs budget and last year, profit trend lines, and expense category breakdown for hospitality operations." height="450" src="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-performance-gif.gif" width="800"></img></a><figcaption>Interactive P&amp;L Performance Dashboard with Forecast and Variance Tracking. (<a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-performance-gif.gif">Large preview</a>)</figcaption></figure><p>I combine sparklines with directional indicators like arrows and percentage deltas to support quick interpretation.</p><p>For example, pairing “▲ +3.2%” with a rising sparkline shows both the direction and scale of change. I do not rely only on color to convey meaning.</p><p>Since <a href="https://www.colourblindawareness.org/colour-blindness/">1 in 12 men</a> is color-blind, using red and green alone can exclude some users. To ensure accessibility, I add shapes and icons alongside color cues.</p><p>Micro-animations provide subtle but effective signals. This counters <a href="https://www.nngroup.com/articles/change-blindness">change blindness</a> — our tendency to miss non-salient changes.</p><ul><li>When numbers update, I use fade-ins or count-up transitions to indicate change without distraction.</li><li>If a list reorders, such as when top-performing teams shift positions, a smooth slide animation under 300 milliseconds helps users maintain spatial memory. These animations reduce cognitive friction and prevent disorientation.</li></ul><p>Layout is critical for clarifying change:</p><ul><li>I use <strong>modular cards</strong> with consistent spacing, alignment, and hierarchy to highlight key metrics.</li><li>Cards are arranged in a <strong>sortable grid</strong>, allowing filtering by severity, recency, or relevance.</li><li><strong>Collapsible sections</strong> manage dense information while keeping important data visible for quick scanning and deeper exploration.</li></ul><p>For instance, in a logistics dashboard, a card labeled “On-Time Deliveries” may display a weekly sparkline. If performance dips, the line flattens or turns slightly red, a downward arrow appears with a −1.8% delta, and the updated number fades in. This gives instant clarity without requiring users to open a detailed chart.</p><p>All these design choices support fast, informed decision-making. In high-velocity environments like product analytics, logistics, or financial operations, dashboards must do more than present data. They must <strong>reduce ambiguity</strong> and help teams quickly detect change, understand its impact, and take action.</p><h2 id="making-reliability-visible-designing-for-trust-in-real-time-data-interfaces">Making Reliability Visible: Designing for Trust In Real-Time Data Interfaces</h2><p>In real-time data environments, reliability is not just a technical feature. It is the foundation of user trust. Dashboards are used in high-stakes, fast-moving contexts where decisions depend on timely, accurate data. Yet these systems often face less-than-ideal conditions such as unreliable networks, API delays, and incomplete datasets. Designing for these realities is not just damage control. It is essential for making data experiences usable and trustworthy.</p><p>When data lags or fails to load, it can mislead users in serious ways:</p><ul><li>A dip in a trendline may look like a market decline when it is only a delay in the stream.</li><li>Missing categories in a bar chart, if not clearly signaled, can lead to flawed decisions.</li></ul><p>To mitigate this:</p><ul><li>Every data point should be paired with its condition.</li><li>Interfaces must show not only what the data says but also how current or complete it is.</li></ul><p>One effective strategy is replacing traditional spinners with <a href="https://www.nngroup.com/articles/skeleton-screens/">skeleton UIs</a>. These are greyed-out, animated placeholders that suggest the structure of incoming data. They set expectations, reduce anxiety, and show that the system is actively working. For example, in a financial dashboard, users might see the outline of a candlestick chart filling in as new prices arrive. This signals that data is being refreshed, not stalled.</p><h3 id="handling-data-unavailability">Handling Data Unavailability</h3><p>When data is unavailable, I show <strong>cached snapshots</strong> from the most recent successful load, labeled with timestamps such as “Data as of 10:42 AM.” This keeps users aware of what they are viewing.</p><p>In operational dashboards such as logistics or monitoring systems, this approach lets users act confidently even when real-time updates are temporarily out of sync.</p><h3 id="managing-connectivity-failures">Managing Connectivity Failures</h3><p>To handle connectivity failures, I use <strong>auto-retry mechanisms with exponential backoff</strong>, giving the system several chances to recover quietly before notifying the user.</p><p>If retries fail, I maintain transparency with clear banners such as “Offline… Reconnecting…” In one product, this approach prevented users from reloading entire dashboards unnecessarily, especially in areas with unreliable Wi-Fi.</p><h3 id="ensuring-reliability-with-accessibility">Ensuring Reliability with Accessibility</h3><p>Reliability strongly connects with accessibility:</p><ul><li>Real-time interfaces must announce updates without disrupting user focus, beyond just screen reader compatibility.</li><li><a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Guides/Live_regions">ARIA live regions</a> quietly narrate significant changes in the background, giving screen reader users timely updates without confusion.</li><li>All controls remain keyboard-accessible.</li><li>Animations follow <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion">motion-reduction preferences</a> to support users with vestibular sensitivities.</li></ul><h3 id="data-freshness-indicator">Data Freshness Indicator</h3><p>A compact but powerful pattern I often implement is the Data Freshness Indicator, a small widget that:</p><ul><li>Shows sync status,</li><li>Displays the last updated time,</li><li>Includes a manual refresh button.</li></ul><p>This improves <strong>transparency</strong> and reinforces <strong>user control</strong>. Since different users interpret these cues differently, advanced systems allow personalization. For example:</p><ul><li>Analysts may prefer detailed logs of update attempts.</li><li>Business users might see a simple status such as “Live”, “Stale”, or “Paused”.</li></ul><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aReliability%20in%20data%20visualization%20is%20not%20about%20promising%20perfection.%20It%20is%20about%20creating%20a%20resilient,%20informative%20experience%20that%20supports%20human%20judgment%20by%20revealing%20the%20true%20state%20of%20the%20system.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fux-strategies-real-time-dashboards%2f">Reliability in data visualization is not about promising perfection. It is about creating a resilient, informative experience that supports human judgment by revealing the true state of the system.</a></p></blockquote><p>When users understand what the dashboard knows, what it does not, and what actions it is taking, they are more likely to trust the data and make smarter decisions.</p><h2 id="real-world-case-study">Real-World Case Study</h2><p>In my work across logistics, hospitality, and healthcare, the challenge has always been to distill complexity into clarity. A well-designed dashboard is more than functional; it serves as a trusted companion in decision-making, embedding clarity, speed, and confidence from the start.</p><h3 id="1-fleet-management-dashboard">1. Fleet Management Dashboard</h3><p>A client in the car rental industry struggled with fragmented operational data. Critical details like vehicle locations, fuel usage, maintenance schedules, and downtime alerts were scattered across static reports, spreadsheets, and disconnected systems. Fleet operators had to manually cross-reference data sources, even for basic dispatch tasks, which caused missed warnings, inefficient routing, and delays in response.</p><p>We solved these issues by redesigning the dashboard strategically, focusing on both layout improvements and how users interpret and act on information.</p><p><strong>Strategic Design Improvements and Outcomes:</strong></p><ul><li><strong>Instant visibility of KPIs</strong><br></br>High-contrast cards at the top of the dashboard made key performance indicators instantly visible.<br></br><em>Example: Fuel consumption anomalies that previously went unnoticed for days were flagged within hours, enabling quick corrective action.</em></li><li><strong>Clear trend and pattern visualization</strong><br></br>Booking forecasts, utilization graphs, and city-by-city comparisons highlighted performance trends.<br></br><em>Example: A weekday-weekend booking chart helped a regional manager spot underperformance in one city and plan targeted vehicle redistribution.</em></li><li><strong>Unified operational snapshot</strong><br></br>Cost, downtime, and service schedules were grouped into one view.<br></br><em>Result: The operations team could assess fleet health in under five minutes each morning instead of using multiple tools.</em></li><li><strong>Predictive context for planning</strong><br></br>Visual cues showed peak usage periods and historical demand curves.<br></br><em>Result: Dispatchers prepared for forecasted spikes, reducing customer wait times and improving resource availability.</em></li><li><strong>Live map with real-time status</strong><br></br>A color-coded map displays vehicle status: green for active, red for urgent attention, gray for idle.<br></br><em>Result: Supervisors quickly identified inactive or delayed vehicles and rerouted resources as needed.</em></li><li><strong>Role-based personalization</strong><br></br>Personalization options were built in, allowing each role to customize dashboard views.<br></br><em>Example: Fleet managers prioritized financial KPIs, while technicians filtered for maintenance alerts and overdue service reports.</em></li></ul><figure><a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/auto-leasing-analytics.png"><img alt="A data analytics dashboard for the auto leasing industry displaying revenue per booking, cost recovery, operational efficiency, and top revenue-generating locations across the UAE regions." decoding="async" fetchpriority="low" height="555" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/auto-leasing-analytics.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/auto-leasing-analytics.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/auto-leasing-analytics.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/auto-leasing-analytics.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/auto-leasing-analytics.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/auto-leasing-analytics.png 2000w" width="800"></img></a><figcaption>Auto Leasing Revenue and Efficiency Dashboard. (Image source: <a href="https://www.aqedigital.com/automobile-ai-solution">Fleet management Solution by AQe Digital</a>) (<a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/auto-leasing-analytics.png">Large preview</a>)</figcaption></figure><p><strong>Strategic Impact:</strong> The dashboard redesign was not only about improving visuals. It changed how teams interacted with data. Operators no longer needed to search for insights, as the system presented them in line with tasks and decision-making. The dashboard became a shared reference for teams with different goals, enabling real-time problem solving, fewer manual checks, and stronger alignment across roles. Every element was designed to build both understanding and confidence in action.</p><h3 id="2-hospitality-revenue-dashboard">2. Hospitality Revenue Dashboard</h3><p>One of our clients, a hospitality group with 11 hotels in the UAE, faced a growing strategic gap. They had data from multiple departments, including bookings, events, food and beverage, and profit and loss, but it was spread across disconnected dashboards.</p><p><strong>Strategic Design Improvements and Outcomes:</strong></p><ul><li><strong>All revenue streams (rooms, restaurants, bars, and profit and loss) were consolidated into a single filterable dashboard.</strong><br></br>Example: A revenue manager could filter by property to see if a drop in restaurant revenue was tied to lower occupancy or was an isolated issue. The structure supported daily operations, weekly reviews, and quarterly planning.</li><li><strong>Disconnected charts and metrics were replaced with a unified visual narrative showing how revenue streams interacted.</strong><br></br>Example: The dashboard revealed how event bookings influenced bar sales or staffing. This shifted teams from passive data consumption to active interpretation.</li><li><strong>AI modules for demand forecasting, spend prediction, and pricing recommendations were embedded in the dashboard.</strong><br></br>Result: Managers could test rate changes with interactive sliders and instantly view effects on occupancy, revenue per available room, and food and beverage income. This enabled proactive scenario planning.</li><li><strong>Compact, color-coded sparklines were placed next to each key metric to show short- and long-term trends.</strong><br></br>Result: These visuals made it easy to spot seasonal shifts or channel-specific patterns without switching views or opening separate reports.</li><li><strong>Predictive overlays such as forecast bands and seasonality markers were added to performance graphs.</strong><br></br>Example: If occupancy rose but lagged behind seasonal forecasts, the dashboard surfaced the gap, prompting early action such as promotions or issue checks.</li></ul><figure><a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-revenue-dashboard.png"><img alt="A digital dashboard showing hotel metrics including occupancy, ADR, RevPAR, F&amp;B revenue, and payroll, filtered by date range and department, with performance comparisons to previous periods." decoding="async" fetchpriority="low" height="411" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-revenue-dashboard.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-revenue-dashboard.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-revenue-dashboard.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-revenue-dashboard.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-revenue-dashboard.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-revenue-dashboard.png 2000w" width="800"></img></a><figcaption>P&amp;L Variance and Revenue Intelligence Dashboard for Hotel Performance Review. (Image source: <a href="https://www.aqedigital.com/hospitality-ai-solutions">Hospitality AI Solution by AQe Digital</a>) (<a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/pl-revenue-dashboard.png">Large preview</a>)</figcaption></figure><p><strong>Strategic Impact:</strong> By aligning the dashboard structure with real pricing and revenue strategies, the client shifted from static reporting to forward-looking decision-making. This was not a cosmetic interface update. It was a complete rethinking of how data could support business goals. The result enabled every team, from finance to operations, to interpret data based on their specific roles and responsibilities.</p><h3 id="3-healthcare-interoperability-dashboard">3. Healthcare Interoperability Dashboard</h3><p>In healthcare, timely and accurate access to patient information is essential. A multi-specialist hospital client struggled with fragmented data. Doctors had to consult separate platforms such as electronic health records, lab results, and pharmacy systems to understand a patient’s condition. This fragmented process slowed decision-making and increased risks to patient safety.</p><p><strong>Strategic Design Improvements and Outcomes:</strong></p><ul><li><strong>Patient medical history was integrated to unify lab reports, medications, and allergy information in one view.</strong><br></br>Example: A cardiologist, for example, could review recent cardiac markers with active medications and allergy alerts in the same place, enabling faster diagnosis and treatment.</li><li><strong>Lab report tracking was upgraded to show test type, date, status, and a clear summary with labels such as Pending, Completed, and Awaiting Review.</strong><br></br>Result: Trends were displayed with sparklines and color-coded indicators, helping clinicians quickly spot abnormalities or improvements.</li><li><strong>A medication management module was added for prescription entry, viewing, and exporting. It included dosage, frequency, and prescribing physician details.</strong><br></br>Example: Specialists could customize it to highlight drugs relevant to their practice, reducing overload and focusing on critical treatments.</li><li><strong>Rapid filtering options were introduced to search by patient name, medical record number, date of birth, gender, last visit, insurance company, or policy number.</strong><br></br>Example: Billing staff could locate patients by insurance details, while clinicians filtered records by visits or demographics.</li><li><strong>Visual transparency was provided through interactive tooltips explaining alert rationales and flagged data points.</strong><br></br>Result: Clinicians gained immediate context, such as the reason a lab value was marked as critical, supporting informed and timely decisions.</li></ul><figure><a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/healthcare-dashboard.jpg"><img alt="A medical dashboard interface displaying total patients, active appointments, lab results, system alerts, patient growth trend, appointment status, and lab test processing with insights and alerts." decoding="async" fetchpriority="low" height="523" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/healthcare-dashboard.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/healthcare-dashboard.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/healthcare-dashboard.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/healthcare-dashboard.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/healthcare-dashboard.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/ux-strategies-real-time-dashboards/healthcare-dashboard.jpg 2000w" width="800"></img></a><figcaption>Patient and Appointment Monitoring Dashboard for Healthcare Providers (Image source: <a href="https://www.aqedigital.com/healthcare-ai-driven-solutions/">Healthcare Interoperability AI Solution by AQe Digital</a>) (<a href="https://files.smashing.media/articles/ux-strategies-real-time-dashboards/healthcare-dashboard.jpg">Large preview</a>)</figcaption></figure><p><strong>Strategic Impact:</strong> Our design encourages active decision-making instead of passive data review. Interactive tooltips ensure visual transparency by explaining the rationale behind alerts and flagged data points. These information boxes give clinicians immediate context, such as why a lab value is marked critical, helping them understand implications and next steps without delay.</p><h3 id="key-ux-insights-from-the-above-3-examples">Key UX Insights from the Above 3 Examples</h3><ul><li><strong>Design should drive conclusions, not just display data.</strong><br></br>Contextualized data enabled faster and more confident decisions. For example, a logistics dashboard flagged high-risk delays so dispatchers could act immediately.</li><li><strong>Complexity should be structured, not eliminated.</strong><br></br>Tools used timelines, layering, and progressive disclosure to handle dense information. A financial tool groups transactions by time blocks, easing cognitive load without losing detail.</li><li><strong>Trust requires clear system logic.</strong><br></br>Users trusted predictive alerts only after understanding their triggers. A healthcare interface added a “Why this alert?” option that explained the reasoning.</li><li><strong>The aim is clarity and action, not visual polish.</strong><br></br>Redesigns improved speed, confidence, and decision-making. In real-time contexts, confusion delays are more harmful than design flaws.</li></ul><h2 id="final-takeaways">Final Takeaways</h2><p>Real-time dashboards are not about overwhelming users with data. They are about helping them act quickly and confidently. The most effective dashboards reduce noise, highlight the most important metrics, and support decision-making in complex environments. Success lies in <strong>balancing visual clarity with cognitive ease</strong> while accounting for human limits like memory, stress, and attention alongside technical needs.</p><p><strong>Do:</strong></p><ul><li>Prioritize key metrics in a clear order so priorities are obvious. For instance, a support manager may track open tickets before response times.</li><li>Use subtle micro-animations and small visual cues to indicate changes, helping users spot trends without distraction.</li><li>Display data freshness and sync status to build trust.</li><li>Plan for edge cases like incomplete or offline data to keep the experience consistent.</li><li>Ensure accessibility with high contrast, ARIA labels, and keyboard navigation.</li></ul><p><strong>Don’t:</strong></p><ul><li>Overcrowd the interface with too many metrics.</li><li>Rely only on color to communicate critical information.</li><li>Update all data at once or too often, which can cause overload.</li><li>Hide failures or delays; transparency helps users adapt.</li></ul><p>Over time, I’ve come to <strong>see real-time dashboards as decision assistants rather than control panels</strong>. When users say, <em>“This helps me stay in control,”</em> it reflects a design built on empathy that respects cognitive limits and enhances decision-making. That is the true measure of success.</p><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (Karan Rawal) <![CDATA[Integrating CSS Cascade Layers To An Existing Project]]> https://smashingmagazine.com/2025/09/integrating-css-cascade-layers-existing-project/ https://smashingmagazine.com/2025/09/integrating-css-cascade-layers-existing-project/ Wed, 10 Sep 2025 10:00:00 GMT <img src="https://files.smashing.media/articles/integrating-css-cascade-layers-existing-project/integrating-css-cascade-layers-existing-project.jpg" /><h1>Integrating CSS Cascade Layers To An Existing Project — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>16 min read</li><li><a href="http://www.smashingmagazine.com/category/css">CSS</a>, <a href="http://www.smashingmagazine.com/category/techniques">Techniques</a>, <a href="http://www.smashingmagazine.com/category/coding">Coding</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>The idea behind this is to share a full, unfiltered look at integrating CSS Cascade Layers into an existing legacy codebase. In practice, it’s about refactoring existing CSS to use cascade layers without breaking anything.</section></p><p>You can always get a fantastic overview of things in Stephenie Eckles’ article, “<a href="https://www.smashingmagazine.com/2022/01/introduction-css-cascade-layers/">Getting Started With CSS Cascade Layers</a>”. But let’s talk about the experience of integrating cascade layers into real-world code, the good, the bad, and the spaghetti.</p><p>I could have created a sample project for a classic walkthrough, but nah, that’s not how things work in the real world. I want to get our hands dirty, like inheriting code with styles that work and no one knows why.</p><p>Finding projects without cascade layers was easy. The tricky part was finding one that was messy enough to have specificity and organisation issues, but broad enough to illustrate different parts of cascade layers integration.</p><p>Ladies and gentlemen, I present you with this <a href="https://github.com/Drix10/discord-bot-web">Discord bot website</a> by <a href="https://github.com/Drix10">Drishtant Ghosh</a>. I’m deeply grateful to Drishtant for allowing me to use his work as an example. This project is a typical landing page with a navigation bar, a hero section, a few buttons, and a mobile menu.</p><figure><a href="https://files.smashing.media/articles/integrating-css-cascade-layers-existing-project/1-discord-bot-landing-page.png"><img alt="Discord Bot landing page, including a circular logo centered above a heading, text blub, then a row of three buttons." decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/integrating-css-cascade-layers-existing-project/1-discord-bot-landing-page.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/integrating-css-cascade-layers-existing-project/1-discord-bot-landing-page.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/integrating-css-cascade-layers-existing-project/1-discord-bot-landing-page.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/integrating-css-cascade-layers-existing-project/1-discord-bot-landing-page.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/integrating-css-cascade-layers-existing-project/1-discord-bot-landing-page.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/integrating-css-cascade-layers-existing-project/1-discord-bot-landing-page.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/integrating-css-cascade-layers-existing-project/1-discord-bot-landing-page.png">Large preview</a>)</figcaption></figure><p>You see how it looks perfect on the outside. Things get interesting, however, when we look at the CSS styles under the hood.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="understanding-the-project">Understanding The Project</h2><p>Before we start throwing <code>@layers</code> around, let’s get a firm understanding of what we’re working with. I <a href="https://codepen.io/vayospot/pen/bNdoYdP">cloned</a> the GitHub repo, and since our focus is working with CSS Cascade Layers, I’ll focus only on the main page, which consists of three files: <code>index.html</code>, <code>index.css</code>, and <code>index.js</code>.</p><p><strong>Note</strong>: <em>I didn’t include other pages of this project as it’d make this tutorial too verbose. However, you can refactor the other pages as an experiment.</em></p><p>The <code>index.css</code> file is over 450 lines of code, and skimming through it, I can see some red flags right off the bat:</p><ul><li>There’s a lot of code repetition with the same selectors pointing to the same HTML element.</li><li>There are quite a few <code>#id</code> selectors, which one might argue shouldn’t be used in CSS (and I am one of those people).</li><li><code>#botLogo</code> is defined twice and over 70 lines apart.</li><li>The <code>!important</code> keyword is used liberally throughout the code.</li></ul><p>And yet the site works. There is nothing “technically” wrong here, which is another reason CSS is a big, beautiful monster — errors are silent!</p><h2 id="planning-the-layer-structure">Planning The Layer Structure</h2><p>Now, some might be thinking, <em>“Can’t we simply move all of the styles into a single layer, like <code>@layer legacy</code> and call it a day?”</em></p><p>You could… but I don’t think you should.</p><p>Think about it: If more layers are added after the <code>legacy</code> layer, they <em>should</em> override the styles contained in the <code>legacy</code> layer because the specificity of layers is organized by priority, where the layers declared later carry higher priority.</p><pre><code>/* new is more specific */ @layer legacy, new; /* legacy is more specific */ @layer new, legacy; </code></pre><p>That said, we must remember that the site’s existing styles make liberal use of the <code>!important</code> keyword. And when that happens, the order of cascade layers gets reversed. So, even though the layers are outlined like this:</p><pre><code>@layer legacy, new; </code></pre><p>…any styles with an <code>!important</code> declaration suddenly shake things up. In this case, the priority order becomes:</p><ol><li><code>!important</code> styles in the <code>legacy</code> layer (most powerful),</li><li><code>!important</code> styles in the <code>new</code> layer,</li><li>Normal styles in the <code>new</code> layer,</li><li>Normal styles in the <code>legacy</code> layer (least powerful).</li></ol><p>I just wanted to clear that part up. Let’s continue.</p><p>We know that cascade layers handle specificity by creating an explicit order where each layer has a clear responsibility, and later layers always win.</p><p>So, I decided to split things up into five distinct layers:</p><ul><li><strong><code>reset</code></strong>: Browser default resets like <code>box-sizing</code>, margins, and paddings.</li><li><strong><code>base</code></strong>: Default styles of HTML elements, like <code>body</code>, <code>h1</code>, <code>p</code>, <code>a</code>, etc., including default typography and colours.</li><li><strong><code>layout</code></strong>: Major page structure stuff for controlling how elements are positioned.</li><li><strong><code>components</code></strong>: Reusable UI segments, like buttons, cards, and menus.</li><li><strong><code>utilities</code></strong>: Single helper modifiers that do just one thing and do it well.</li></ul><p>This is merely how I like to break things out and organize styles. Zell Liew, for example, <a href="https://css-tricks.com/composition-in-css/">has a different set of four buckets</a> that could be defined as layers.</p><p>There’s also the concept of dividing things up even further into <strong>sublayers</strong>:</p><pre><code>@layer components { /* sub-layers */ @layer buttons, cards, menus; } /* or this: */ @layer components.buttons, components.cards, components.menus; </code></pre><p>That might come in handy, but I also don’t want to overly abstract things. That might be a better strategy for a project that’s scoped to a well-defined design system.</p><p>Another thing we could leverage is <strong>unlayered styles</strong> and the fact that any styles not contained in a cascade layer get the highest priority:</p><pre><code>@layer legacy { a { color: red !important; } } @layer reset { a { color: orange !important; } } @layer base { a { color: yellow !important; } } /* unlayered */ a { color: green !important; } /* highest priority */ </code></pre><p>But I like the idea of keeping all styles organized in explicit layers because it keeps things <strong>modular</strong> and <strong>maintainable</strong>, at least in this context.</p><p>Let’s move on to adding cascade layers to this project.</p><h2 id="integrating-cascade-layers">Integrating Cascade Layers</h2><p>We need to define the layer order at the top of the file:</p><pre><code>@layer reset, base, layout, components, utilities; </code></pre><p>This makes it easy to tell which layer takes precedence over which (they get more priority from left to right), and now we can think in terms of layer responsibility instead of selector weight. Moving forward, I’ll proceed through the stylesheet from top to bottom.</p><p>First, I noticed that the <a href="https://fonts.google.com/specimen/Poppins?query=poppins">Poppins font</a> was imported in both the HTML and CSS files, so I removed the CSS import and left the one in <code>index.html</code>, as that’s generally recommended for quickly loading fonts.</p><p>Next is the universal selector (<code>*</code>) styles, which include <a href="https://css-tricks.com/box-sizing/">classic reset styles</a> that are perfect for <code>@layer reset</code>:</p><pre><code>@layer reset { * { margin: 0; padding: 0; box-sizing: border-box; } } </code></pre><p>With that out of the way, the <code>body</code> selector is next. I’m putting this into <code>@layer base</code> because it contains core styles for the project, like backgrounds and fonts:</p><div><pre><code>@layer base { body { background-image: url("bg.svg"); /* Renamed to bg.svg for clarity */ font-family: "Poppins", sans-serif; /* ... other styles */ } } </code></pre></div><p>The way I’m tackling this is that styles in the <code>base</code> layer should generally affect the whole document. So far, no page breaks or anything.</p><h3 id="swapping-ids-for-classes">Swapping IDs For Classes</h3><p>Following the <code>body</code> element selector is the page loader, which is defined as an ID selector, <code>#loader</code>.</p><blockquote>I’m a firm believer in using class selectors over ID selectors as much as possible. It keeps specificity low by default, which prevents specificity battles and <a href="https://css-tricks.com/the-difference-between-id-and-class/">makes the code a lot more maintainable</a>.</blockquote><p>So, I went into the <code>index.html</code> file and refactored elements with <code>id="loader"</code> to <code>class="loader"</code>. In the process, I saw another element with <code>id="page"</code> and changed that at the same time.</p><p>While still in the <code>index.html</code> file, I noticed a few <code>div</code> elements missing closing tags. It is astounding how permissive browsers are with that. Anyways, I cleaned those up and moved the <code><script></code> tag out of the <code>.heading</code> element to be a direct child of <code>body</code>. Let’s not make it any tougher to load our scripts.</p><p>Now that we’ve levelled the specificity playing field by moving IDs to classes, we can drop them into the <code>components</code> layer since a loader is indeed a reusable component:</p><pre><code>@layer components { .loader { width: 100%; height: 100vh; /* ... */ } .loader .loading { /* ... */ } .loader .loading span { /* ... */ } .loader .loading span:before { /* ... */ } } </code></pre><h3 id="animations">Animations</h3><p>Next are keyframes, and this was a bit tricky, but I eventually chose to isolate animations in their own new fifth layer and updated the layer order to include it:</p><div><pre><code>@layer reset, base, layout, components, utilities, animations; </code></pre></div><p>But why place <code>animations</code> as the last layer? Because animations are generally the last to run and shouldn’t be affected by style conflicts.</p><p>I searched the project’s styles for <code>@keyframes</code> and dumped them into the new layer:</p><pre><code>@layer animations { @keyframes loading { /* ... */ } @keyframes loading2 { /* ... */ } @keyframes pageShow { /* ... */ } } </code></pre><p>This gives a clear distinction of static styles from dynamic ones while also enforcing reusability.</p><h3 id="layouts">Layouts</h3><p>The <code>#page</code> selector also has the same issue as <code>#id</code>, and since we fixed it in the HTML earlier, we can modify it to <code>.page</code> and drop it in the <code>layout</code> layer, as its main purpose is to control the initial visibility of the content:</p><pre><code>@layer layout { .page { display: none; } } </code></pre><h3 id="custom-scrollbars">Custom Scrollbars</h3><p>Where do we put these? Scrollbars are global elements that persist across the site. This might be a gray area, but I’d say it fits perfectly in <code>@layer base</code> since it’s a global, default feature.</p><pre><code>@layer base { /* ... */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: #0e0e0f; } ::-webkit-scrollbar-thumb { background: #5865f2; border-radius: 100px; } ::-webkit-scrollbar-thumb:hover { background: #202225; } } </code></pre><p>I also removed the <code>!important</code> keywords as I came across them.</p><h3 id="navigation">Navigation</h3><p>The <code>nav</code> element is pretty straightforward, as it is the main structure container that defines the position and dimensions of the navigation bar. It should definitely go in the <code>layout</code> layer:</p><pre><code>@layer layout { /* ... */ nav { display: flex; height: 55px; width: 100%; padding: 0 50px; /* Consistent horizontal padding */ /* ... */ } } </code></pre><h3 id="logo">Logo</h3><p>We have three style blocks that are tied to the logo: <code>nav .logo</code>, <code>.logo img</code>, and <code>#botLogo</code>. These names are redundant and could benefit from inheritance component reusability.</p><p>Here’s how I’m approaching it:</p><ol><li>The <code>nav .logo</code> is overly specific since the logo can be reused in other places. I dropped the <code>nav</code> so that the selector is just <code>.logo</code>. There was also an <code>!important</code> keyword in there, so I removed it.</li><li>I updated <code>.logo</code> to be a Flexbox container to help position <code>.logo img</code>, which was previously set with less flexible absolute positioning.</li><li>The <code>#botLogo</code> ID is declared twice, so I merged the two rulesets into one and lowered its specificity by making it a <code>.botLogo</code> class. And, of course, I updated the HTML to replace the ID with the class.</li><li>The <code>.logo img</code> selector becomes <code>.botLogo</code>, making it the base class for styling all instances of the logo.</li></ol><p>Now, we’re left with this:</p><pre><code>/* initially .logo img */ .botLogo { border-radius: 50%; height: 40px; border: 2px solid #5865f2; } /* initially #botLogo */ .botLogo { border-radius: 50%; width: 180px; /* ... */ } </code></pre><p>The difference is that one is used in the navigation and the other in the hero section heading. We can transform the second <code>.botLogo</code> by slightly increasing the specificity with a <code>.heading .botLogo</code> selector. We may as well clean up any duplicated styles as we go.</p><p>Let’s place the entire code in the <code>components</code> layer as we’ve successfully turned the logo into a reusable component:</p><div><pre><code>@layer components { /* ... */ .logo { font-size: 30px; font-weight: bold; color: #fff; display: flex; align-items: center; gap: 10px; } .botLogo { aspect-ratio: 1; /* maintains square dimensions with width */ border-radius: 50%; width: 40px; border: 2px solid #5865f2; } .heading .botLogo { width: 180px; height: 180px; background-color: #5865f2; box-shadow: 0px 0px 8px 2px rgba(88, 101, 242, 0.5); /* ... */ } } </code></pre></div><p>This was a bit of work! But now the logo is properly set up as a component that fits perfectly in the new layer architecture.</p><h3 id="navigation-list">Navigation List</h3><p>This is a typical navigation pattern. Take an unordered list (<code><ul></code>) and turn it into a flexible container that displays all of the list items horizontally on the same row (with wrapping allowed). It’s a type of navigation that can be reused, which belongs in the <code>components</code> layer. But there’s a little refactoring to do before we add it.</p><p>There’s already a <code>.mainMenu</code> class, so let’s lean into that. We’ll swap out any <code>nav ul</code> selectors with that class. Again, it keeps specificity low while making it clearer what that element does.</p><pre><code>@layer components { /* ... */ .mainMenu { display: flex; flex-wrap: wrap; list-style: none; } .mainMenu li { margin: 0 4px; } .mainMenu li a { color: #fff; text-decoration: none; font-size: 16px; /* ... */ } .mainMenu li a:where(.active, .hover) { color: #fff; background: #1d1e21; } .mainMenu li a.active:hover { background-color: #5865f2; } } </code></pre><p>There are also two buttons in the code that are used to toggle the navigation between “open” and “closed” states when the navigation is collapsed on smaller screens. It’s tied specifically to the <code>.mainMenu</code> component, so we’ll keep everything together in the <code>components</code> layer. We can combine and simplify the selectors in the process for cleaner, more readable styles:</p><pre><code>@layer components { /* ... */ nav:is(.openMenu, .closeMenu) { font-size: 25px; display: none; cursor: pointer; color: #fff; } } </code></pre><p>I also noticed that several other selectors in the CSS were not used anywhere in the HTML. So, I removed those styles to keep things trim. There are <a href="https://css-tricks.com/how-do-you-remove-unused-css-from-a-site/">automated ways to go about this</a>, too.</p><h3 id="media-queries">Media Queries</h3><p>Should media queries have a dedicated layer (<code>@layer responsive</code>), or should they be in the same layer as their target elements? I really struggled with that question while refactoring the styles for this project. I did some research and testing, and my verdict is the latter, that <strong>media queries ought to be in the same layer as the elements they affect</strong>.</p><p>My reasoning is that keeping them together:</p><ul><li>Maintains responsive styles with their base element styles,</li><li>Makes overrides predictable, and</li><li>Flows well with component-based architecture common in modern web development.</li></ul><p>However, it also means <strong>responsive logic</strong> is scattered across layers. But it beats the one with a gap between the layer where elements are styled and the layer where their responsive behaviors are managed. That’s a deal-breaker for me because it’s way too easy to update styles in one layer and forget to update their corresponding responsive style in the responsive layer.</p><p>The other big point is that media queries in the same layer have <strong>the same priority</strong> as their elements. This is consistent with my overall goal of keeping the CSS Cascade simple and predictable, free of style conflicts.</p><p>Plus, the <a href="https://css-tricks.com/tag/nesting/">CSS nesting syntax</a> makes the relationship between media queries and elements super clear. Here’s an abbreviated example of how things look when we nest media queries in the <code>components</code> layer:</p><pre><code>@layer components { .mainMenu { display: flex; flex-wrap: wrap; list-style: none; } @media (max-width: 900px) { .mainMenu { width: 100%; text-align: center; height: 100vh; display: none; } } } </code></pre><p>This also allows me to nest a component’s child element styles (e.g., <code>nav .openMenu</code> and <code>nav .closeMenu</code>).</p><pre><code>@layer components { nav { &amp;.openMenu { display: none; @media (max-width: 900px) { &amp;.openMenu { display: block; } } } } } </code></pre><h3 id="typography-buttons">Typography &amp; Buttons</h3><p>The <code>.title</code> and <code>.subtitle</code> can be seen as typography components, so they and their responsive associates go into — you guessed it — the <code>components</code> layer:</p><pre><code>@layer components { .title { font-size: 40px; font-weight: 700; /* etc. */ } .subtitle { color: rgba(255, 255, 255, 0.75); font-size: 15px; /* etc.. */ } @media (max-width: 420px) { .title { font-size: 30px; } .subtitle { font-size: 12px; } } } </code></pre><p>What about buttons? Like many website’s this one has a class, <code>.btn</code>, for that component, so we can chuck those in there as well:</p><pre><code>@layer components { .btn { color: #fff; background-color: #1d1e21; font-size: 18px; /* etc. */ } .btn-primary { background-color: #5865f2; } .btn-secondary { transition: all 0.3s ease-in-out; } .btn-primary:hover { background-color: #5865f2; box-shadow: 0px 0px 8px 2px rgba(88, 101, 242, 0.5); /* etc. */ } .btn-secondary:hover { background-color: #1d1e21; background-color: rgba(88, 101, 242, 0.7); } @media (max-width: 420px) { .btn { font-size: 14px; margin: 2px; padding: 8px 13px; } } @media (max-width: 335px) { .btn { display: flex; flex-direction: column; } } } </code></pre><h3 id="the-final-layer">The Final Layer</h3><p>We haven’t touched the <code>utilities</code> layer yet! I’ve reserved this layer for helper classes that are designed for specific purposes, like hiding content — or, in this case, there’s a <code>.noselect</code> class that fits right in. It has a single reusable purpose: to disable selection on an element.</p><p>So, that’s going to be the only style rule in our <code>utilities</code> layer:</p><pre><code>@layer utilities { .noselect { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -webkit-user-drag: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } } </code></pre><p>And that’s it! We’ve completely refactored the CSS of a real-world project to use CSS Cascade Layers. You can compare <a href="https://codepen.io/vayospot/pen/bNdoYdP">where we started</a> with the <a href="https://codepen.io/vayospot/pen/XJbeVdB">final code</a>.</p><h2 id="it-wasn-t-all-easy">It Wasn’t All Easy</h2><p>That’s not to say that working with Cascade Layers was challenging, but there were some sticky points in the process that forced me to pause and carefully think through what I was doing.</p><p>I kept some notes as I worked:</p><ul><li><strong>It’s tough to determine where to start with an existing project.</strong><br></br>However, by defining the layers first and setting their priority levels, I had a framework for deciding how and where to move specific styles, even though I was not totally familiar with the existing CSS. That helped me avoid situations where I might second-guess myself or define extra, unnecessary layers.</li><li><strong>Browser support is still a thing!</strong><br></br>I mean, Cascade Layers enjoy 94% support coverage as I’m writing this, but you might be one of those sites that needs to accommodate legacy browsers that are unable to support layered styles.</li><li><strong>It wasn’t clear where media queries fit into the process.</strong><br></br>Media queries put me on the spot to find where they work best: nested in the same layers as their selectors, or in a completely separate layer? I went with the former, as you know.</li><li><strong>The <code>!important</code> keyword is a juggling act.</strong><br></br>They invert the entire layering priority system, and this project was littered with instances. Once you start chipping away at those, the existing CSS architecture erodes and requires a balance between refactoring the code and fixing what’s already there to know exactly how styles cascade.</li></ul><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aOverall,%20refactoring%20a%20codebase%20for%20CSS%20Cascade%20Layers%20is%20a%20bit%20daunting%20at%20first%20glance.%20The%20important%20thing,%20though,%20is%20to%20acknowledge%20that%20it%20isn%e2%80%99t%20really%20the%20layers%20that%20complicate%20things,%20but%20the%20existing%20codebase.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fintegrating-css-cascade-layers-existing-project%2f">Overall, refactoring a codebase for CSS Cascade Layers is a bit daunting at first glance. The important thing, though, is to acknowledge that it isn’t really the layers that complicate things, but the existing codebase.</a></p></blockquote><p>It’s tough to completely overhaul someone’s existing approach for a new one, even if the new approach is elegant.</p><h2 id="where-cascade-layers-helped-and-didn-t">Where Cascade Layers Helped (And Didn’t)</h2><p>Establishing layers improved the code, no doubt. I’m sure there are some <strong>performance benchmarks</strong> in there since we were able to remove unused and conflicting styles, but the real win is in <strong>a more maintainable set of styles</strong>. It’s easier to find what you need, know what specific style rules are doing, and where to insert new styles moving forward.</p><p>At the same time, I wouldn’t say that Cascade Layers are a silver bullet solution. Remember, CSS is intrinsically tied to the HTML structure it queries. If the HTML you’re working with is unstructured and suffers from <code>div</code>-itus, then you can safely bet that the effort to untangle that mess is higher and involves rewriting markup at the same time.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aRefactoring%20CSS%20for%20cascade%20layers%20is%20most%20certainly%20worth%20the%20maintenance%20enhancements%20alone.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fintegrating-css-cascade-layers-existing-project%2f">Refactoring CSS for cascade layers is most certainly worth the maintenance enhancements alone.</a></p></blockquote><p>It may be “easier” to start from scratch and define layers as you work from the ground up because there’s less inherited overhead and technical debt to sort through. But if you have to start from an existing codebase, you might need to de-tangle the complexity of your styles first to determine exactly how much refactoring you’re looking at.</p><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/integrating-css-cascade-layers-existing-project/integrating-css-cascade-layers-existing-project.jpg" /><h1>Integrating CSS Cascade Layers To An Existing Project — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>16 min read</li><li><a href="http://www.smashingmagazine.com/category/css">CSS</a>, <a href="http://www.smashingmagazine.com/category/techniques">Techniques</a>, <a href="http://www.smashingmagazine.com/category/coding">Coding</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>The idea behind this is to share a full, unfiltered look at integrating CSS Cascade Layers into an existing legacy codebase. In practice, it’s about refactoring existing CSS to use cascade layers without breaking anything.</section></p><p>You can always get a fantastic overview of things in Stephenie Eckles’ article, “<a href="https://www.smashingmagazine.com/2022/01/introduction-css-cascade-layers/">Getting Started With CSS Cascade Layers</a>”. But let’s talk about the experience of integrating cascade layers into real-world code, the good, the bad, and the spaghetti.</p><p>I could have created a sample project for a classic walkthrough, but nah, that’s not how things work in the real world. I want to get our hands dirty, like inheriting code with styles that work and no one knows why.</p><p>Finding projects without cascade layers was easy. The tricky part was finding one that was messy enough to have specificity and organisation issues, but broad enough to illustrate different parts of cascade layers integration.</p><p>Ladies and gentlemen, I present you with this <a href="https://github.com/Drix10/discord-bot-web">Discord bot website</a> by <a href="https://github.com/Drix10">Drishtant Ghosh</a>. I’m deeply grateful to Drishtant for allowing me to use his work as an example. This project is a typical landing page with a navigation bar, a hero section, a few buttons, and a mobile menu.</p><figure><a href="https://files.smashing.media/articles/integrating-css-cascade-layers-existing-project/1-discord-bot-landing-page.png"><img alt="Discord Bot landing page, including a circular logo centered above a heading, text blub, then a row of three buttons." decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/integrating-css-cascade-layers-existing-project/1-discord-bot-landing-page.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/integrating-css-cascade-layers-existing-project/1-discord-bot-landing-page.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/integrating-css-cascade-layers-existing-project/1-discord-bot-landing-page.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/integrating-css-cascade-layers-existing-project/1-discord-bot-landing-page.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/integrating-css-cascade-layers-existing-project/1-discord-bot-landing-page.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/integrating-css-cascade-layers-existing-project/1-discord-bot-landing-page.png 2000w" width="800"></img></a><figcaption>(<a href="https://files.smashing.media/articles/integrating-css-cascade-layers-existing-project/1-discord-bot-landing-page.png">Large preview</a>)</figcaption></figure><p>You see how it looks perfect on the outside. Things get interesting, however, when we look at the CSS styles under the hood.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="understanding-the-project">Understanding The Project</h2><p>Before we start throwing <code>@layers</code> around, let’s get a firm understanding of what we’re working with. I <a href="https://codepen.io/vayospot/pen/bNdoYdP">cloned</a> the GitHub repo, and since our focus is working with CSS Cascade Layers, I’ll focus only on the main page, which consists of three files: <code>index.html</code>, <code>index.css</code>, and <code>index.js</code>.</p><p><strong>Note</strong>: <em>I didn’t include other pages of this project as it’d make this tutorial too verbose. However, you can refactor the other pages as an experiment.</em></p><p>The <code>index.css</code> file is over 450 lines of code, and skimming through it, I can see some red flags right off the bat:</p><ul><li>There’s a lot of code repetition with the same selectors pointing to the same HTML element.</li><li>There are quite a few <code>#id</code> selectors, which one might argue shouldn’t be used in CSS (and I am one of those people).</li><li><code>#botLogo</code> is defined twice and over 70 lines apart.</li><li>The <code>!important</code> keyword is used liberally throughout the code.</li></ul><p>And yet the site works. There is nothing “technically” wrong here, which is another reason CSS is a big, beautiful monster — errors are silent!</p><h2 id="planning-the-layer-structure">Planning The Layer Structure</h2><p>Now, some might be thinking, <em>“Can’t we simply move all of the styles into a single layer, like <code>@layer legacy</code> and call it a day?”</em></p><p>You could… but I don’t think you should.</p><p>Think about it: If more layers are added after the <code>legacy</code> layer, they <em>should</em> override the styles contained in the <code>legacy</code> layer because the specificity of layers is organized by priority, where the layers declared later carry higher priority.</p><pre><code>/* new is more specific */ @layer legacy, new; /* legacy is more specific */ @layer new, legacy; </code></pre><p>That said, we must remember that the site’s existing styles make liberal use of the <code>!important</code> keyword. And when that happens, the order of cascade layers gets reversed. So, even though the layers are outlined like this:</p><pre><code>@layer legacy, new; </code></pre><p>…any styles with an <code>!important</code> declaration suddenly shake things up. In this case, the priority order becomes:</p><ol><li><code>!important</code> styles in the <code>legacy</code> layer (most powerful),</li><li><code>!important</code> styles in the <code>new</code> layer,</li><li>Normal styles in the <code>new</code> layer,</li><li>Normal styles in the <code>legacy</code> layer (least powerful).</li></ol><p>I just wanted to clear that part up. Let’s continue.</p><p>We know that cascade layers handle specificity by creating an explicit order where each layer has a clear responsibility, and later layers always win.</p><p>So, I decided to split things up into five distinct layers:</p><ul><li><strong><code>reset</code></strong>: Browser default resets like <code>box-sizing</code>, margins, and paddings.</li><li><strong><code>base</code></strong>: Default styles of HTML elements, like <code>body</code>, <code>h1</code>, <code>p</code>, <code>a</code>, etc., including default typography and colours.</li><li><strong><code>layout</code></strong>: Major page structure stuff for controlling how elements are positioned.</li><li><strong><code>components</code></strong>: Reusable UI segments, like buttons, cards, and menus.</li><li><strong><code>utilities</code></strong>: Single helper modifiers that do just one thing and do it well.</li></ul><p>This is merely how I like to break things out and organize styles. Zell Liew, for example, <a href="https://css-tricks.com/composition-in-css/">has a different set of four buckets</a> that could be defined as layers.</p><p>There’s also the concept of dividing things up even further into <strong>sublayers</strong>:</p><pre><code>@layer components { /* sub-layers */ @layer buttons, cards, menus; } /* or this: */ @layer components.buttons, components.cards, components.menus; </code></pre><p>That might come in handy, but I also don’t want to overly abstract things. That might be a better strategy for a project that’s scoped to a well-defined design system.</p><p>Another thing we could leverage is <strong>unlayered styles</strong> and the fact that any styles not contained in a cascade layer get the highest priority:</p><pre><code>@layer legacy { a { color: red !important; } } @layer reset { a { color: orange !important; } } @layer base { a { color: yellow !important; } } /* unlayered */ a { color: green !important; } /* highest priority */ </code></pre><p>But I like the idea of keeping all styles organized in explicit layers because it keeps things <strong>modular</strong> and <strong>maintainable</strong>, at least in this context.</p><p>Let’s move on to adding cascade layers to this project.</p><h2 id="integrating-cascade-layers">Integrating Cascade Layers</h2><p>We need to define the layer order at the top of the file:</p><pre><code>@layer reset, base, layout, components, utilities; </code></pre><p>This makes it easy to tell which layer takes precedence over which (they get more priority from left to right), and now we can think in terms of layer responsibility instead of selector weight. Moving forward, I’ll proceed through the stylesheet from top to bottom.</p><p>First, I noticed that the <a href="https://fonts.google.com/specimen/Poppins?query=poppins">Poppins font</a> was imported in both the HTML and CSS files, so I removed the CSS import and left the one in <code>index.html</code>, as that’s generally recommended for quickly loading fonts.</p><p>Next is the universal selector (<code>*</code>) styles, which include <a href="https://css-tricks.com/box-sizing/">classic reset styles</a> that are perfect for <code>@layer reset</code>:</p><pre><code>@layer reset { * { margin: 0; padding: 0; box-sizing: border-box; } } </code></pre><p>With that out of the way, the <code>body</code> selector is next. I’m putting this into <code>@layer base</code> because it contains core styles for the project, like backgrounds and fonts:</p><div><pre><code>@layer base { body { background-image: url("bg.svg"); /* Renamed to bg.svg for clarity */ font-family: "Poppins", sans-serif; /* ... other styles */ } } </code></pre></div><p>The way I’m tackling this is that styles in the <code>base</code> layer should generally affect the whole document. So far, no page breaks or anything.</p><h3 id="swapping-ids-for-classes">Swapping IDs For Classes</h3><p>Following the <code>body</code> element selector is the page loader, which is defined as an ID selector, <code>#loader</code>.</p><blockquote>I’m a firm believer in using class selectors over ID selectors as much as possible. It keeps specificity low by default, which prevents specificity battles and <a href="https://css-tricks.com/the-difference-between-id-and-class/">makes the code a lot more maintainable</a>.</blockquote><p>So, I went into the <code>index.html</code> file and refactored elements with <code>id="loader"</code> to <code>class="loader"</code>. In the process, I saw another element with <code>id="page"</code> and changed that at the same time.</p><p>While still in the <code>index.html</code> file, I noticed a few <code>div</code> elements missing closing tags. It is astounding how permissive browsers are with that. Anyways, I cleaned those up and moved the <code><script></code> tag out of the <code>.heading</code> element to be a direct child of <code>body</code>. Let’s not make it any tougher to load our scripts.</p><p>Now that we’ve levelled the specificity playing field by moving IDs to classes, we can drop them into the <code>components</code> layer since a loader is indeed a reusable component:</p><pre><code>@layer components { .loader { width: 100%; height: 100vh; /* ... */ } .loader .loading { /* ... */ } .loader .loading span { /* ... */ } .loader .loading span:before { /* ... */ } } </code></pre><h3 id="animations">Animations</h3><p>Next are keyframes, and this was a bit tricky, but I eventually chose to isolate animations in their own new fifth layer and updated the layer order to include it:</p><div><pre><code>@layer reset, base, layout, components, utilities, animations; </code></pre></div><p>But why place <code>animations</code> as the last layer? Because animations are generally the last to run and shouldn’t be affected by style conflicts.</p><p>I searched the project’s styles for <code>@keyframes</code> and dumped them into the new layer:</p><pre><code>@layer animations { @keyframes loading { /* ... */ } @keyframes loading2 { /* ... */ } @keyframes pageShow { /* ... */ } } </code></pre><p>This gives a clear distinction of static styles from dynamic ones while also enforcing reusability.</p><h3 id="layouts">Layouts</h3><p>The <code>#page</code> selector also has the same issue as <code>#id</code>, and since we fixed it in the HTML earlier, we can modify it to <code>.page</code> and drop it in the <code>layout</code> layer, as its main purpose is to control the initial visibility of the content:</p><pre><code>@layer layout { .page { display: none; } } </code></pre><h3 id="custom-scrollbars">Custom Scrollbars</h3><p>Where do we put these? Scrollbars are global elements that persist across the site. This might be a gray area, but I’d say it fits perfectly in <code>@layer base</code> since it’s a global, default feature.</p><pre><code>@layer base { /* ... */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: #0e0e0f; } ::-webkit-scrollbar-thumb { background: #5865f2; border-radius: 100px; } ::-webkit-scrollbar-thumb:hover { background: #202225; } } </code></pre><p>I also removed the <code>!important</code> keywords as I came across them.</p><h3 id="navigation">Navigation</h3><p>The <code>nav</code> element is pretty straightforward, as it is the main structure container that defines the position and dimensions of the navigation bar. It should definitely go in the <code>layout</code> layer:</p><pre><code>@layer layout { /* ... */ nav { display: flex; height: 55px; width: 100%; padding: 0 50px; /* Consistent horizontal padding */ /* ... */ } } </code></pre><h3 id="logo">Logo</h3><p>We have three style blocks that are tied to the logo: <code>nav .logo</code>, <code>.logo img</code>, and <code>#botLogo</code>. These names are redundant and could benefit from inheritance component reusability.</p><p>Here’s how I’m approaching it:</p><ol><li>The <code>nav .logo</code> is overly specific since the logo can be reused in other places. I dropped the <code>nav</code> so that the selector is just <code>.logo</code>. There was also an <code>!important</code> keyword in there, so I removed it.</li><li>I updated <code>.logo</code> to be a Flexbox container to help position <code>.logo img</code>, which was previously set with less flexible absolute positioning.</li><li>The <code>#botLogo</code> ID is declared twice, so I merged the two rulesets into one and lowered its specificity by making it a <code>.botLogo</code> class. And, of course, I updated the HTML to replace the ID with the class.</li><li>The <code>.logo img</code> selector becomes <code>.botLogo</code>, making it the base class for styling all instances of the logo.</li></ol><p>Now, we’re left with this:</p><pre><code>/* initially .logo img */ .botLogo { border-radius: 50%; height: 40px; border: 2px solid #5865f2; } /* initially #botLogo */ .botLogo { border-radius: 50%; width: 180px; /* ... */ } </code></pre><p>The difference is that one is used in the navigation and the other in the hero section heading. We can transform the second <code>.botLogo</code> by slightly increasing the specificity with a <code>.heading .botLogo</code> selector. We may as well clean up any duplicated styles as we go.</p><p>Let’s place the entire code in the <code>components</code> layer as we’ve successfully turned the logo into a reusable component:</p><div><pre><code>@layer components { /* ... */ .logo { font-size: 30px; font-weight: bold; color: #fff; display: flex; align-items: center; gap: 10px; } .botLogo { aspect-ratio: 1; /* maintains square dimensions with width */ border-radius: 50%; width: 40px; border: 2px solid #5865f2; } .heading .botLogo { width: 180px; height: 180px; background-color: #5865f2; box-shadow: 0px 0px 8px 2px rgba(88, 101, 242, 0.5); /* ... */ } } </code></pre></div><p>This was a bit of work! But now the logo is properly set up as a component that fits perfectly in the new layer architecture.</p><h3 id="navigation-list">Navigation List</h3><p>This is a typical navigation pattern. Take an unordered list (<code><ul></code>) and turn it into a flexible container that displays all of the list items horizontally on the same row (with wrapping allowed). It’s a type of navigation that can be reused, which belongs in the <code>components</code> layer. But there’s a little refactoring to do before we add it.</p><p>There’s already a <code>.mainMenu</code> class, so let’s lean into that. We’ll swap out any <code>nav ul</code> selectors with that class. Again, it keeps specificity low while making it clearer what that element does.</p><pre><code>@layer components { /* ... */ .mainMenu { display: flex; flex-wrap: wrap; list-style: none; } .mainMenu li { margin: 0 4px; } .mainMenu li a { color: #fff; text-decoration: none; font-size: 16px; /* ... */ } .mainMenu li a:where(.active, .hover) { color: #fff; background: #1d1e21; } .mainMenu li a.active:hover { background-color: #5865f2; } } </code></pre><p>There are also two buttons in the code that are used to toggle the navigation between “open” and “closed” states when the navigation is collapsed on smaller screens. It’s tied specifically to the <code>.mainMenu</code> component, so we’ll keep everything together in the <code>components</code> layer. We can combine and simplify the selectors in the process for cleaner, more readable styles:</p><pre><code>@layer components { /* ... */ nav:is(.openMenu, .closeMenu) { font-size: 25px; display: none; cursor: pointer; color: #fff; } } </code></pre><p>I also noticed that several other selectors in the CSS were not used anywhere in the HTML. So, I removed those styles to keep things trim. There are <a href="https://css-tricks.com/how-do-you-remove-unused-css-from-a-site/">automated ways to go about this</a>, too.</p><h3 id="media-queries">Media Queries</h3><p>Should media queries have a dedicated layer (<code>@layer responsive</code>), or should they be in the same layer as their target elements? I really struggled with that question while refactoring the styles for this project. I did some research and testing, and my verdict is the latter, that <strong>media queries ought to be in the same layer as the elements they affect</strong>.</p><p>My reasoning is that keeping them together:</p><ul><li>Maintains responsive styles with their base element styles,</li><li>Makes overrides predictable, and</li><li>Flows well with component-based architecture common in modern web development.</li></ul><p>However, it also means <strong>responsive logic</strong> is scattered across layers. But it beats the one with a gap between the layer where elements are styled and the layer where their responsive behaviors are managed. That’s a deal-breaker for me because it’s way too easy to update styles in one layer and forget to update their corresponding responsive style in the responsive layer.</p><p>The other big point is that media queries in the same layer have <strong>the same priority</strong> as their elements. This is consistent with my overall goal of keeping the CSS Cascade simple and predictable, free of style conflicts.</p><p>Plus, the <a href="https://css-tricks.com/tag/nesting/">CSS nesting syntax</a> makes the relationship between media queries and elements super clear. Here’s an abbreviated example of how things look when we nest media queries in the <code>components</code> layer:</p><pre><code>@layer components { .mainMenu { display: flex; flex-wrap: wrap; list-style: none; } @media (max-width: 900px) { .mainMenu { width: 100%; text-align: center; height: 100vh; display: none; } } } </code></pre><p>This also allows me to nest a component’s child element styles (e.g., <code>nav .openMenu</code> and <code>nav .closeMenu</code>).</p><pre><code>@layer components { nav { &amp;.openMenu { display: none; @media (max-width: 900px) { &amp;.openMenu { display: block; } } } } } </code></pre><h3 id="typography-buttons">Typography &amp; Buttons</h3><p>The <code>.title</code> and <code>.subtitle</code> can be seen as typography components, so they and their responsive associates go into — you guessed it — the <code>components</code> layer:</p><pre><code>@layer components { .title { font-size: 40px; font-weight: 700; /* etc. */ } .subtitle { color: rgba(255, 255, 255, 0.75); font-size: 15px; /* etc.. */ } @media (max-width: 420px) { .title { font-size: 30px; } .subtitle { font-size: 12px; } } } </code></pre><p>What about buttons? Like many website’s this one has a class, <code>.btn</code>, for that component, so we can chuck those in there as well:</p><pre><code>@layer components { .btn { color: #fff; background-color: #1d1e21; font-size: 18px; /* etc. */ } .btn-primary { background-color: #5865f2; } .btn-secondary { transition: all 0.3s ease-in-out; } .btn-primary:hover { background-color: #5865f2; box-shadow: 0px 0px 8px 2px rgba(88, 101, 242, 0.5); /* etc. */ } .btn-secondary:hover { background-color: #1d1e21; background-color: rgba(88, 101, 242, 0.7); } @media (max-width: 420px) { .btn { font-size: 14px; margin: 2px; padding: 8px 13px; } } @media (max-width: 335px) { .btn { display: flex; flex-direction: column; } } } </code></pre><h3 id="the-final-layer">The Final Layer</h3><p>We haven’t touched the <code>utilities</code> layer yet! I’ve reserved this layer for helper classes that are designed for specific purposes, like hiding content — or, in this case, there’s a <code>.noselect</code> class that fits right in. It has a single reusable purpose: to disable selection on an element.</p><p>So, that’s going to be the only style rule in our <code>utilities</code> layer:</p><pre><code>@layer utilities { .noselect { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -webkit-user-drag: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } } </code></pre><p>And that’s it! We’ve completely refactored the CSS of a real-world project to use CSS Cascade Layers. You can compare <a href="https://codepen.io/vayospot/pen/bNdoYdP">where we started</a> with the <a href="https://codepen.io/vayospot/pen/XJbeVdB">final code</a>.</p><h2 id="it-wasn-t-all-easy">It Wasn’t All Easy</h2><p>That’s not to say that working with Cascade Layers was challenging, but there were some sticky points in the process that forced me to pause and carefully think through what I was doing.</p><p>I kept some notes as I worked:</p><ul><li><strong>It’s tough to determine where to start with an existing project.</strong><br></br>However, by defining the layers first and setting their priority levels, I had a framework for deciding how and where to move specific styles, even though I was not totally familiar with the existing CSS. That helped me avoid situations where I might second-guess myself or define extra, unnecessary layers.</li><li><strong>Browser support is still a thing!</strong><br></br>I mean, Cascade Layers enjoy 94% support coverage as I’m writing this, but you might be one of those sites that needs to accommodate legacy browsers that are unable to support layered styles.</li><li><strong>It wasn’t clear where media queries fit into the process.</strong><br></br>Media queries put me on the spot to find where they work best: nested in the same layers as their selectors, or in a completely separate layer? I went with the former, as you know.</li><li><strong>The <code>!important</code> keyword is a juggling act.</strong><br></br>They invert the entire layering priority system, and this project was littered with instances. Once you start chipping away at those, the existing CSS architecture erodes and requires a balance between refactoring the code and fixing what’s already there to know exactly how styles cascade.</li></ul><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aOverall,%20refactoring%20a%20codebase%20for%20CSS%20Cascade%20Layers%20is%20a%20bit%20daunting%20at%20first%20glance.%20The%20important%20thing,%20though,%20is%20to%20acknowledge%20that%20it%20isn%e2%80%99t%20really%20the%20layers%20that%20complicate%20things,%20but%20the%20existing%20codebase.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fintegrating-css-cascade-layers-existing-project%2f">Overall, refactoring a codebase for CSS Cascade Layers is a bit daunting at first glance. The important thing, though, is to acknowledge that it isn’t really the layers that complicate things, but the existing codebase.</a></p></blockquote><p>It’s tough to completely overhaul someone’s existing approach for a new one, even if the new approach is elegant.</p><h2 id="where-cascade-layers-helped-and-didn-t">Where Cascade Layers Helped (And Didn’t)</h2><p>Establishing layers improved the code, no doubt. I’m sure there are some <strong>performance benchmarks</strong> in there since we were able to remove unused and conflicting styles, but the real win is in <strong>a more maintainable set of styles</strong>. It’s easier to find what you need, know what specific style rules are doing, and where to insert new styles moving forward.</p><p>At the same time, I wouldn’t say that Cascade Layers are a silver bullet solution. Remember, CSS is intrinsically tied to the HTML structure it queries. If the HTML you’re working with is unstructured and suffers from <code>div</code>-itus, then you can safely bet that the effort to untangle that mess is higher and involves rewriting markup at the same time.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aRefactoring%20CSS%20for%20cascade%20layers%20is%20most%20certainly%20worth%20the%20maintenance%20enhancements%20alone.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fintegrating-css-cascade-layers-existing-project%2f">Refactoring CSS for cascade layers is most certainly worth the maintenance enhancements alone.</a></p></blockquote><p>It may be “easier” to start from scratch and define layers as you work from the ground up because there’s less inherited overhead and technical debt to sort through. But if you have to start from an existing codebase, you might need to de-tangle the complexity of your styles first to determine exactly how much refactoring you’re looking at.</p><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (Victor Ayomipo) <![CDATA[Designing For TV: Principles, Patterns And Practical Guidance (Part 2)]]> https://smashingmagazine.com/2025/09/designing-tv-principles-patterns-practical-guidance/ https://smashingmagazine.com/2025/09/designing-tv-principles-patterns-practical-guidance/ Thu, 04 Sep 2025 10:00:00 GMT <img src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/designing-tv-principles-patterns-practical-guidance.jpg" /><h1>Principles, Patterns And Practical Guidance (Part 2) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>23 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/tv">TV</a>, <a href="http://www.smashingmagazine.com/category/inspiration">Inspiration</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>After covering in detail the underlying interaction paradigms of TV experiences in <a href="https://www.smashingmagazine.com/2025/08/designing-tv-evergreen-pattern-shapes-tv-experiences/">Part 1</a>, it’s time to get practical. In the second part of the series, you’ll explore the building blocks of the “10-foot experience” and how to best utilise them in your designs.</section></div><p>Having covered the developmental history and legacy of TV in <a href="https://www.smashingmagazine.com/2025/08/designing-tv-evergreen-pattern-shapes-tv-experiences/"><strong>Part 1</strong></a>, let’s now delve into more practical matters. As a quick reminder, the “10-foot experience” and its reliance on the six core buttons of any remote form the basis of our efforts, and as you’ll see, most principles outlined simply reinforce the unshakeable foundations.</p><p>In this article, we’ll sift through the systems, account for layout constraints, and distill the guidelines to understand the essence of TV interfaces. Once we’ve collected all the main ingredients, we’ll see what we can do to elevate these inherently simplistic experiences.</p><p>Let’s dig in, and let’s get practical!</p><h2 id="the-systems">The Systems</h2><p>When it comes to hardware, TVs and set-top boxes are usually a few generations behind phones and computers. Their components are made to run lightweight systems optimised for viewing, energy efficiency, and longevity. Yet even within these constraints, different platforms offer varying performance profiles, conventions, and price points.</p><p>Some notable platforms/systems of today are:</p><ul><li><strong>Roku</strong>, the most affordable and popular, but severely bottlenecked by weak hardware.</li><li><strong>WebOS</strong>, most common on LG devices, relies on web standards and runs well on modest hardware.</li><li><strong>Android TV</strong>, considered very flexible and customisable, but relatively demanding hardware-wise.</li><li><strong>Amazon Fire</strong>, based on Android but with a separate ecosystem. It offers great smooth performance, but is slightly more limited than stock Android.</li><li><strong>tvOS</strong>, by Apple, offering a high-end experience followed by a high-end price with extremely low customizability.</li></ul><p>Despite their differences, all of the platforms above share something in common, and by now you’ve probably guessed that it has to do with <em>the remote</em>. Let’s take a closer look:</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/1-remotes.jpg"><img alt="Five TV remotes from left to right: Roku, LG WebOS, Philips Android TV, Amazon Fire TV, and Apple tvOS. Each features a directional pad, select button, and back button, thus showcasing the shared navigation layout across different platforms." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/1-remotes.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/1-remotes.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/1-remotes.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/1-remotes.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/1-remotes.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/1-remotes.jpg 2000w" width="800"></img></a><figcaption>Left to right: Roku, WebOS (LG), Android TV (Philips), Amazon Fire, and tvOS remotes. While they control different systems, their control schemes are exactly the same. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/1-remotes.jpg">Large preview</a>)</figcaption></figure><p>If these remotes were stripped down to just the D-pad, <kbd>OK</kbd>, and <kbd>BACK</kbd> buttons, they would still be capable of successfully navigating any TV interface. It is this shared control scheme that allows for the <a href="https://www.techtarget.com/whatis/definition/agnostic">agnostic approach</a> of this article with broadly applicable guidelines, regardless of the manufacturer.</p><p>Having already discussed the TV remote in detail in <a href="https://www.smashingmagazine.com/2025/08/designing-tv-evergreen-pattern-shapes-tv-experiences/"><strong>Part 1</strong></a>, let’s turn to the second part of the equation: the TV screen, its layout, and the fundamental building blocks of TV-bound experiences.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="tv-design-fundamentals">TV Design Fundamentals</h2><h3 id="the-screen">The Screen</h3><p>With almost one hundred years of legacy, TV has accumulated quite some baggage. One recurring topic in modern articles on TV design is the concept of “<a href="https://en.wikipedia.org/wiki/Overscan">overscan</a>” — a legacy concept from the era of cathode ray tube (<a href="https://en.wikipedia.org/wiki/Cathode-ray_tube">CRT</a>) screens. Back then, the lack of standards in production meant that television sets would often crop the projected image at its edges. To address this inconsistency, broadcasters created guidelines to keep important content from being cut off.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/2-safe-zones.jpg"><img alt="Diagram showing the TV screen safe area. The inner frame is labeled ‘Title Safe’ and the outer ‘Action Safe’, illustrating traditional TV overscan zones used to keep key content visible on all TV displays." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/2-safe-zones.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/2-safe-zones.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/2-safe-zones.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/2-safe-zones.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/2-safe-zones.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/2-safe-zones.jpg 2000w" width="800"></img></a><figcaption>Overscan guides on a 16:9 image. Broadcasters differentiate between title safe and action safe areas. (Photo by <a href="https://unsplash.com/photos/man-in-white-t-shirt-and-brown-pants-riding-skateboard-on-brown-sand-during-daytime-r1SwcagHVG0">Tom Morbey</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/2-safe-zones.jpg">Large preview</a>)</figcaption></figure><p>While overscan gets mentioned occasionally, we should call it what it really is — a thing of the past. Modern panels display content with greater precision, making thinking in terms of title and action safe areas rather archaic. Today, we can simply consider the <strong>margins</strong> and get the same results.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/3-tv-margins.jpg"><img alt="Diagram showing the TV red margin frames on all sides of an image, illustrating how overscan areas can be simplified into consistent screen margins for modern TV layouts." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/3-tv-margins.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/3-tv-margins.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/3-tv-margins.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/3-tv-margins.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/3-tv-margins.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/3-tv-margins.jpg 2000w" width="800"></img></a><figcaption>Simplifying overscan, we can turn it into margins. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/3-tv-margins.jpg">Large preview</a>)</figcaption></figure><p><a href="https://developer.android.com/design/ui/tv/guides/styles/layouts">Google calls for a 5% margin layout</a> and <a href="https://developer.apple.com/design/human-interface-guidelines/layout">Apple advises</a> a 60-point margin top and bottom, and 80 points on the sides in their Layout guidelines. The standard is not exactly clear, but the takeaway is simple: leave some breathing room between screen edge and content, like you would in any thoughtful layout.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/4-tvos-safe-zones.png"><img alt="Diagram showing the TV screen safe area. A dark central rectangle represents the usable safe zone, inset by 60 points from the top and bottom and 80 points from the left and right edges. These margins ensure content isn't clipped or hard to see on TVs with overscan." decoding="async" fetchpriority="low" height="469" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/4-tvos-safe-zones.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/4-tvos-safe-zones.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/4-tvos-safe-zones.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/4-tvos-safe-zones.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/4-tvos-safe-zones.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/4-tvos-safe-zones.png 2000w" width="800"></img></a><figcaption>Be prepared for a wide range of TV sizes and adhere to the screen’s safe area. Inset primary content 60 points from the top/bottom of the screen, and 80 points from the sides. (Image source: <a href="https://developer.apple.com/design/human-interface-guidelines/layout">Layout, Apple Developer Docs</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/4-tvos-safe-zones.png">Large preview</a>)</figcaption></figure><p>Having left some baggage behind, we can start considering what to put within and outside the defined bounds.</p><h3 id="the-layout">The Layout</h3><p>Considering the device is made for content consumption, streaming apps such as Netflix naturally come to mind. Broadly speaking, all these interfaces share a common layout structure where a vast collection of content is laid out in a simple <strong>grid</strong>.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/5-netflix-tv-ui.jpg"><img alt="Screenshot of Netflix’s TV interface showing horizontally scrolling content shelves with thumbnail images of shows and movies arranged in rows, illustrating a common layout pattern used in TV apps." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/5-netflix-tv-ui.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/5-netflix-tv-ui.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/5-netflix-tv-ui.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/5-netflix-tv-ui.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/5-netflix-tv-ui.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/5-netflix-tv-ui.jpg 2000w" width="800"></img></a><figcaption>The Netflix TV UI features ‘content shelves,’ a common design pattern for TV apps. (Photo by <a href="https://www.flatpanelshd.com/news.php?subaction=showfull&amp;id=1698138139">Rasmus Larsen</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/5-netflix-tv-ui.jpg">Large preview</a>)</figcaption></figure><p>These horizontally scrolling groups (sometimes referred to as “shelves”) resemble rows of a bookcase. Typically, they’ll contain dozens of items that don’t fit into the initial “fold”, so we’ll make sure the last visible item “peeks” from the edge, subtly indicating to the viewer there’s more content available if they continue scrolling.</p><p>If we were to define a standard 12-column layout grid, with a 2-column-wide item, we’d end up with something like this:</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/6-twelve-column-grid-layout.jpg"><img alt="12-column TV layout grid with two horizontal content shelves. Each shelf contains rectangular tiles, each spanning 2 columns. The tiles are aligned to the grid, and the last tile in each row extends beyond the visible screen area." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/6-twelve-column-grid-layout.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/6-twelve-column-grid-layout.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/6-twelve-column-grid-layout.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/6-twelve-column-grid-layout.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/6-twelve-column-grid-layout.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/6-twelve-column-grid-layout.jpg 2000w" width="800"></img></a><figcaption>Example of a 12-column layout with 80px margin on the sides. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/6-twelve-column-grid-layout.jpg">Large preview</a>)</figcaption></figure><p>As you can see, the last item falls outside the “safe” zone.</p><p><strong>Tip:</strong> A useful trick I discovered when designing TV interfaces was to utilise an <em>odd</em> number of columns. This allows the last item to fall within the defined margins and be more prominent while having little effect on the entire layout. We’ve concluded that overscan is not a prominent issue these days, yet an additional column in the layout helps <em>completely</em> circumvent it. Food for thought!</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/7-thirteen-column-grid-layout.jpg"><img alt="3-column TV layout grid with two horizontal content shelves and 80-pixel side margins. Each tile spans 2 columns. The 13th column allows more of the final tile in each row to be visible, though it still extends slightly beyond the screen edge." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/7-thirteen-column-grid-layout.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/7-thirteen-column-grid-layout.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/7-thirteen-column-grid-layout.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/7-thirteen-column-grid-layout.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/7-thirteen-column-grid-layout.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/7-thirteen-column-grid-layout.jpg 2000w" width="800"></img></a><figcaption>Example of a 13-column layout with 80px margin on the sides. One additional column within the set bounds gives more prominence to the last visible item on the shelf. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/7-thirteen-column-grid-layout.jpg">Large preview</a>)</figcaption></figure><h3 id="typography">Typography</h3><p>TV design requires us to practice restraint, and this becomes very apparent when working with type. All good typography practices apply to TV design too, but I’d like to point out two specific takeaways.</p><p>First, accounting for the distance, everything (including type) needs to <strong>scale up</strong>. Where 16–18px might suffice for web baseline text, 24px should be your starting point on TV, with the rest of the scale increasing proportionally.</p><blockquote>“Typography can become especially tricky in 10-ft experiences. When in doubt, <strong>go larger</strong>.”<p>— <a href="https://marvelapp.com/blog/designing-for-television/">Molly Lafferty</a> (Marvel Blog)</p></blockquote><p>With that in mind, the second piece of advice would be to <strong>start with a small 5–6 size scale</strong> and adjust if necessary. The simplicity of a TV experience can, and should, be reflected in the typography itself, and while small, such a scale will do all the “heavy lifting” if set correctly.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/8-type-application.jpg"><img alt="A type scale with five text sizes and weights, demonstrating a simplified system suitable for TV interfaces." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/8-type-application.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/8-type-application.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/8-type-application.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/8-type-application.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/8-type-application.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/8-type-application.jpg 2000w" width="800"></img></a><figcaption>A 5–6 size type scale can carry the “burden” of a TV interface. (Image source: <a href="https://www.figma.com/community/file/1533026722522937199">TV UI Base Type Scale</a>, by Milan Balać) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/8-type-application.jpg">Large preview</a>)</figcaption></figure><p>What you see in the example above is a scale I reduced from <a href="https://developer.android.com/design/ui/tv/guides/styles/typography">Google</a> and <a href="https://developer.apple.com/design/human-interface-guidelines/typography">Apple</a> guidelines, with a few size adjustments. Simple as it is, this scale served me well for years, and I have no doubt it could do the same for you.</p><h4 id="freebie">Freebie</h4><p>If you’d like to use my basic reduced type scale Figma design file for kicking off your own TV project, feel free to do so!</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/9-figma-freebie.jpg"><img alt="A screenshot of the first page in the Figma design file by the author Milan Balać. Below the screenshot there is a link which points to the Figma file." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/9-figma-freebie.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/9-figma-freebie.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/9-figma-freebie.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/9-figma-freebie.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/9-figma-freebie.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/9-figma-freebie.jpg 2000w" width="800"></img></a><figcaption><a href="https://www.figma.com/community/file/1533026722522937199">TV UI Base Type Scale</a> (Figma Design file, <a href="https://creativecommons.org/licenses/by/4.0/">CC-BY</a> license) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/9-figma-freebie.jpg">Large preview</a>)</figcaption></figure><h3 id="color">Color</h3><p>Imagine watching TV at night with the device being the only source of light in the room. You open up the app drawer and select a new streaming app; it loads into a pretty splash screen, and — bam! — a bright interface opens up, which, amplified by the dark surroundings, blinds you for a fraction of a second. That right there is our main consideration when using color on TV.</p><p>Built for cinematic experiences and often used in dimly lit environments, TVs lend themselves perfectly to darker and more subdued interfaces. Bright colours, especially pure white (<code>#ffffff</code>), will translate to maximum luminance and may be straining on the eyes. As a general principle, you should <strong>rely on a more muted color palette</strong>. Slightly tinting brighter elements with your brand color, or undertones of yellow to imitate natural light, will produce less visually unsettling results.</p><p>Finally, without a pointer or touch capabilities, it’s crucial to <strong>clearly highlight</strong> interactive elements. While using bright colors as backdrops may be overwhelming, using them sparingly to highlight element states in a highly contrasting way will work perfectly.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/11-button-focus-basic.gif"><img alt="A row of buttons, with one button animating into a high-contrast focus state, where its color shifts from a dark tone to a bright, light color against a dark background. This illustrates how TV interfaces visually emphasize the selected element." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/10-button-focus-basic-800.gif" width="800"></img></a><figcaption>A focus state is the underlying principle of TV navigation. Most commonly, it relies on creating high contrast between the focused and unfocused elements. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/11-button-focus-basic.gif">Large preview</a>)</figcaption></figure><p>This highlighting of UI elements is what TV leans on heavily — and it is what we’ll discuss next.</p><h3 id="focus">Focus</h3><p>In <a href="https://www.smashingmagazine.com/2025/08/designing-tv-evergreen-pattern-shapes-tv-experiences/">Part 1</a>, we have covered how interacting through a remote implies a certain detachment from the interface, mandating reliance on a focus state to carry the burden of TV interaction. This is done by visually accenting elements to anchor the user’s eyes and map any subsequent movement within the interface.</p><p>If you have ever written HTML/CSS, you might recall the use of the <code>:focus</code> <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:focus">CSS pseudo-class</a>. While it’s primarily an accessibility feature on the web, it’s the <strong>core of interaction</strong> on TV, with more flexibility added in the form of two additional directions thanks to a dedicated D-pad.</p><h4 id="focus-styles">Focus Styles</h4><p>There are a few standard ways to style a focus state. Firstly, there’s <strong>scaling</strong> — enlarging the focused element, which creates the illusion of depth by moving it closer to the viewer.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/13-focus-scale-base.gif"><img alt="A horizontal row of image cards where one enlarges slightly on focus, demonstrating a common TV UI technique where focused elements scale up to indicate selection, especially when using image-only content." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/12-focus-scale-base-800.gif" width="800"></img></a><figcaption>Example of scaling elements on focus. This is especially common in cases where only images are used for focusable elements. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/13-focus-scale-base.gif">Large preview</a>)</figcaption></figure><p>Another common approach is to <strong>invert</strong> background and text colors.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/15-focus-bg-base.gif"><img alt="A horizontal row of image cards where one changes its background from dark to light on focus, demonstrating color inversion as a common technique for highlighting selected cards in TV interfaces." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/14-focus-bg-base-800.gif" width="800"></img></a><figcaption>Color inversion on focus, common for highlighting cards. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/15-focus-bg-base.gif">Large preview</a>)</figcaption></figure><p>Finally, a <strong>border</strong> may be added around the highlighted element.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/17-focus-border-base.gif"><img alt="A horizontal row of image cards where one displays a bright border on focus, illustrating how outlining is used in TV interfaces to visually highlight the selected element." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/16-focus-bg-base-800.gif" width="800"></img></a><figcaption>Example of border highlights on focus. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/17-focus-border-base.gif">Large preview</a>)</figcaption></figure><p>These styles, used independently or in various combinations, appear in all TV interfaces. While execution may be constrained by the specific system, the purpose remains the same: <strong>clear and intuitive feedback, even from across the room</strong>.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/19-focus-combo.gif"><img alt="A horizontal row of three image cards, each demonstrating a different combination of focus styles: the first scales and changes background color, the second changes background color and adds a border, and the third scales and adds a border — illustrating how focus states can be mixed for visual emphasis in TV interfaces." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/18-focus-combo-800.gif" width="800"></img></a><figcaption>The three basic styles can be combined to produce more focus state variants. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/19-focus-combo.gif">Large preview</a>)</figcaption></figure><p>Having set the foundations of interaction, layout, and movement, we can start building on top of them. The next chapter will cover the most common elements of a TV interface, their variations, and a few tips and tricks for button-bound navigation.</p><h2 id="common-tv-ui-components">Common TV UI Components</h2><p>Nowadays, the core user journey on television revolves around browsing (or searching through) a content library, selecting an item, and opening a dedicated screen to watch or listen.</p><p>This translates into a few fundamental screens:</p><ul><li><strong>Library</strong> (or Home) for content browsing,</li><li><strong>Search</strong> for specific queries, and</li><li><strong>A player screen</strong> focused on content playback.</li></ul><p>These screens are built with a handful of components optimized for the <a href="https://en.wikipedia.org/wiki/10-foot_user_interface">10-foot experience</a>, and while they are often found on other platforms too, it’s worth examining how they differ on TV.</p><p>Appearing as a horizontal bar along the top edge of the screen, or as a vertical sidebar, the <strong>menu</strong> helps move between the different screens of an app. While its orientation mostly depends on the specific system, it does seem TV favors the side menu a bit more.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/20-netflix-sidebar-expanded.jpg"><img alt="Netflix TV interface with an expanded vertical side menu overlaying content tiles, showing navigation options like Watch Now, Browse, and Search, while dimming the background to keep focus on the menu." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/20-netflix-sidebar-expanded.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/20-netflix-sidebar-expanded.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/20-netflix-sidebar-expanded.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/20-netflix-sidebar-expanded.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/20-netflix-sidebar-expanded.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/20-netflix-sidebar-expanded.jpg 2000w" width="800"></img></a><figcaption>The Netflix side menu expanded. (Photo by <a href="https://variety.com/2019/digital/news/netflix-watch-now-test-1203431588/">Variety</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/20-netflix-sidebar-expanded.jpg">Large preview</a>)</figcaption></figure><p>Both menu types share a common issue: the farther the user navigates away from the menu (vertically, toward the bottom for top-bars; and horizontally, toward the right for sidebars), the more button presses are required to get back to it. Fortunately, usually a <kbd>Back</kbd> button shortcut is added to allow for immediate menu focus, which greatly improves usability.</p><figure><p><iframe allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" frameborder="0" src="https://player.vimeo.com/video/1115330235"></iframe></p><figcaption>Example of a top menu in Prime Video. As soon as focus is moved from the first shelf toward the bottom, the top menu disappears. Interestingly, Prime Video implemented both menus for different purposes: the sidebar for global navigation between screens, and the top menu for filtering.</figcaption></figure><figure><p><iframe allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" frameborder="0" src="https://player.vimeo.com/video/1115330478"></iframe></p><figcaption>While not without its flaws, the side menu remains persistently on the screen, no matter how far you move away from it. Paired with “Back” for quick refocusing, it offers a slightly more consistent experience.</figcaption></figure><p>That said, the problem will arise a lot sooner for top menus, which, paired with the issue of having to hide or fade the element, makes a <em>persistent sidebar</em> a more common pick in TV user interfaces, and allows for a more consistent experience.</p><h3 id="shelves-posters-and-cards">Shelves, Posters, And Cards</h3><p>We’ve already mentioned shelves when covering layouts; now let’s shed some more light on this topic. The “shelves” (horizontally scrolling groups) form the basis of TV content browsing and are commonly populated with posters in three different aspect ratios: <strong>2:3</strong>, <strong>16:9</strong>, and <strong>1:1</strong>.</p><p><strong>2:3</strong> posters are common in apps specializing in movies and shows. Their vertical orientation references traditional movie posters, harkening back to the cinematic experiences TVs are built for. Moreover, their narrow shape allows more items to be immediately visible in a row, and they rarely require any added text, with titles baked into the poster image.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/21-netflix-2-3-posters.jpg"><img alt="Grid of vertically oriented 2:3 Netflix posters showing various movie and show titles, illustrating the common use of poster-style imagery in TV interfaces for visually dense content browsing." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/21-netflix-2-3-posters.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/21-netflix-2-3-posters.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/21-netflix-2-3-posters.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/21-netflix-2-3-posters.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/21-netflix-2-3-posters.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/21-netflix-2-3-posters.jpg 2000w" width="800"></img></a><figcaption>Netflix 2:3 posters. (Photo by <a href="https://news.xbox.com/en-us/2023/05/10/join-the-netflix-xbox-insider-preview/">Xbox Wire</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/21-netflix-2-3-posters.jpg">Large preview</a>)</figcaption></figure><p><strong>16:9</strong> posters abide by the same principles but with a horizontal orientation. They are often paired with text labels, which effectively turn them into cards, commonly seen on platforms like YouTube. In the absence of dedicated poster art, they show stills or playback from the videos, matching the aspect ratio of the media itself.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/22-amazon-prime-16-9-posters.jpg"><img alt="Amazon Prime Video interface displaying a row of 16:9 horizontally oriented posters for various shows and movies, illustrating the use of media thumbnails with aspect ratios matching video content." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/22-amazon-prime-16-9-posters.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/22-amazon-prime-16-9-posters.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/22-amazon-prime-16-9-posters.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/22-amazon-prime-16-9-posters.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/22-amazon-prime-16-9-posters.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/22-amazon-prime-16-9-posters.jpg 2000w" width="800"></img></a><figcaption>Amazon Prime 16:9 posters. (Photo by <a href="https://techcrunch.com/2022/06/15/amazon-revamps-fire-tv-user-interface-with-new-home-screen-improved-navigation-and-more/">Amazon</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/22-amazon-prime-16-9-posters.jpg">Large preview</a>)</figcaption></figure><p><strong>1:1</strong> posters are often found in music apps like Spotify, their shape reminiscent of album art and vinyl sleeves. These squares often get used in other instances, like representing channel links or profile tiles, giving more visual variety to the interface.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/23-spotify-1-1-posters.jpg"><img alt="Spotify TV interface displaying square 1:1 posters for playlists and albums in a grid layout, reflecting the visual style of album art and offering a consistent, music-focused browsing experience." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/23-spotify-1-1-posters.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/23-spotify-1-1-posters.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/23-spotify-1-1-posters.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/23-spotify-1-1-posters.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/23-spotify-1-1-posters.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/23-spotify-1-1-posters.jpg 2000w" width="800"></img></a><figcaption>Spotify 1:1 posters. (Photo by <a href="https://www.linkedin.com/pulse/today-we-released-spotify-apple-tv-henrik-adler/">Henrik Adler</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/23-spotify-1-1-posters.jpg">Large preview</a>)</figcaption></figure><p>All of the above can co-exist within a single app, allowing for richer interfaces and breaking up otherwise uniform content libraries.</p><p>And speaking of breaking up content, let’s see what we can do with <strong>spotlights</strong>!</p><h3 id="spotlights">Spotlights</h3><p>Typically taking up the entire width of the screen, these eye-catching components will highlight a new feature or a promoted piece of media. In a sea of uniform shelves, they can be placed strategically to introduce aesthetic diversity and disrupt the monotony.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/24-spotlight-main.jpg"><img alt="Large spotlight component with abstract background art and a call-to-action message, spanning the full width of the row to draw attention and visually break up the content grid in a TV interface." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/24-spotlight-main.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/24-spotlight-main.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/24-spotlight-main.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/24-spotlight-main.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/24-spotlight-main.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/24-spotlight-main.jpg 2000w" width="800"></img></a><figcaption>Example of a large spotlight component, with “Create Account” and “Login” buttons. (Photo by <a href="https://unsplash.com/photos/multicolored-abstract-painting-QwoNAhbmLLo">Joel Filipe</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/24-spotlight-main.jpg">Large preview</a>)</figcaption></figure><p>A spotlight can be a focusable element by itself, or it could expose several actions thanks to its generous space. In my ventures into TV design, I relied on a few different spotlight sizes, which allowed me to place multiples into a single row, all with the purpose of highlighting different aspects of the app, without breaking the form to which viewers were used.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/25-spotlight-half.jpg"><img alt="Two horizontally arranged spotlight components, each featuring a large portrait, title, and call-to-action label, showing a smaller spotlight variant that fits two items per row while clearly indicating interactivity." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/25-spotlight-half.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/25-spotlight-half.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/25-spotlight-half.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/25-spotlight-half.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/25-spotlight-half.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/25-spotlight-half.jpg 2000w" width="800"></img></a><figcaption>Defining a few spotlight variants comes in handy — a smaller variant allows promoting two items per row while maintaining a strong visual presence. In this example, the entire element is focusable, but exposing an action label helps communicate what will happen upon selection. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/25-spotlight-half.jpg">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/26-spotlight-mini.jpg"><img alt="Two compact spotlight components arranged in a row, featuring large portraits and bold titles without action buttons — illustrating a minimized layout that maintains visual impact while saving vertical space." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/26-spotlight-mini.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/26-spotlight-mini.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/26-spotlight-mini.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/26-spotlight-mini.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/26-spotlight-mini.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/26-spotlight-mini.jpg 2000w" width="800"></img></a><figcaption>In their most compressed version, the spotlights reduce their vertical footprint, doing away with actions and focusing solely on visuals and titles to preserve space while still drawing attention. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/26-spotlight-mini.jpg">Large preview</a>)</figcaption></figure><p>Posters, cards, and spotlights shape the bulk of the visual experience and content presentation, but viewers still need a way to find specific titles. Let’s see how <strong>search</strong> and <strong>input</strong> are handled on TV.</p><h3 id="search-and-entering-text">Search And Entering Text</h3><p>Manually browsing through content libraries can yield results, but having the ability to <strong>search</strong> will speed things up — though not without some hiccups.</p><p>TVs allow for text input in the form of on-screen keyboards, similar to the ones found in modern smartphones. However, inputting text with a remote control is quite inefficient given the restrictiveness of its control scheme. For example, typing “hey there” on a mobile keyboard requires 9 keystrokes, but about 38 on a TV (!) due to the movement between characters and their selection.</p><p>Typing with a D-pad may be an arduous task, but at the same time, having the ability to search is unquestionably useful.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/27-roku-search.jpg"><img alt="Roku TV interface showing an on-screen grid keyboard used for text input, with a search query partially entered and matching content displayed on the right. This illustrates the standard grid layout commonly used for TV search." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/27-roku-search.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/27-roku-search.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/27-roku-search.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/27-roku-search.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/27-roku-search.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/27-roku-search.jpg 2000w" width="800"></img></a><figcaption>Example of an on-screen keyboard for Roku. The grid keyboard layout is the most common on generally all platforms, aside from tvOS. (Photo by <a href="https://developer.roku.com/docs/developer-program/discovery/search/implementing-search.md">Roku</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/27-roku-search.jpg">Large preview</a>)</figcaption></figure><p>Luckily for us, keyboards are accounted for in all systems and usually come in two varieties. We’ve got the grid layouts used by most platforms and a horizontal layout in support of the touch-enabled and gesture-based controls on tvOS. Swiping between characters is significantly faster, but this is yet another pattern that can only be enhanced, not replaced.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/28-tvos-horizontal-keyboard.jpg"><img alt="tvOS on-screen keyboard with a horizontally scrolling layout of letters, numbers, and symbols, designed for gesture-based input using a touch-enabled remote." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/28-tvos-horizontal-keyboard.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/28-tvos-horizontal-keyboard.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/28-tvos-horizontal-keyboard.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/28-tvos-horizontal-keyboard.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/28-tvos-horizontal-keyboard.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/28-tvos-horizontal-keyboard.jpg 2000w" width="800"></img></a><figcaption>The tvOS horizontal keyboard is designed to support touch and gesture-enabled remote controllers. (Photo by <a href="https://arstechnica.com/gadgets/2016/03/mini-review-tvos-9-2-fixes-all-the-apple-tvs-biggest-problems/">Andrew Cunningham</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/28-tvos-horizontal-keyboard.jpg">Large preview</a>)</figcaption></figure><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aModernization%20has%20made%20things%20significantly%20easier,%20with%20search%20autocomplete%20suggestions,%20device%20pairing,%20voice%20controls,%20and%20remotes%20with%20physical%20keyboards,%20but%20on-screen%20keyboards%20will%20likely%20remain%20a%20necessary%20fallback%20for%20quite%20a%20while.%20And%20no%20matter%20how%20cumbersome%20this%20fallback%20may%20be,%20we%20as%20designers%20need%20to%20consider%20it%20when%20building%20for%20TV.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fdesigning-tv-principles-patterns-practical-guidance%2f">Modernization has made things significantly easier, with search autocomplete suggestions, device pairing, voice controls, and remotes with physical keyboards, but on-screen keyboards will likely remain a necessary fallback for quite a while. And no matter how cumbersome this fallback may be, we as designers need to consider it when building for TV.</a></p></blockquote><h3 id="players-and-progress-bars">Players And Progress Bars</h3><p>While all the different sections of a TV app serve a purpose, <strong>the Player</strong> takes center stage. It’s where all the roads eventually lead to, and where viewers will spend the most time. It’s also one of the rare instances where focus gets lost, allowing for the interface to get out of the way of enjoying a piece of content.</p><p>Arguably, players are the most complex features of TV apps, compacting all the different functionalities into a single screen. Take YouTube, for example, its player doesn’t just handle expected playback controls but also supports content browsing, searching, reading comments, reacting, and navigating to channels, all within a single screen.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/29-youtube-android-player.jpg"><img alt="YouTube TV player interface during video playback, displaying a range of controls including playback speed, quality, like/dislike, and related video thumbnails. This showcases the app’s extensive in-player functionality." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/29-youtube-android-player.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/29-youtube-android-player.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/29-youtube-android-player.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/29-youtube-android-player.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/29-youtube-android-player.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/29-youtube-android-player.jpg 2000w" width="800"></img></a><figcaption>The YouTube TV app features one of the most robust players out there. (Photo by <a href="https://www.androidpolice.com/2021/06/07/youtube-on-android-tv-just-added-the-feature-ive-been-wanting-for-years/">Rita El Khoury</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/29-youtube-android-player.jpg">Large preview</a>)</figcaption></figure><p>Compared to YouTube, Netflix offers a very lightweight experience guided by the nature of the app.</p><p>Still, every player has a basic set of controls, the foundation of which is the <strong>progress bar</strong>.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/30-netflix-player.jpg"><img alt="Netflix TV app media player interface shown during playback, featuring a minimalist design with only essential controls: pause, back, subtitles, skip, and a progress bar with time indicators. Compared to the more complex YouTube player, this stripped-down layout prioritizes simplicity and keeps the focus on the content." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/30-netflix-player.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/30-netflix-player.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/30-netflix-player.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/30-netflix-player.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/30-netflix-player.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/30-netflix-player.jpg 2000w" width="800"></img></a><figcaption>Netflix TV app media player. (Photo by <a href="https://play.google.com/store/apps/details?id=com.netflix.ninja">Netflix</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/30-netflix-player.jpg">Large preview</a>)</figcaption></figure><p>The progress bar UI element serves as a visual indicator for content duration. During interaction, focus doesn’t get placed on the bar itself, but on a movable knob known as the “scrubber.” It is by moving the scrubber left and right, or stopping it in its tracks, that we can control playback.</p><p>Another indirect method of invoking the progress bar is with the good old <kbd>Play</kbd> and <kbd>Pause</kbd> buttons. Rooted in the mechanical era of tape players, the universally understood triangle and two vertical bars are as integral to the TV legacy as the D-pad. No matter how minimalist and sleek the modern player interface may be, these symbols remain a staple of the viewing experience.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/31-physical-playback-controls.jpg"><img alt="Close-up of a player showing physical playback control buttons: record (red dot), play (right-pointing triangle), stop (square), rewind (double left arrows), and fast forward (double right arrows). Japanese labels appear above each button. (Note: The pause button (two vertical bars) is not shown in the picture.)" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/31-physical-playback-controls.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/31-physical-playback-controls.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/31-physical-playback-controls.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/31-physical-playback-controls.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/31-physical-playback-controls.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/31-physical-playback-controls.jpg 2000w" width="800"></img></a><figcaption>Transcending language barriers, the simple symbols for playback controls are universally recognisable. (Photo by <a href="https://commons.wikimedia.org/wiki/File:SONY_ICZ-R50_025_(5434919279).jpg">TAKA@P.P.R.S</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/31-physical-playback-controls.jpg">Large preview</a>)</figcaption></figure><p>The presence of a scrubber may also indicate the type of content. Video on demand allows for the full set of playback controls, while live streams (unless DVR is involved) will do away with the scrubber since viewers won’t be able to rewind or fast-forward.</p><p>Earlier iterations of progress bars often came bundled with a set of playback control buttons, but as viewers got used to the tools available, these controls often got consolidated into the progress bar and scrubber themselves.</p><h3 id="bringing-it-all-together">Bringing It All Together</h3><p>With the building blocks out of the box, we’ve got everything necessary for a basic but functional TV app. Just as the six core buttons make remote navigation possible, the components and principles outlined above help guide purposeful TV design. The more context you bring, the more you’ll be able to expand and combine these basic principles, creating an experience unique to your needs.</p><p>Before we wrap things up, I’d like to share a few tips and tricks I discovered along the way — tips and tricks which I wish I had known from the start. Regardless of how simple or complex your idea may be, these may serve you as useful tools to help add depth, polish, and finesse to any TV experience.</p><h2 id="thinking-beyond-the-basics">Thinking Beyond The Basics</h2><p>Like any platform, TV has a set of constraints that we abide by when designing. But sometimes these norms are applied without question, making the already limited capabilities feel even more restraining. Below are a handful of less obvious ideas that can help you design more thoughtfully and flexibly for the big screen.</p><h3 id="long-press">Long Press</h3><p>Most modern remotes support <strong>press-and-hold gestures</strong> as a subtle way to enhance the functionality, especially on remotes with fewer buttons available.</p><p>For example, holding directional buttons when browsing content speeds up scrolling, while holding <kbd>Left</kbd>/<kbd>Right</kbd> during playback speeds up timeline seeking. In many apps, a single press of the <kbd>OK</kbd> button opens a video, but holding it for longer opens a contextual menu with additional actions.</p><figure><p><iframe allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" frameborder="0" src="https://player.vimeo.com/video/1115333599"></iframe></p><figcaption>Example of long-press interaction on YouTube.</figcaption></figure><p>While not immediately apparent, press-and-hold is often used in many instances of TV experiences, essentially doubling the capabilities of a single button. Depending on context, you can map certain buttons to have an additional action and give more depth to the interface without making it convoluted.</p><p>And speaking of <em>mapping</em>, let’s see how we can utilize it to our benefit.</p><h3 id="remapping-keys-and-the-importance-of-context">Remapping Keys And The Importance Of Context</h3><p>While not as flexible as long-press, button functions can be contextually remapped. For example, Amazon’s Prime Video maps the <kbd>Up</kbd> button to open its X-Ray feature during playback. Typically, all directional buttons open video controls, so repurposing one for a custom feature cleverly adds interactivity with little tradeoff.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/32-amazon-xray-button-mapping.jpg"><img alt="A paused scene from The Lord of the Rings: The Rings of Power on Prime Video shows playback controls and the X-Ray feature. The screen highlights character information, bonus content, and book links at the bottom. A subtle hint suggests pressing the Up button to access the full X-Ray view." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/32-amazon-xray-button-mapping.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/32-amazon-xray-button-mapping.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/32-amazon-xray-button-mapping.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/32-amazon-xray-button-mapping.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/32-amazon-xray-button-mapping.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/32-amazon-xray-button-mapping.jpg 2000w" width="800"></img></a><figcaption>Upon opening playback controls, Prime Video allows opening the X-Ray feature with another press of the Up button. (Photo by <a href="https://www.amazon.com/salp/xray">Amazon</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/32-amazon-xray-button-mapping.jpg">Large preview</a>)</figcaption></figure><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aWith%20limited%20input,%20context%20becomes%20a%20powerful%20tool.%20It%20not%20only%20declutters%20the%20interface%20to%20allow%20for%20more%20focus%20on%20specific%20tasks,%20but%20also%20enables%20the%20same%20set%20of%20buttons%20to%20trigger%20different%20actions%20based%20on%20the%20viewer%e2%80%99s%20location%20within%20an%20app.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fdesigning-tv-principles-patterns-practical-guidance%2f">With limited input, context becomes a powerful tool. It not only declutters the interface to allow for more focus on specific tasks, but also enables the same set of buttons to trigger different actions based on the viewer’s location within an app.</a></p></blockquote><p>Another great example is YouTube’s <strong>scrubber interaction</strong>. Once the scrubber is moved, every other UI element fades. This cleans up the viewer’s working area, so to speak, narrowing the interface to a single task. In this state — and only in this state — pressing <kbd>Up</kbd> one more time moves away from scrubbing and into browsing by chapter.</p><figure><p><iframe allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" frameborder="0" src="https://player.vimeo.com/video/1115334334"></iframe></p><figcaption>YouTube’s chaptering can only be utilized after initiating timeline seeking.</figcaption></figure><p>This is such an elegant example of expanding restraint, and adding <em>more</em> only <em>when necessary</em>. I hope it inspires similar interactions in your TV app designs.</p><h3 id="efficient-movement-on-tv">Efficient Movement On TV</h3><p>At its best, every action on TV “costs” at least one click. There’s no such thing as aimless cursor movement — if you want to move, you must press a button. We’ve seen how cumbersome it can be inside a keyboard, but there’s also something we can learn about efficient movement in these restrained circumstances.</p><p>Going back to the Homescreen, we can note that vertical and horizontal movement serve two distinct roles. Vertical movement switches between groups, while horizontal movement switches items within these groups. No matter how far you’ve gone inside a group, a single vertical click will move you into another.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/34-horizontal-group-movement.gif"><img alt="A grid of focusable items is organized into labeled groups (Group A, B, and C). Horizontal navigation moves between items within the same group (e.g., A1 to A2), while vertical navigation switches between groups (e.g., A1 to B1 to C1). Each group change requires only a single button press, illustrating an efficient and predictable movement model." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/33-horizontal-group-movement-800.gif" width="800"></img></a><figcaption>Every step on TV “costs” an action, so we might as well optimize movement. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/34-horizontal-group-movement.gif">Large preview</a>)</figcaption></figure><p>This subtle difference — two axes with separate roles — is the most efficient way of moving in a TV interface. Reversing the pattern: horizontal to switch groups, and vertical to drill down, will work like a charm as long as you keep the role of each axis well defined.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/36-vertical-group-movement.gif"><img alt="A vertically structured layout with three labeled groups (Group A, B, and C) arranged in columns. Navigating vertically moves within a group (e.g., A1 to A2 to A3), while horizontal input switches between groups (e.g., A1 to B1 to C1). This design maintains consistent and predictable movement, requiring only one directional press to traverse either within or across groups." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/35-vertical-group-movement-800.gif" width="800"></img></a><figcaption>Properly applied in a vertical layout, the principles of optimal movement remain the same. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/36-vertical-group-movement.gif">Large preview</a>)</figcaption></figure><p>Quietly brilliant and easy to overlook, this pattern powers almost every step of the TV experience. Remember it, and use it well.</p><h3 id="thinking-beyond-jpgs">Thinking Beyond JPGs</h3><p>After covering in detail many of the technicalities, let’s finish with some visual polish.</p><p>Most TV interfaces are driven by tightly packed rows of cover and poster art. While often beautifully designed, this type of content and layouts leave little room for visual flair. For years, the flat JPG, with its small file size, has been a go-to format, though contemporary alternatives like <a href="https://en.wikipedia.org/wiki/WebP">WebP</a> are slowly taking its place.</p><p>Meanwhile, we can rely on the tried and tested PNG to give a bit more shine to our TV interfaces. The simple fact that it supports transparency can help the often-rigid UIs feel more sophisticated. Used strategically and paired with simple focus effects such as background color changes, PNGs can bring subtle moments of delight to the interface.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/38-basic-png-focus.gif"><img alt="A focus animation shows two adjacent spotlight cards on a TV interface, each featuring a person and title. As focus shifts from the left to the right card, a transparent PNG overlay adapts smoothly to background color changes, preserving contrast and clarity without requiring hard edges or solid backgrounds." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/37-basic-png-focus-800.gif" width="800"></img></a><figcaption>Having a transparent background blends well with surface color changes common in TV interfaces. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/38-basic-png-focus.gif">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/40-png-shape-focus.gif"><img alt="A focus animation highlights a card featuring a person. As the card gains focus, an animated orange wavy shape appears behind the person, creating a dynamic frame effect. This example shows how semi-transparent overlays with defined shapes can enhance focus without relying on solid rectangular backgrounds." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/39-png-shape-focus-800.gif" width="800"></img></a><figcaption>And don’t forget, transparency doesn’t have to mean that there shouldn't be any background at all. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/40-png-shape-focus.gif">Large preview</a>)</figcaption></figure><p>Moreover, if transformations like scaling and rotating are supported, you can really make those rectangular shapes come alive with layering multiple assets.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/42-multilayer-focus.gif"><img alt="Animated TV UI section transitions through layered images with a background color change illustrating how combining multiple visuals and color shifts can add energy to a layout." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/41-multilayer-focus-800.gif" width="800"></img></a><figcaption>Combining multiple images along with a background color change can liven up certain sections. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/42-multilayer-focus.gif">Large preview</a>)</figcaption></figure><p>As you probably understand by now, these little touches of finesse don’t go out of bounds of possibility. They simply find more room to breathe within it. But with such limited capabilities, it’s best to learn all the different tricks that can help make your TV experiences stand out.</p><h2 id="closing-thoughts">Closing Thoughts</h2><p>Rooted in legacy, with a limited control scheme and a rather “shallow” interface, TV design reminds us to do the best with what we have at our disposal. The restraints I outlined are not meant to induce claustrophobia and make you feel limited in your design choices, but rather to serve you as <em>guides</em>. It is by accepting that fact that we can find freedom and new avenues to explore.</p><p>This two-part series of articles, just like my experience designing for TV, was not about reinventing the wheel with radical ideas. It was about understanding its nuances and contributing to what’s already there with my personal touch.</p><p>If you find yourself working in this design field, I hope my guide will serve as a warm welcome and will help you do your finest work. And if you have any questions, do leave a comment, and I will do my best to reply and help.</p><p>Good luck!</p><h3 id="further-reading">Further Reading</h3><ul><li>“<a href="https://developer.android.com/design/ui/tv/guides/foundations/design-for-tv">Design for TV</a>,” by Android Developers<br></br><em>Great TV design is all about putting content front and center. It’s about creating an interface that’s easier to use and navigate, even from a distance. It’s about making it easier to find the content you love, and to enjoy it in the best possible quality.</em></li><li>“<a href="https://uxdesign.cc/guidelines-designing-for-television-experience-524f19ab6357">TV Guidelines: A quick kick-off on designing for Television Experiences</a>,” by Andrea Pacheco<br></br><em>Just like designing a mobile app, designing a TV application can be a fun and complex thing to do, due to the numerous guidelines and best practices to follow. Below, I have listed the main best practices to keep in mind when designing an app for a 10-foot screen.</em></li><li>“<a href="https://marvelapp.com/blog/designing-for-television/">Designing for Television – TV Ui design</a>,” by Molly Lafferty<br></br><em>We’re no longer limited to a remote and cable box to control our TVs; we’re using Smart TVs, or streaming from set-top boxes like Roku and Apple TV, or using video game consoles like Xbox and PlayStation. And each of these devices allows a user interface that’s much more powerful than your old-fashioned on-screen guide.</em></li><li>“<a href="https://www.toptal.com/designers/ui/tv-ui-design">Rethinking User Interface Design for the TV Platform</a>,” by Pascal Potvin<br></br><em>Designing for television has become part of the continuum of devices that require a rethink of how we approach user interfaces and user experiences.</em></li><li>“<a href="https://developer.android.com/design/ui/tv/guides/styles/typography">Typography for TV</a>,” by Android Developers<br></br><em>As television screens are typically viewed from a distance, interfaces that use larger typography are more legible and comfortable for users. TV Design’s default type scale includes contrasting and flexible type styles to support a wide range of use cases.</em></li><li>“<a href="https://developer.apple.com/design/human-interface-guidelines/typography">Typography</a>,” by Apple Developer docs<br></br><em>Your typographic choices can help you display legible text, convey an information hierarchy, communicate important content, and express your brand or style.</em></li><li>“<a href="https://developer.android.com/design/ui/tv/guides/foundations/color-on-tv">Color on TV</a>,” by Android Developers<br></br><em>Color on TV design can inspire, set the mood, and even drive users to make decisions. It’s a powerful and tangible element that users notice first. As a rich way to connect with a wide audience, it’s no wonder color is an important step in crafting a high-quality TV interface.</em></li><li>“<a href="https://marvelapp.com/blog/designing-for-television/">Designing for Television — TV UI Design</a>,” by Molly Lafferty (Marvel Blog)<br></br><em>Today, we’re no longer limited to a remote and cable box to control our TVs; we’re using Smart TVs, or streaming from set-top boxes like Roku and Apple TV, or using video game consoles like Xbox and PlayStation. And each of these devices allows a user interface that’s much more powerful than your old-fashioned on-screen guide.</em></li></ul><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(mb, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/designing-tv-principles-patterns-practical-guidance.jpg" /><h1>Principles, Patterns And Practical Guidance (Part 2) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>23 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/tv">TV</a>, <a href="http://www.smashingmagazine.com/category/inspiration">Inspiration</a></li></ul><div><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>After covering in detail the underlying interaction paradigms of TV experiences in <a href="https://www.smashingmagazine.com/2025/08/designing-tv-evergreen-pattern-shapes-tv-experiences/">Part 1</a>, it’s time to get practical. In the second part of the series, you’ll explore the building blocks of the “10-foot experience” and how to best utilise them in your designs.</section></div><p>Having covered the developmental history and legacy of TV in <a href="https://www.smashingmagazine.com/2025/08/designing-tv-evergreen-pattern-shapes-tv-experiences/"><strong>Part 1</strong></a>, let’s now delve into more practical matters. As a quick reminder, the “10-foot experience” and its reliance on the six core buttons of any remote form the basis of our efforts, and as you’ll see, most principles outlined simply reinforce the unshakeable foundations.</p><p>In this article, we’ll sift through the systems, account for layout constraints, and distill the guidelines to understand the essence of TV interfaces. Once we’ve collected all the main ingredients, we’ll see what we can do to elevate these inherently simplistic experiences.</p><p>Let’s dig in, and let’s get practical!</p><h2 id="the-systems">The Systems</h2><p>When it comes to hardware, TVs and set-top boxes are usually a few generations behind phones and computers. Their components are made to run lightweight systems optimised for viewing, energy efficiency, and longevity. Yet even within these constraints, different platforms offer varying performance profiles, conventions, and price points.</p><p>Some notable platforms/systems of today are:</p><ul><li><strong>Roku</strong>, the most affordable and popular, but severely bottlenecked by weak hardware.</li><li><strong>WebOS</strong>, most common on LG devices, relies on web standards and runs well on modest hardware.</li><li><strong>Android TV</strong>, considered very flexible and customisable, but relatively demanding hardware-wise.</li><li><strong>Amazon Fire</strong>, based on Android but with a separate ecosystem. It offers great smooth performance, but is slightly more limited than stock Android.</li><li><strong>tvOS</strong>, by Apple, offering a high-end experience followed by a high-end price with extremely low customizability.</li></ul><p>Despite their differences, all of the platforms above share something in common, and by now you’ve probably guessed that it has to do with <em>the remote</em>. Let’s take a closer look:</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/1-remotes.jpg"><img alt="Five TV remotes from left to right: Roku, LG WebOS, Philips Android TV, Amazon Fire TV, and Apple tvOS. Each features a directional pad, select button, and back button, thus showcasing the shared navigation layout across different platforms." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/1-remotes.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/1-remotes.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/1-remotes.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/1-remotes.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/1-remotes.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/1-remotes.jpg 2000w" width="800"></img></a><figcaption>Left to right: Roku, WebOS (LG), Android TV (Philips), Amazon Fire, and tvOS remotes. While they control different systems, their control schemes are exactly the same. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/1-remotes.jpg">Large preview</a>)</figcaption></figure><p>If these remotes were stripped down to just the D-pad, <kbd>OK</kbd>, and <kbd>BACK</kbd> buttons, they would still be capable of successfully navigating any TV interface. It is this shared control scheme that allows for the <a href="https://www.techtarget.com/whatis/definition/agnostic">agnostic approach</a> of this article with broadly applicable guidelines, regardless of the manufacturer.</p><p>Having already discussed the TV remote in detail in <a href="https://www.smashingmagazine.com/2025/08/designing-tv-evergreen-pattern-shapes-tv-experiences/"><strong>Part 1</strong></a>, let’s turn to the second part of the equation: the TV screen, its layout, and the fundamental building blocks of TV-bound experiences.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="tv-design-fundamentals">TV Design Fundamentals</h2><h3 id="the-screen">The Screen</h3><p>With almost one hundred years of legacy, TV has accumulated quite some baggage. One recurring topic in modern articles on TV design is the concept of “<a href="https://en.wikipedia.org/wiki/Overscan">overscan</a>” — a legacy concept from the era of cathode ray tube (<a href="https://en.wikipedia.org/wiki/Cathode-ray_tube">CRT</a>) screens. Back then, the lack of standards in production meant that television sets would often crop the projected image at its edges. To address this inconsistency, broadcasters created guidelines to keep important content from being cut off.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/2-safe-zones.jpg"><img alt="Diagram showing the TV screen safe area. The inner frame is labeled ‘Title Safe’ and the outer ‘Action Safe’, illustrating traditional TV overscan zones used to keep key content visible on all TV displays." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/2-safe-zones.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/2-safe-zones.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/2-safe-zones.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/2-safe-zones.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/2-safe-zones.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/2-safe-zones.jpg 2000w" width="800"></img></a><figcaption>Overscan guides on a 16:9 image. Broadcasters differentiate between title safe and action safe areas. (Photo by <a href="https://unsplash.com/photos/man-in-white-t-shirt-and-brown-pants-riding-skateboard-on-brown-sand-during-daytime-r1SwcagHVG0">Tom Morbey</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/2-safe-zones.jpg">Large preview</a>)</figcaption></figure><p>While overscan gets mentioned occasionally, we should call it what it really is — a thing of the past. Modern panels display content with greater precision, making thinking in terms of title and action safe areas rather archaic. Today, we can simply consider the <strong>margins</strong> and get the same results.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/3-tv-margins.jpg"><img alt="Diagram showing the TV red margin frames on all sides of an image, illustrating how overscan areas can be simplified into consistent screen margins for modern TV layouts." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/3-tv-margins.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/3-tv-margins.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/3-tv-margins.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/3-tv-margins.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/3-tv-margins.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/3-tv-margins.jpg 2000w" width="800"></img></a><figcaption>Simplifying overscan, we can turn it into margins. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/3-tv-margins.jpg">Large preview</a>)</figcaption></figure><p><a href="https://developer.android.com/design/ui/tv/guides/styles/layouts">Google calls for a 5% margin layout</a> and <a href="https://developer.apple.com/design/human-interface-guidelines/layout">Apple advises</a> a 60-point margin top and bottom, and 80 points on the sides in their Layout guidelines. The standard is not exactly clear, but the takeaway is simple: leave some breathing room between screen edge and content, like you would in any thoughtful layout.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/4-tvos-safe-zones.png"><img alt="Diagram showing the TV screen safe area. A dark central rectangle represents the usable safe zone, inset by 60 points from the top and bottom and 80 points from the left and right edges. These margins ensure content isn't clipped or hard to see on TVs with overscan." decoding="async" fetchpriority="low" height="469" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/4-tvos-safe-zones.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/4-tvos-safe-zones.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/4-tvos-safe-zones.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/4-tvos-safe-zones.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/4-tvos-safe-zones.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/4-tvos-safe-zones.png 2000w" width="800"></img></a><figcaption>Be prepared for a wide range of TV sizes and adhere to the screen’s safe area. Inset primary content 60 points from the top/bottom of the screen, and 80 points from the sides. (Image source: <a href="https://developer.apple.com/design/human-interface-guidelines/layout">Layout, Apple Developer Docs</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/4-tvos-safe-zones.png">Large preview</a>)</figcaption></figure><p>Having left some baggage behind, we can start considering what to put within and outside the defined bounds.</p><h3 id="the-layout">The Layout</h3><p>Considering the device is made for content consumption, streaming apps such as Netflix naturally come to mind. Broadly speaking, all these interfaces share a common layout structure where a vast collection of content is laid out in a simple <strong>grid</strong>.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/5-netflix-tv-ui.jpg"><img alt="Screenshot of Netflix’s TV interface showing horizontally scrolling content shelves with thumbnail images of shows and movies arranged in rows, illustrating a common layout pattern used in TV apps." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/5-netflix-tv-ui.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/5-netflix-tv-ui.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/5-netflix-tv-ui.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/5-netflix-tv-ui.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/5-netflix-tv-ui.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/5-netflix-tv-ui.jpg 2000w" width="800"></img></a><figcaption>The Netflix TV UI features ‘content shelves,’ a common design pattern for TV apps. (Photo by <a href="https://www.flatpanelshd.com/news.php?subaction=showfull&amp;id=1698138139">Rasmus Larsen</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/5-netflix-tv-ui.jpg">Large preview</a>)</figcaption></figure><p>These horizontally scrolling groups (sometimes referred to as “shelves”) resemble rows of a bookcase. Typically, they’ll contain dozens of items that don’t fit into the initial “fold”, so we’ll make sure the last visible item “peeks” from the edge, subtly indicating to the viewer there’s more content available if they continue scrolling.</p><p>If we were to define a standard 12-column layout grid, with a 2-column-wide item, we’d end up with something like this:</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/6-twelve-column-grid-layout.jpg"><img alt="12-column TV layout grid with two horizontal content shelves. Each shelf contains rectangular tiles, each spanning 2 columns. The tiles are aligned to the grid, and the last tile in each row extends beyond the visible screen area." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/6-twelve-column-grid-layout.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/6-twelve-column-grid-layout.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/6-twelve-column-grid-layout.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/6-twelve-column-grid-layout.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/6-twelve-column-grid-layout.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/6-twelve-column-grid-layout.jpg 2000w" width="800"></img></a><figcaption>Example of a 12-column layout with 80px margin on the sides. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/6-twelve-column-grid-layout.jpg">Large preview</a>)</figcaption></figure><p>As you can see, the last item falls outside the “safe” zone.</p><p><strong>Tip:</strong> A useful trick I discovered when designing TV interfaces was to utilise an <em>odd</em> number of columns. This allows the last item to fall within the defined margins and be more prominent while having little effect on the entire layout. We’ve concluded that overscan is not a prominent issue these days, yet an additional column in the layout helps <em>completely</em> circumvent it. Food for thought!</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/7-thirteen-column-grid-layout.jpg"><img alt="3-column TV layout grid with two horizontal content shelves and 80-pixel side margins. Each tile spans 2 columns. The 13th column allows more of the final tile in each row to be visible, though it still extends slightly beyond the screen edge." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/7-thirteen-column-grid-layout.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/7-thirteen-column-grid-layout.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/7-thirteen-column-grid-layout.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/7-thirteen-column-grid-layout.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/7-thirteen-column-grid-layout.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/7-thirteen-column-grid-layout.jpg 2000w" width="800"></img></a><figcaption>Example of a 13-column layout with 80px margin on the sides. One additional column within the set bounds gives more prominence to the last visible item on the shelf. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/7-thirteen-column-grid-layout.jpg">Large preview</a>)</figcaption></figure><h3 id="typography">Typography</h3><p>TV design requires us to practice restraint, and this becomes very apparent when working with type. All good typography practices apply to TV design too, but I’d like to point out two specific takeaways.</p><p>First, accounting for the distance, everything (including type) needs to <strong>scale up</strong>. Where 16–18px might suffice for web baseline text, 24px should be your starting point on TV, with the rest of the scale increasing proportionally.</p><blockquote>“Typography can become especially tricky in 10-ft experiences. When in doubt, <strong>go larger</strong>.”<p>— <a href="https://marvelapp.com/blog/designing-for-television/">Molly Lafferty</a> (Marvel Blog)</p></blockquote><p>With that in mind, the second piece of advice would be to <strong>start with a small 5–6 size scale</strong> and adjust if necessary. The simplicity of a TV experience can, and should, be reflected in the typography itself, and while small, such a scale will do all the “heavy lifting” if set correctly.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/8-type-application.jpg"><img alt="A type scale with five text sizes and weights, demonstrating a simplified system suitable for TV interfaces." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/8-type-application.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/8-type-application.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/8-type-application.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/8-type-application.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/8-type-application.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/8-type-application.jpg 2000w" width="800"></img></a><figcaption>A 5–6 size type scale can carry the “burden” of a TV interface. (Image source: <a href="https://www.figma.com/community/file/1533026722522937199">TV UI Base Type Scale</a>, by Milan Balać) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/8-type-application.jpg">Large preview</a>)</figcaption></figure><p>What you see in the example above is a scale I reduced from <a href="https://developer.android.com/design/ui/tv/guides/styles/typography">Google</a> and <a href="https://developer.apple.com/design/human-interface-guidelines/typography">Apple</a> guidelines, with a few size adjustments. Simple as it is, this scale served me well for years, and I have no doubt it could do the same for you.</p><h4 id="freebie">Freebie</h4><p>If you’d like to use my basic reduced type scale Figma design file for kicking off your own TV project, feel free to do so!</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/9-figma-freebie.jpg"><img alt="A screenshot of the first page in the Figma design file by the author Milan Balać. Below the screenshot there is a link which points to the Figma file." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/9-figma-freebie.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/9-figma-freebie.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/9-figma-freebie.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/9-figma-freebie.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/9-figma-freebie.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/9-figma-freebie.jpg 2000w" width="800"></img></a><figcaption><a href="https://www.figma.com/community/file/1533026722522937199">TV UI Base Type Scale</a> (Figma Design file, <a href="https://creativecommons.org/licenses/by/4.0/">CC-BY</a> license) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/9-figma-freebie.jpg">Large preview</a>)</figcaption></figure><h3 id="color">Color</h3><p>Imagine watching TV at night with the device being the only source of light in the room. You open up the app drawer and select a new streaming app; it loads into a pretty splash screen, and — bam! — a bright interface opens up, which, amplified by the dark surroundings, blinds you for a fraction of a second. That right there is our main consideration when using color on TV.</p><p>Built for cinematic experiences and often used in dimly lit environments, TVs lend themselves perfectly to darker and more subdued interfaces. Bright colours, especially pure white (<code>#ffffff</code>), will translate to maximum luminance and may be straining on the eyes. As a general principle, you should <strong>rely on a more muted color palette</strong>. Slightly tinting brighter elements with your brand color, or undertones of yellow to imitate natural light, will produce less visually unsettling results.</p><p>Finally, without a pointer or touch capabilities, it’s crucial to <strong>clearly highlight</strong> interactive elements. While using bright colors as backdrops may be overwhelming, using them sparingly to highlight element states in a highly contrasting way will work perfectly.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/11-button-focus-basic.gif"><img alt="A row of buttons, with one button animating into a high-contrast focus state, where its color shifts from a dark tone to a bright, light color against a dark background. This illustrates how TV interfaces visually emphasize the selected element." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/10-button-focus-basic-800.gif" width="800"></img></a><figcaption>A focus state is the underlying principle of TV navigation. Most commonly, it relies on creating high contrast between the focused and unfocused elements. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/11-button-focus-basic.gif">Large preview</a>)</figcaption></figure><p>This highlighting of UI elements is what TV leans on heavily — and it is what we’ll discuss next.</p><h3 id="focus">Focus</h3><p>In <a href="https://www.smashingmagazine.com/2025/08/designing-tv-evergreen-pattern-shapes-tv-experiences/">Part 1</a>, we have covered how interacting through a remote implies a certain detachment from the interface, mandating reliance on a focus state to carry the burden of TV interaction. This is done by visually accenting elements to anchor the user’s eyes and map any subsequent movement within the interface.</p><p>If you have ever written HTML/CSS, you might recall the use of the <code>:focus</code> <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/:focus">CSS pseudo-class</a>. While it’s primarily an accessibility feature on the web, it’s the <strong>core of interaction</strong> on TV, with more flexibility added in the form of two additional directions thanks to a dedicated D-pad.</p><h4 id="focus-styles">Focus Styles</h4><p>There are a few standard ways to style a focus state. Firstly, there’s <strong>scaling</strong> — enlarging the focused element, which creates the illusion of depth by moving it closer to the viewer.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/13-focus-scale-base.gif"><img alt="A horizontal row of image cards where one enlarges slightly on focus, demonstrating a common TV UI technique where focused elements scale up to indicate selection, especially when using image-only content." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/12-focus-scale-base-800.gif" width="800"></img></a><figcaption>Example of scaling elements on focus. This is especially common in cases where only images are used for focusable elements. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/13-focus-scale-base.gif">Large preview</a>)</figcaption></figure><p>Another common approach is to <strong>invert</strong> background and text colors.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/15-focus-bg-base.gif"><img alt="A horizontal row of image cards where one changes its background from dark to light on focus, demonstrating color inversion as a common technique for highlighting selected cards in TV interfaces." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/14-focus-bg-base-800.gif" width="800"></img></a><figcaption>Color inversion on focus, common for highlighting cards. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/15-focus-bg-base.gif">Large preview</a>)</figcaption></figure><p>Finally, a <strong>border</strong> may be added around the highlighted element.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/17-focus-border-base.gif"><img alt="A horizontal row of image cards where one displays a bright border on focus, illustrating how outlining is used in TV interfaces to visually highlight the selected element." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/16-focus-bg-base-800.gif" width="800"></img></a><figcaption>Example of border highlights on focus. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/17-focus-border-base.gif">Large preview</a>)</figcaption></figure><p>These styles, used independently or in various combinations, appear in all TV interfaces. While execution may be constrained by the specific system, the purpose remains the same: <strong>clear and intuitive feedback, even from across the room</strong>.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/19-focus-combo.gif"><img alt="A horizontal row of three image cards, each demonstrating a different combination of focus styles: the first scales and changes background color, the second changes background color and adds a border, and the third scales and adds a border — illustrating how focus states can be mixed for visual emphasis in TV interfaces." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/18-focus-combo-800.gif" width="800"></img></a><figcaption>The three basic styles can be combined to produce more focus state variants. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/19-focus-combo.gif">Large preview</a>)</figcaption></figure><p>Having set the foundations of interaction, layout, and movement, we can start building on top of them. The next chapter will cover the most common elements of a TV interface, their variations, and a few tips and tricks for button-bound navigation.</p><h2 id="common-tv-ui-components">Common TV UI Components</h2><p>Nowadays, the core user journey on television revolves around browsing (or searching through) a content library, selecting an item, and opening a dedicated screen to watch or listen.</p><p>This translates into a few fundamental screens:</p><ul><li><strong>Library</strong> (or Home) for content browsing,</li><li><strong>Search</strong> for specific queries, and</li><li><strong>A player screen</strong> focused on content playback.</li></ul><p>These screens are built with a handful of components optimized for the <a href="https://en.wikipedia.org/wiki/10-foot_user_interface">10-foot experience</a>, and while they are often found on other platforms too, it’s worth examining how they differ on TV.</p><p>Appearing as a horizontal bar along the top edge of the screen, or as a vertical sidebar, the <strong>menu</strong> helps move between the different screens of an app. While its orientation mostly depends on the specific system, it does seem TV favors the side menu a bit more.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/20-netflix-sidebar-expanded.jpg"><img alt="Netflix TV interface with an expanded vertical side menu overlaying content tiles, showing navigation options like Watch Now, Browse, and Search, while dimming the background to keep focus on the menu." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/20-netflix-sidebar-expanded.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/20-netflix-sidebar-expanded.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/20-netflix-sidebar-expanded.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/20-netflix-sidebar-expanded.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/20-netflix-sidebar-expanded.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/20-netflix-sidebar-expanded.jpg 2000w" width="800"></img></a><figcaption>The Netflix side menu expanded. (Photo by <a href="https://variety.com/2019/digital/news/netflix-watch-now-test-1203431588/">Variety</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/20-netflix-sidebar-expanded.jpg">Large preview</a>)</figcaption></figure><p>Both menu types share a common issue: the farther the user navigates away from the menu (vertically, toward the bottom for top-bars; and horizontally, toward the right for sidebars), the more button presses are required to get back to it. Fortunately, usually a <kbd>Back</kbd> button shortcut is added to allow for immediate menu focus, which greatly improves usability.</p><figure><p><iframe allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" frameborder="0" src="https://player.vimeo.com/video/1115330235"></iframe></p><figcaption>Example of a top menu in Prime Video. As soon as focus is moved from the first shelf toward the bottom, the top menu disappears. Interestingly, Prime Video implemented both menus for different purposes: the sidebar for global navigation between screens, and the top menu for filtering.</figcaption></figure><figure><p><iframe allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" frameborder="0" src="https://player.vimeo.com/video/1115330478"></iframe></p><figcaption>While not without its flaws, the side menu remains persistently on the screen, no matter how far you move away from it. Paired with “Back” for quick refocusing, it offers a slightly more consistent experience.</figcaption></figure><p>That said, the problem will arise a lot sooner for top menus, which, paired with the issue of having to hide or fade the element, makes a <em>persistent sidebar</em> a more common pick in TV user interfaces, and allows for a more consistent experience.</p><h3 id="shelves-posters-and-cards">Shelves, Posters, And Cards</h3><p>We’ve already mentioned shelves when covering layouts; now let’s shed some more light on this topic. The “shelves” (horizontally scrolling groups) form the basis of TV content browsing and are commonly populated with posters in three different aspect ratios: <strong>2:3</strong>, <strong>16:9</strong>, and <strong>1:1</strong>.</p><p><strong>2:3</strong> posters are common in apps specializing in movies and shows. Their vertical orientation references traditional movie posters, harkening back to the cinematic experiences TVs are built for. Moreover, their narrow shape allows more items to be immediately visible in a row, and they rarely require any added text, with titles baked into the poster image.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/21-netflix-2-3-posters.jpg"><img alt="Grid of vertically oriented 2:3 Netflix posters showing various movie and show titles, illustrating the common use of poster-style imagery in TV interfaces for visually dense content browsing." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/21-netflix-2-3-posters.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/21-netflix-2-3-posters.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/21-netflix-2-3-posters.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/21-netflix-2-3-posters.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/21-netflix-2-3-posters.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/21-netflix-2-3-posters.jpg 2000w" width="800"></img></a><figcaption>Netflix 2:3 posters. (Photo by <a href="https://news.xbox.com/en-us/2023/05/10/join-the-netflix-xbox-insider-preview/">Xbox Wire</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/21-netflix-2-3-posters.jpg">Large preview</a>)</figcaption></figure><p><strong>16:9</strong> posters abide by the same principles but with a horizontal orientation. They are often paired with text labels, which effectively turn them into cards, commonly seen on platforms like YouTube. In the absence of dedicated poster art, they show stills or playback from the videos, matching the aspect ratio of the media itself.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/22-amazon-prime-16-9-posters.jpg"><img alt="Amazon Prime Video interface displaying a row of 16:9 horizontally oriented posters for various shows and movies, illustrating the use of media thumbnails with aspect ratios matching video content." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/22-amazon-prime-16-9-posters.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/22-amazon-prime-16-9-posters.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/22-amazon-prime-16-9-posters.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/22-amazon-prime-16-9-posters.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/22-amazon-prime-16-9-posters.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/22-amazon-prime-16-9-posters.jpg 2000w" width="800"></img></a><figcaption>Amazon Prime 16:9 posters. (Photo by <a href="https://techcrunch.com/2022/06/15/amazon-revamps-fire-tv-user-interface-with-new-home-screen-improved-navigation-and-more/">Amazon</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/22-amazon-prime-16-9-posters.jpg">Large preview</a>)</figcaption></figure><p><strong>1:1</strong> posters are often found in music apps like Spotify, their shape reminiscent of album art and vinyl sleeves. These squares often get used in other instances, like representing channel links or profile tiles, giving more visual variety to the interface.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/23-spotify-1-1-posters.jpg"><img alt="Spotify TV interface displaying square 1:1 posters for playlists and albums in a grid layout, reflecting the visual style of album art and offering a consistent, music-focused browsing experience." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/23-spotify-1-1-posters.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/23-spotify-1-1-posters.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/23-spotify-1-1-posters.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/23-spotify-1-1-posters.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/23-spotify-1-1-posters.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/23-spotify-1-1-posters.jpg 2000w" width="800"></img></a><figcaption>Spotify 1:1 posters. (Photo by <a href="https://www.linkedin.com/pulse/today-we-released-spotify-apple-tv-henrik-adler/">Henrik Adler</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/23-spotify-1-1-posters.jpg">Large preview</a>)</figcaption></figure><p>All of the above can co-exist within a single app, allowing for richer interfaces and breaking up otherwise uniform content libraries.</p><p>And speaking of breaking up content, let’s see what we can do with <strong>spotlights</strong>!</p><h3 id="spotlights">Spotlights</h3><p>Typically taking up the entire width of the screen, these eye-catching components will highlight a new feature or a promoted piece of media. In a sea of uniform shelves, they can be placed strategically to introduce aesthetic diversity and disrupt the monotony.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/24-spotlight-main.jpg"><img alt="Large spotlight component with abstract background art and a call-to-action message, spanning the full width of the row to draw attention and visually break up the content grid in a TV interface." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/24-spotlight-main.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/24-spotlight-main.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/24-spotlight-main.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/24-spotlight-main.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/24-spotlight-main.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/24-spotlight-main.jpg 2000w" width="800"></img></a><figcaption>Example of a large spotlight component, with “Create Account” and “Login” buttons. (Photo by <a href="https://unsplash.com/photos/multicolored-abstract-painting-QwoNAhbmLLo">Joel Filipe</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/24-spotlight-main.jpg">Large preview</a>)</figcaption></figure><p>A spotlight can be a focusable element by itself, or it could expose several actions thanks to its generous space. In my ventures into TV design, I relied on a few different spotlight sizes, which allowed me to place multiples into a single row, all with the purpose of highlighting different aspects of the app, without breaking the form to which viewers were used.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/25-spotlight-half.jpg"><img alt="Two horizontally arranged spotlight components, each featuring a large portrait, title, and call-to-action label, showing a smaller spotlight variant that fits two items per row while clearly indicating interactivity." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/25-spotlight-half.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/25-spotlight-half.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/25-spotlight-half.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/25-spotlight-half.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/25-spotlight-half.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/25-spotlight-half.jpg 2000w" width="800"></img></a><figcaption>Defining a few spotlight variants comes in handy — a smaller variant allows promoting two items per row while maintaining a strong visual presence. In this example, the entire element is focusable, but exposing an action label helps communicate what will happen upon selection. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/25-spotlight-half.jpg">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/26-spotlight-mini.jpg"><img alt="Two compact spotlight components arranged in a row, featuring large portraits and bold titles without action buttons — illustrating a minimized layout that maintains visual impact while saving vertical space." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/26-spotlight-mini.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/26-spotlight-mini.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/26-spotlight-mini.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/26-spotlight-mini.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/26-spotlight-mini.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/26-spotlight-mini.jpg 2000w" width="800"></img></a><figcaption>In their most compressed version, the spotlights reduce their vertical footprint, doing away with actions and focusing solely on visuals and titles to preserve space while still drawing attention. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/26-spotlight-mini.jpg">Large preview</a>)</figcaption></figure><p>Posters, cards, and spotlights shape the bulk of the visual experience and content presentation, but viewers still need a way to find specific titles. Let’s see how <strong>search</strong> and <strong>input</strong> are handled on TV.</p><h3 id="search-and-entering-text">Search And Entering Text</h3><p>Manually browsing through content libraries can yield results, but having the ability to <strong>search</strong> will speed things up — though not without some hiccups.</p><p>TVs allow for text input in the form of on-screen keyboards, similar to the ones found in modern smartphones. However, inputting text with a remote control is quite inefficient given the restrictiveness of its control scheme. For example, typing “hey there” on a mobile keyboard requires 9 keystrokes, but about 38 on a TV (!) due to the movement between characters and their selection.</p><p>Typing with a D-pad may be an arduous task, but at the same time, having the ability to search is unquestionably useful.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/27-roku-search.jpg"><img alt="Roku TV interface showing an on-screen grid keyboard used for text input, with a search query partially entered and matching content displayed on the right. This illustrates the standard grid layout commonly used for TV search." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/27-roku-search.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/27-roku-search.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/27-roku-search.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/27-roku-search.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/27-roku-search.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/27-roku-search.jpg 2000w" width="800"></img></a><figcaption>Example of an on-screen keyboard for Roku. The grid keyboard layout is the most common on generally all platforms, aside from tvOS. (Photo by <a href="https://developer.roku.com/docs/developer-program/discovery/search/implementing-search.md">Roku</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/27-roku-search.jpg">Large preview</a>)</figcaption></figure><p>Luckily for us, keyboards are accounted for in all systems and usually come in two varieties. We’ve got the grid layouts used by most platforms and a horizontal layout in support of the touch-enabled and gesture-based controls on tvOS. Swiping between characters is significantly faster, but this is yet another pattern that can only be enhanced, not replaced.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/28-tvos-horizontal-keyboard.jpg"><img alt="tvOS on-screen keyboard with a horizontally scrolling layout of letters, numbers, and symbols, designed for gesture-based input using a touch-enabled remote." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/28-tvos-horizontal-keyboard.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/28-tvos-horizontal-keyboard.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/28-tvos-horizontal-keyboard.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/28-tvos-horizontal-keyboard.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/28-tvos-horizontal-keyboard.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/28-tvos-horizontal-keyboard.jpg 2000w" width="800"></img></a><figcaption>The tvOS horizontal keyboard is designed to support touch and gesture-enabled remote controllers. (Photo by <a href="https://arstechnica.com/gadgets/2016/03/mini-review-tvos-9-2-fixes-all-the-apple-tvs-biggest-problems/">Andrew Cunningham</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/28-tvos-horizontal-keyboard.jpg">Large preview</a>)</figcaption></figure><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aModernization%20has%20made%20things%20significantly%20easier,%20with%20search%20autocomplete%20suggestions,%20device%20pairing,%20voice%20controls,%20and%20remotes%20with%20physical%20keyboards,%20but%20on-screen%20keyboards%20will%20likely%20remain%20a%20necessary%20fallback%20for%20quite%20a%20while.%20And%20no%20matter%20how%20cumbersome%20this%20fallback%20may%20be,%20we%20as%20designers%20need%20to%20consider%20it%20when%20building%20for%20TV.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fdesigning-tv-principles-patterns-practical-guidance%2f">Modernization has made things significantly easier, with search autocomplete suggestions, device pairing, voice controls, and remotes with physical keyboards, but on-screen keyboards will likely remain a necessary fallback for quite a while. And no matter how cumbersome this fallback may be, we as designers need to consider it when building for TV.</a></p></blockquote><h3 id="players-and-progress-bars">Players And Progress Bars</h3><p>While all the different sections of a TV app serve a purpose, <strong>the Player</strong> takes center stage. It’s where all the roads eventually lead to, and where viewers will spend the most time. It’s also one of the rare instances where focus gets lost, allowing for the interface to get out of the way of enjoying a piece of content.</p><p>Arguably, players are the most complex features of TV apps, compacting all the different functionalities into a single screen. Take YouTube, for example, its player doesn’t just handle expected playback controls but also supports content browsing, searching, reading comments, reacting, and navigating to channels, all within a single screen.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/29-youtube-android-player.jpg"><img alt="YouTube TV player interface during video playback, displaying a range of controls including playback speed, quality, like/dislike, and related video thumbnails. This showcases the app’s extensive in-player functionality." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/29-youtube-android-player.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/29-youtube-android-player.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/29-youtube-android-player.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/29-youtube-android-player.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/29-youtube-android-player.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/29-youtube-android-player.jpg 2000w" width="800"></img></a><figcaption>The YouTube TV app features one of the most robust players out there. (Photo by <a href="https://www.androidpolice.com/2021/06/07/youtube-on-android-tv-just-added-the-feature-ive-been-wanting-for-years/">Rita El Khoury</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/29-youtube-android-player.jpg">Large preview</a>)</figcaption></figure><p>Compared to YouTube, Netflix offers a very lightweight experience guided by the nature of the app.</p><p>Still, every player has a basic set of controls, the foundation of which is the <strong>progress bar</strong>.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/30-netflix-player.jpg"><img alt="Netflix TV app media player interface shown during playback, featuring a minimalist design with only essential controls: pause, back, subtitles, skip, and a progress bar with time indicators. Compared to the more complex YouTube player, this stripped-down layout prioritizes simplicity and keeps the focus on the content." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/30-netflix-player.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/30-netflix-player.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/30-netflix-player.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/30-netflix-player.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/30-netflix-player.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/30-netflix-player.jpg 2000w" width="800"></img></a><figcaption>Netflix TV app media player. (Photo by <a href="https://play.google.com/store/apps/details?id=com.netflix.ninja">Netflix</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/30-netflix-player.jpg">Large preview</a>)</figcaption></figure><p>The progress bar UI element serves as a visual indicator for content duration. During interaction, focus doesn’t get placed on the bar itself, but on a movable knob known as the “scrubber.” It is by moving the scrubber left and right, or stopping it in its tracks, that we can control playback.</p><p>Another indirect method of invoking the progress bar is with the good old <kbd>Play</kbd> and <kbd>Pause</kbd> buttons. Rooted in the mechanical era of tape players, the universally understood triangle and two vertical bars are as integral to the TV legacy as the D-pad. No matter how minimalist and sleek the modern player interface may be, these symbols remain a staple of the viewing experience.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/31-physical-playback-controls.jpg"><img alt="Close-up of a player showing physical playback control buttons: record (red dot), play (right-pointing triangle), stop (square), rewind (double left arrows), and fast forward (double right arrows). Japanese labels appear above each button. (Note: The pause button (two vertical bars) is not shown in the picture.)" decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/31-physical-playback-controls.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/31-physical-playback-controls.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/31-physical-playback-controls.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/31-physical-playback-controls.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/31-physical-playback-controls.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/31-physical-playback-controls.jpg 2000w" width="800"></img></a><figcaption>Transcending language barriers, the simple symbols for playback controls are universally recognisable. (Photo by <a href="https://commons.wikimedia.org/wiki/File:SONY_ICZ-R50_025_(5434919279).jpg">TAKA@P.P.R.S</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/31-physical-playback-controls.jpg">Large preview</a>)</figcaption></figure><p>The presence of a scrubber may also indicate the type of content. Video on demand allows for the full set of playback controls, while live streams (unless DVR is involved) will do away with the scrubber since viewers won’t be able to rewind or fast-forward.</p><p>Earlier iterations of progress bars often came bundled with a set of playback control buttons, but as viewers got used to the tools available, these controls often got consolidated into the progress bar and scrubber themselves.</p><h3 id="bringing-it-all-together">Bringing It All Together</h3><p>With the building blocks out of the box, we’ve got everything necessary for a basic but functional TV app. Just as the six core buttons make remote navigation possible, the components and principles outlined above help guide purposeful TV design. The more context you bring, the more you’ll be able to expand and combine these basic principles, creating an experience unique to your needs.</p><p>Before we wrap things up, I’d like to share a few tips and tricks I discovered along the way — tips and tricks which I wish I had known from the start. Regardless of how simple or complex your idea may be, these may serve you as useful tools to help add depth, polish, and finesse to any TV experience.</p><h2 id="thinking-beyond-the-basics">Thinking Beyond The Basics</h2><p>Like any platform, TV has a set of constraints that we abide by when designing. But sometimes these norms are applied without question, making the already limited capabilities feel even more restraining. Below are a handful of less obvious ideas that can help you design more thoughtfully and flexibly for the big screen.</p><h3 id="long-press">Long Press</h3><p>Most modern remotes support <strong>press-and-hold gestures</strong> as a subtle way to enhance the functionality, especially on remotes with fewer buttons available.</p><p>For example, holding directional buttons when browsing content speeds up scrolling, while holding <kbd>Left</kbd>/<kbd>Right</kbd> during playback speeds up timeline seeking. In many apps, a single press of the <kbd>OK</kbd> button opens a video, but holding it for longer opens a contextual menu with additional actions.</p><figure><p><iframe allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" frameborder="0" src="https://player.vimeo.com/video/1115333599"></iframe></p><figcaption>Example of long-press interaction on YouTube.</figcaption></figure><p>While not immediately apparent, press-and-hold is often used in many instances of TV experiences, essentially doubling the capabilities of a single button. Depending on context, you can map certain buttons to have an additional action and give more depth to the interface without making it convoluted.</p><p>And speaking of <em>mapping</em>, let’s see how we can utilize it to our benefit.</p><h3 id="remapping-keys-and-the-importance-of-context">Remapping Keys And The Importance Of Context</h3><p>While not as flexible as long-press, button functions can be contextually remapped. For example, Amazon’s Prime Video maps the <kbd>Up</kbd> button to open its X-Ray feature during playback. Typically, all directional buttons open video controls, so repurposing one for a custom feature cleverly adds interactivity with little tradeoff.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/32-amazon-xray-button-mapping.jpg"><img alt="A paused scene from The Lord of the Rings: The Rings of Power on Prime Video shows playback controls and the X-Ray feature. The screen highlights character information, bonus content, and book links at the bottom. A subtle hint suggests pressing the Up button to access the full X-Ray view." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/32-amazon-xray-button-mapping.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/32-amazon-xray-button-mapping.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/32-amazon-xray-button-mapping.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/32-amazon-xray-button-mapping.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/32-amazon-xray-button-mapping.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/32-amazon-xray-button-mapping.jpg 2000w" width="800"></img></a><figcaption>Upon opening playback controls, Prime Video allows opening the X-Ray feature with another press of the Up button. (Photo by <a href="https://www.amazon.com/salp/xray">Amazon</a>) (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/32-amazon-xray-button-mapping.jpg">Large preview</a>)</figcaption></figure><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aWith%20limited%20input,%20context%20becomes%20a%20powerful%20tool.%20It%20not%20only%20declutters%20the%20interface%20to%20allow%20for%20more%20focus%20on%20specific%20tasks,%20but%20also%20enables%20the%20same%20set%20of%20buttons%20to%20trigger%20different%20actions%20based%20on%20the%20viewer%e2%80%99s%20location%20within%20an%20app.%0a&amp;url=https://smashingmagazine.com%2f2025%2f09%2fdesigning-tv-principles-patterns-practical-guidance%2f">With limited input, context becomes a powerful tool. It not only declutters the interface to allow for more focus on specific tasks, but also enables the same set of buttons to trigger different actions based on the viewer’s location within an app.</a></p></blockquote><p>Another great example is YouTube’s <strong>scrubber interaction</strong>. Once the scrubber is moved, every other UI element fades. This cleans up the viewer’s working area, so to speak, narrowing the interface to a single task. In this state — and only in this state — pressing <kbd>Up</kbd> one more time moves away from scrubbing and into browsing by chapter.</p><figure><p><iframe allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" frameborder="0" src="https://player.vimeo.com/video/1115334334"></iframe></p><figcaption>YouTube’s chaptering can only be utilized after initiating timeline seeking.</figcaption></figure><p>This is such an elegant example of expanding restraint, and adding <em>more</em> only <em>when necessary</em>. I hope it inspires similar interactions in your TV app designs.</p><h3 id="efficient-movement-on-tv">Efficient Movement On TV</h3><p>At its best, every action on TV “costs” at least one click. There’s no such thing as aimless cursor movement — if you want to move, you must press a button. We’ve seen how cumbersome it can be inside a keyboard, but there’s also something we can learn about efficient movement in these restrained circumstances.</p><p>Going back to the Homescreen, we can note that vertical and horizontal movement serve two distinct roles. Vertical movement switches between groups, while horizontal movement switches items within these groups. No matter how far you’ve gone inside a group, a single vertical click will move you into another.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/34-horizontal-group-movement.gif"><img alt="A grid of focusable items is organized into labeled groups (Group A, B, and C). Horizontal navigation moves between items within the same group (e.g., A1 to A2), while vertical navigation switches between groups (e.g., A1 to B1 to C1). Each group change requires only a single button press, illustrating an efficient and predictable movement model." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/33-horizontal-group-movement-800.gif" width="800"></img></a><figcaption>Every step on TV “costs” an action, so we might as well optimize movement. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/34-horizontal-group-movement.gif">Large preview</a>)</figcaption></figure><p>This subtle difference — two axes with separate roles — is the most efficient way of moving in a TV interface. Reversing the pattern: horizontal to switch groups, and vertical to drill down, will work like a charm as long as you keep the role of each axis well defined.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/36-vertical-group-movement.gif"><img alt="A vertically structured layout with three labeled groups (Group A, B, and C) arranged in columns. Navigating vertically moves within a group (e.g., A1 to A2 to A3), while horizontal input switches between groups (e.g., A1 to B1 to C1). This design maintains consistent and predictable movement, requiring only one directional press to traverse either within or across groups." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/35-vertical-group-movement-800.gif" width="800"></img></a><figcaption>Properly applied in a vertical layout, the principles of optimal movement remain the same. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/36-vertical-group-movement.gif">Large preview</a>)</figcaption></figure><p>Quietly brilliant and easy to overlook, this pattern powers almost every step of the TV experience. Remember it, and use it well.</p><h3 id="thinking-beyond-jpgs">Thinking Beyond JPGs</h3><p>After covering in detail many of the technicalities, let’s finish with some visual polish.</p><p>Most TV interfaces are driven by tightly packed rows of cover and poster art. While often beautifully designed, this type of content and layouts leave little room for visual flair. For years, the flat JPG, with its small file size, has been a go-to format, though contemporary alternatives like <a href="https://en.wikipedia.org/wiki/WebP">WebP</a> are slowly taking its place.</p><p>Meanwhile, we can rely on the tried and tested PNG to give a bit more shine to our TV interfaces. The simple fact that it supports transparency can help the often-rigid UIs feel more sophisticated. Used strategically and paired with simple focus effects such as background color changes, PNGs can bring subtle moments of delight to the interface.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/38-basic-png-focus.gif"><img alt="A focus animation shows two adjacent spotlight cards on a TV interface, each featuring a person and title. As focus shifts from the left to the right card, a transparent PNG overlay adapts smoothly to background color changes, preserving contrast and clarity without requiring hard edges or solid backgrounds." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/37-basic-png-focus-800.gif" width="800"></img></a><figcaption>Having a transparent background blends well with surface color changes common in TV interfaces. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/38-basic-png-focus.gif">Large preview</a>)</figcaption></figure><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/40-png-shape-focus.gif"><img alt="A focus animation highlights a card featuring a person. As the card gains focus, an animated orange wavy shape appears behind the person, creating a dynamic frame effect. This example shows how semi-transparent overlays with defined shapes can enhance focus without relying on solid rectangular backgrounds." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/39-png-shape-focus-800.gif" width="800"></img></a><figcaption>And don’t forget, transparency doesn’t have to mean that there shouldn't be any background at all. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/40-png-shape-focus.gif">Large preview</a>)</figcaption></figure><p>Moreover, if transformations like scaling and rotating are supported, you can really make those rectangular shapes come alive with layering multiple assets.</p><figure><a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/42-multilayer-focus.gif"><img alt="Animated TV UI section transitions through layered images with a background color change illustrating how combining multiple visuals and color shifts can add energy to a layout." height="450" src="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/41-multilayer-focus-800.gif" width="800"></img></a><figcaption>Combining multiple images along with a background color change can liven up certain sections. (<a href="https://files.smashing.media/articles/designing-tv-principles-patterns-practical-guidance/42-multilayer-focus.gif">Large preview</a>)</figcaption></figure><p>As you probably understand by now, these little touches of finesse don’t go out of bounds of possibility. They simply find more room to breathe within it. But with such limited capabilities, it’s best to learn all the different tricks that can help make your TV experiences stand out.</p><h2 id="closing-thoughts">Closing Thoughts</h2><p>Rooted in legacy, with a limited control scheme and a rather “shallow” interface, TV design reminds us to do the best with what we have at our disposal. The restraints I outlined are not meant to induce claustrophobia and make you feel limited in your design choices, but rather to serve you as <em>guides</em>. It is by accepting that fact that we can find freedom and new avenues to explore.</p><p>This two-part series of articles, just like my experience designing for TV, was not about reinventing the wheel with radical ideas. It was about understanding its nuances and contributing to what’s already there with my personal touch.</p><p>If you find yourself working in this design field, I hope my guide will serve as a warm welcome and will help you do your finest work. And if you have any questions, do leave a comment, and I will do my best to reply and help.</p><p>Good luck!</p><h3 id="further-reading">Further Reading</h3><ul><li>“<a href="https://developer.android.com/design/ui/tv/guides/foundations/design-for-tv">Design for TV</a>,” by Android Developers<br></br><em>Great TV design is all about putting content front and center. It’s about creating an interface that’s easier to use and navigate, even from a distance. It’s about making it easier to find the content you love, and to enjoy it in the best possible quality.</em></li><li>“<a href="https://uxdesign.cc/guidelines-designing-for-television-experience-524f19ab6357">TV Guidelines: A quick kick-off on designing for Television Experiences</a>,” by Andrea Pacheco<br></br><em>Just like designing a mobile app, designing a TV application can be a fun and complex thing to do, due to the numerous guidelines and best practices to follow. Below, I have listed the main best practices to keep in mind when designing an app for a 10-foot screen.</em></li><li>“<a href="https://marvelapp.com/blog/designing-for-television/">Designing for Television – TV Ui design</a>,” by Molly Lafferty<br></br><em>We’re no longer limited to a remote and cable box to control our TVs; we’re using Smart TVs, or streaming from set-top boxes like Roku and Apple TV, or using video game consoles like Xbox and PlayStation. And each of these devices allows a user interface that’s much more powerful than your old-fashioned on-screen guide.</em></li><li>“<a href="https://www.toptal.com/designers/ui/tv-ui-design">Rethinking User Interface Design for the TV Platform</a>,” by Pascal Potvin<br></br><em>Designing for television has become part of the continuum of devices that require a rethink of how we approach user interfaces and user experiences.</em></li><li>“<a href="https://developer.android.com/design/ui/tv/guides/styles/typography">Typography for TV</a>,” by Android Developers<br></br><em>As television screens are typically viewed from a distance, interfaces that use larger typography are more legible and comfortable for users. TV Design’s default type scale includes contrasting and flexible type styles to support a wide range of use cases.</em></li><li>“<a href="https://developer.apple.com/design/human-interface-guidelines/typography">Typography</a>,” by Apple Developer docs<br></br><em>Your typographic choices can help you display legible text, convey an information hierarchy, communicate important content, and express your brand or style.</em></li><li>“<a href="https://developer.android.com/design/ui/tv/guides/foundations/color-on-tv">Color on TV</a>,” by Android Developers<br></br><em>Color on TV design can inspire, set the mood, and even drive users to make decisions. It’s a powerful and tangible element that users notice first. As a rich way to connect with a wide audience, it’s no wonder color is an important step in crafting a high-quality TV interface.</em></li><li>“<a href="https://marvelapp.com/blog/designing-for-television/">Designing for Television — TV UI Design</a>,” by Molly Lafferty (Marvel Blog)<br></br><em>Today, we’re no longer limited to a remote and cable box to control our TVs; we’re using Smart TVs, or streaming from set-top boxes like Roku and Apple TV, or using video game consoles like Xbox and PlayStation. And each of these devices allows a user interface that’s much more powerful than your old-fashioned on-screen guide.</em></li></ul><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(mb, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (Milan Balać) <![CDATA[A Breeze Of Inspiration In September (2025 Wallpapers Edition)]]> https://smashingmagazine.com/2025/08/desktop-wallpaper-calendars-september-2025/ https://smashingmagazine.com/2025/08/desktop-wallpaper-calendars-september-2025/ Sun, 31 Aug 2025 08:00:00 GMT <h1>A Breeze Of Inspiration In September (2025 Wallpapers Edition) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>13 min read</li><li><a href="http://www.smashingmagazine.com/category/wallpapers">Wallpapers</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Could there be a better way to welcome the new month than with a new collection of desktop wallpapers? We’ve got some eye-catching designs to make your September just a bit more colorful. Enjoy!</section></p><p>September is just around the corner, and that means it’s time for some new wallpapers! For more than 14 years already, our <a href="https://www.smashingmagazine.com/category/wallpapers">monthly wallpapers series</a> has been the perfect occasion for artists and designers to challenge their creative skills and take on a little just-for-fun project — telling the stories they want to tell, using their favorite tools. This always makes for a <strong>unique and inspiring collection of wallpapers</strong> month after month, and, of course, this September is no exception.</p><p>In this post, you’ll find desktop wallpapers for <strong>September 2025</strong>, created with love by the community for the community. As a bonus, we’ve also added some oldies but goodies from our archives to the collection, so maybe you’ll spot one of your almost-forgotten favorites in here, too? A huge thank-you to everyone who shared their artworks with us this month — this post wouldn’t exist without your creativity and support!</p><p>By the way, if you’d like to <strong>get featured</strong> in one of our upcoming wallpapers editions, please don’t hesitate to <a href="https://www.smashingmagazine.com/desktop-wallpaper-calendars-join-in/">submit your design</a>. 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><h2 id="21st-night-of-september-09-2025">21st Night Of September</h2><p>“On the 21st night of September, the world danced in perfect harmony. Earth, Wind &amp; Fire set the tone and now it’s your turn to keep the rhythm alive.” — Designed by <a href="https://www.gingeritsolutions.com/">Ginger IT Solutions</a> from Serbia.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/sep-25-21st-night-of-september-full.png" title="21st Night Of September"><img alt="21st Night Of September" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-25-21st-night-of-september-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/sep-25-21st-night-of-september-preview.png" title="21st Night Of September - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-320x480.png" title="21st Night Of September - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-640x480.png" title="21st Night Of September - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-800x480.png" title="21st Night Of September - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-800x600.png" title="21st Night Of September - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1024x768.png" title="21st Night Of September - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1024x1024.png" title="21st Night Of September - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1152x864.png" title="21st Night Of September - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1280x720.png" title="21st Night Of September - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1280x800.png" title="21st Night Of September - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1280x960.png" title="21st Night Of September - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1280x1024.png" title="21st Night Of September - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1400x1050.png" title="21st Night Of September - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1440x900.png" title="21st Night Of September - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1600x1200.png" title="21st Night Of September - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1680x1050.png" title="21st Night Of September - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1680x1200.png" title="21st Night Of September - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1920x1080.png" title="21st Night Of September - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1920x1200.png" title="21st Night Of September - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1920x1440.png" title="21st Night Of September - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-2560x1440.png" title="21st Night Of September - 2560x1440">2560x1440</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-320x480.png" title="21st Night Of September - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-640x480.png" title="21st Night Of September - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-800x480.png" title="21st Night Of September - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-800x600.png" title="21st Night Of September - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1024x768.png" title="21st Night Of September - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1024x1024.png" title="21st Night Of September - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1152x864.png" title="21st Night Of September - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1280x720.png" title="21st Night Of September - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1280x800.png" title="21st Night Of September - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1280x960.png" title="21st Night Of September - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1280x1024.png" title="21st Night Of September - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1400x1050.png" title="21st Night Of September - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1440x900.png" title="21st Night Of September - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1600x1200.png" title="21st Night Of September - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1680x1050.png" title="21st Night Of September - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1680x1200.png" title="21st Night Of September - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1920x1080.png" title="21st Night Of September - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1920x1200.png" title="21st Night Of September - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1920x1440.png" title="21st Night Of September - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-2560x1440.png" title="21st Night Of September - 2560x1440">2560x1440</a></li></ul><h2 id="who-09-2025">Who</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/sep-25-who-full.png" title="Who"><img alt="Who" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-25-who-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/sep-25-who-preview.png" title="Who - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-640x480.png" title="Who - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-800x480.png" title="Who - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-800x600.png" title="Who - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1024x768.png" title="Who - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1024x1024.png" title="Who - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1152x864.png" title="Who - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1280x720.png" title="Who - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1280x800.png" title="Who - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1280x960.png" title="Who - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1280x1024.png" title="Who - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1366x768.png" title="Who - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1400x1050.png" title="Who - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1440x900.png" title="Who - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1600x1200.png" title="Who - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1680x1050.png" title="Who - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1680x1200.png" title="Who - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1920x1080.png" title="Who - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1920x1200.png" title="Who - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1920x1440.png" title="Who - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-2560x1440.png" title="Who - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-3840x2160.png" title="Who - 3840x2160">3840x2160</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-640x480.png" title="Who - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-800x480.png" title="Who - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-800x600.png" title="Who - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1024x768.png" title="Who - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1024x1024.png" title="Who - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1152x864.png" title="Who - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1280x720.png" title="Who - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1280x800.png" title="Who - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1280x960.png" title="Who - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1280x1024.png" title="Who - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1366x768.png" title="Who - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1400x1050.png" title="Who - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1440x900.png" title="Who - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1600x1200.png" title="Who - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1680x1050.png" title="Who - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1680x1200.png" title="Who - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1920x1080.png" title="Who - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1920x1200.png" title="Who - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1920x1440.png" title="Who - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-2560x1440.png" title="Who - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-3840x2160.png" title="Who - 3840x2160">3840x2160</a></li></ul><h2 id="skating-through-chocolate-milk-day-09-2025">Skating Through Chocolate Milk Day</h2><p>“Celebrate Chocolate Milk Day with a perfect blend of fun and flavor. From smooth sips to smooth rides, it’s all about enjoying the simple moments that make the day unforgettable.” — Designed by <a href="https://www.popwebdesign.net/">PopArt Studio</a> from Serbia.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/sep-25-skating-through-chocolate-milk-day-full.png" title="Skating Through Chocolate Milk Day!"><img alt="Skating Through Chocolate Milk Day!" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-25-skating-through-chocolate-milk-day-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/sep-25-skating-through-chocolate-milk-day-preview.png" title="Skating Through Chocolate Milk Day! - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-320x480.png" title="Skating Through Chocolate Milk Day! - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-640x480.png" title="Skating Through Chocolate Milk Day! - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-800x480.png" title="Skating Through Chocolate Milk Day! - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-800x600.png" title="Skating Through Chocolate Milk Day! - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1024x768.png" title="Skating Through Chocolate Milk Day! - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1024x1024.png" title="Skating Through Chocolate Milk Day! - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1152x864.png" title="Skating Through Chocolate Milk Day! - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1280x720.png" title="Skating Through Chocolate Milk Day! - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1280x800.png" title="Skating Through Chocolate Milk Day! - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1280x960.png" title="Skating Through Chocolate Milk Day! - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1280x1024.png" title="Skating Through Chocolate Milk Day! - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1400x1050.png" title="Skating Through Chocolate Milk Day! - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1440x900.png" title="Skating Through Chocolate Milk Day! - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1600x1200.png" title="Skating Through Chocolate Milk Day! - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1680x1050.png" title="Skating Through Chocolate Milk Day! - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1680x1200.png" title="Skating Through Chocolate Milk Day! - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1920x1080.png" title="Skating Through Chocolate Milk Day! - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1920x1200.png" title="Skating Through Chocolate Milk Day! - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1920x1440.png" title="Skating Through Chocolate Milk Day! - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-2560x1440.png" title="Skating Through Chocolate Milk Day! - 2560x1440">2560x1440</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-320x480.png" title="Skating Through Chocolate Milk Day! - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-640x480.png" title="Skating Through Chocolate Milk Day! - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-800x480.png" title="Skating Through Chocolate Milk Day! - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-800x600.png" title="Skating Through Chocolate Milk Day! - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1024x768.png" title="Skating Through Chocolate Milk Day! - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1024x1024.png" title="Skating Through Chocolate Milk Day! - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1152x864.png" title="Skating Through Chocolate Milk Day! - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1280x720.png" title="Skating Through Chocolate Milk Day! - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1280x800.png" title="Skating Through Chocolate Milk Day! - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1280x960.png" title="Skating Through Chocolate Milk Day! - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1280x1024.png" title="Skating Through Chocolate Milk Day! - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1400x1050.png" title="Skating Through Chocolate Milk Day! - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1440x900.png" title="Skating Through Chocolate Milk Day! - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1600x1200.png" title="Skating Through Chocolate Milk Day! - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1680x1050.png" title="Skating Through Chocolate Milk Day! - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1680x1200.png" title="Skating Through Chocolate Milk Day! - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1920x1080.png" title="Skating Through Chocolate Milk Day! - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1920x1200.png" title="Skating Through Chocolate Milk Day! - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1920x1440.png" title="Skating Through Chocolate Milk Day! - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-2560x1440.png" title="Skating Through Chocolate Milk Day! - 2560x1440">2560x1440</a></li></ul><h2 id="mood-09-2025">Mood</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/sep-25-mood-full.png" title="Mood"><img alt="Mood" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-25-mood-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/sep-25-mood-preview.png" title="Mood - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-640x480.png" title="Mood - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-800x480.png" title="Mood - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-800x600.png" title="Mood - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1024x768.png" title="Mood - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1024x1024.png" title="Mood - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1152x864.png" title="Mood - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1280x720.png" title="Mood - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1280x800.png" title="Mood - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1280x960.png" title="Mood - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1280x1024.png" title="Mood - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1366x768.png" title="Mood - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1400x1050.png" title="Mood - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1440x900.png" title="Mood - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1600x1200.png" title="Mood - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1680x1050.png" title="Mood - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1680x1200.png" title="Mood - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1920x1080.png" title="Mood - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1920x1200.png" title="Mood - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1920x1440.png" title="Mood - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-2560x1440.png" title="Mood - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-3840x2160.png" title="Mood - 3840x2160">3840x2160</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-640x480.png" title="Mood - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-800x480.png" title="Mood - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-800x600.png" title="Mood - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1024x768.png" title="Mood - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1024x1024.png" title="Mood - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1152x864.png" title="Mood - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1280x720.png" title="Mood - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1280x800.png" title="Mood - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1280x960.png" title="Mood - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1280x1024.png" title="Mood - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1366x768.png" title="Mood - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1400x1050.png" title="Mood - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1440x900.png" title="Mood - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1600x1200.png" title="Mood - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1680x1050.png" title="Mood - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1680x1200.png" title="Mood - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1920x1080.png" title="Mood - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1920x1200.png" title="Mood - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1920x1440.png" title="Mood - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-2560x1440.png" title="Mood - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-3840x2160.png" title="Mood - 3840x2160">3840x2160</a></li></ul><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://www.smashingmagazine.com/printed-books/form-design-patterns/"><div><picture><source srcset="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/64e57b41-b7f1-4ae3-886a-806cce580ef9/form-design-patterns-shop-image-1-1.avif" type="image/avif"><img alt="Feature Panel" decoding="async" height="698" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/51e0f837-d85d-4b28-bfab-1c9a47f0ce33/form-design-patterns-shop-image.png" width="481"></img></source></picture></div></a></div></aside></div><h2 id="funny-cats">Funny Cats</h2><p>“Cats are beautiful animals. They’re quiet, clean, and warm. They’re funny and can become an endless source of love and entertainment. Here for the cats!” — Designed by UrbanUI from India.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/81a90359-0917-4ca1-84e5-700b5c71e3b9/sept-17-funny-cats-full-opt.png" title="Funny Cats"><img alt="Funny Cats" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/77eaabbb-9743-45b6-99f3-f35a5584275f/sept-17-funny-cats-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/77eaabbb-9743-45b6-99f3-f35a5584275f/sept-17-funny-cats-preview-opt.png" title="Funny Cats - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-360x640.png" title="Funny Cats - 360x640">360x640</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1024x768.png" title="Funny Cats - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1280x720.png" title="Funny Cats - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1280x800.png" title="Funny Cats - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1280x960.png" title="Funny Cats - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1280x1024.png" title="Funny Cats - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1366x768.png" title="Funny Cats - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1400x1050.png" title="Funny Cats - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1440x900.png" title="Funny Cats - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1680x1200.png" title="Funny Cats - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1920x1080.png" title="Funny Cats - 1920x1080">1920x1080</a></li></ul><h2 id="pigman-and-robin">Pigman And Robin</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-pigman-and-robin-full-opt.png" title="Pigman And Robin"><img alt="Pigman And Robin" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-pigman-and-robin-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-pigman-and-robin-preview-opt.png" title="Pigman And Robin - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-640x480.png" title="Pigman And Robin - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-800x480.png" title="Pigman And Robin - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-800x600.png" title="Pigman And Robin - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1024x768.png" title="Pigman And Robin - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1024x1024.png" title="Pigman And Robin - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1152x864.png" title="Pigman And Robin - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1280x720.png" title="Pigman And Robin - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1280x800.png" title="Pigman And Robin - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1280x960.png" title="Pigman And Robin - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1280x1024.png" title="Pigman And Robin - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1366x768.png" title="Pigman And Robin - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1400x1050.png" title="Pigman And Robin - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1440x900.png" title="Pigman And Robin - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1600x1200.png" title="Pigman And Robin - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1680x1050.png" title="Pigman And Robin - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1680x1200.png" title="Pigman And Robin - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1920x1080.png" title="Pigman And Robin - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1920x1200.png" title="Pigman And Robin - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1920x1440.png" title="Pigman And Robin - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-2560x1440.png" title="Pigman And Robin - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-3840x2160.png" title="Pigman And Robin - 3840x2160">3840x2160</a></li></ul><h2 id="autumn-rains">Autumn Rains</h2><p>“This autumn, we expect to see a lot of rainy days and blues, so we wanted to change the paradigm and wish a warm welcome to the new season. After all, if you come to think of it: rain is not so bad if you have an umbrella and a raincoat. Come autumn, we welcome you!” — Designed by <a href="https://www.popwebdesign.net/web-design-agency.html">PopArt Studio</a> from Serbia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ee2102d2-b5fc-4da5-8dd8-4ad100b079e7/sept-17-autumn-rains-large-opt.png" title="Autumn Rains"><img alt="Autumn Rains" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/55161fb1-16dc-47e1-a118-5ecd0f0a3fbb/sept-17-autumn-rains-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/55161fb1-16dc-47e1-a118-5ecd0f0a3fbb/sept-17-autumn-rains-preview-opt.png" title="Autumn Rains - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-320x480.jpg" title="Autumn Rains - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-640x480.jpg" title="Autumn Rains - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-800x480.jpg" title="Autumn Rains - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-800x600.jpg" title="Autumn Rains - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1024x768.jpg" title="Autumn Rains - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1024x1024.jpg" title="Autumn Rains - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1152x864.jpg" title="Autumn Rains - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1280x720.jpg" title="Autumn Rains - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1280x800.jpg" title="Autumn Rains - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1280x960.jpg" title="Autumn Rains - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1280x1024.jpg" title="Autumn Rains - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1366x768.jpg" title="Autumn Rains - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1400x1050.jpg" title="Autumn Rains - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1440x900.jpg" title="Autumn Rains - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1600x1200.jpg" title="Autumn Rains - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1680x1050.jpg" title="Autumn Rains - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1680x1200.jpg" title="Autumn Rains - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1920x1080.jpg" title="Autumn Rains - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1920x1200.jpg" title="Autumn Rains - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1920x1440.jpg" title="Autumn Rains - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-2560x1440.jpg" title="Autumn Rains - 2560x1440">2560x1440</a></li></ul><h2 id="terrazzo">Terrazzo</h2><p>“With the end of summer and fall coming soon, I created this terrazzo pattern wallpaper to brighten up your desktop. Enjoy the month!” — Designed by <a href="https://www.embee.me/">Melissa Bogemans</a> from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f2ab4afe-e503-4235-96fc-3c9ceade89e3/sep-20-terrazzo-full.png" title="Terrazzo"><img alt="Terrazzo" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2644364f-a26f-40da-a000-4f0aea0db125/sep-20-terrazzo-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2644364f-a26f-40da-a000-4f0aea0db125/sep-20-terrazzo-preview-opt.png" title="Terrazzo - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-320x480.png" title="Terrazzo - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-640x480.png" title="Terrazzo - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-800x480.png" title="Terrazzo - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-800x600.png" title="Terrazzo - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1024x768.png" title="Terrazzo - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1024x1024.png" title="Terrazzo - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1152x864.png" title="Terrazzo - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1280x720.png" title="Terrazzo - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1280x800.png" title="Terrazzo - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1280x960.png" title="Terrazzo - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1280x1024.png" title="Terrazzo - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1400x1050.png" title="Terrazzo - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1440x900.png" title="Terrazzo - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1600x1200.png" title="Terrazzo - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1680x1050.png" title="Terrazzo - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1680x1200.png" title="Terrazzo - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1920x1080.png" title="Terrazzo - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1920x1200.png" title="Terrazzo - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1920x1440.png" title="Terrazzo - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-2560x1440.png" title="Terrazzo - 2560x1440">2560x1440</a></li></ul><h2 id="summer-ending">Summer Ending</h2><p>“As summer comes to an end, all the creatures pull back to their hiding places, searching for warmth within themselves and dreaming of neverending adventures under the tinted sky of closing dog days.” — Designed by Ana Masnikosa from Belgrade, Serbia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/22d5ee98-2e90-4597-a06f-88de7965c1e2/sept-17-summer-ending-large-opt.png" title="Summer Ending"><img alt="Summer Ending" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ed639caf-f1b5-43e7-9af6-ff85a675a4ef/sept-17-summer-ending-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ed639caf-f1b5-43e7-9af6-ff85a675a4ef/sept-17-summer-ending-preview-opt.png" title="Summer Ending - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-320x480.png" title="Summer Ending - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-640x480.png" title="Summer Ending - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-800x480.png" title="Summer Ending - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-800x600.png" title="Summer Ending - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1024x768.png" title="Summer Ending - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1024x1024.png" title="Summer Ending - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1152x864.png" title="Summer Ending - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1280x720.png" title="Summer Ending - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1280x800.png" title="Summer Ending - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1280x960.png" title="Summer Ending - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1280x1024.png" title="Summer Ending - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1400x1050.png" title="Summer Ending - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1440x900.png" title="Summer Ending - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1600x1200.png" title="Summer Ending - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1680x1050.png" title="Summer Ending - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1680x1200.png" title="Summer Ending - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1920x1080.png" title="Summer Ending - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1920x1200.png" title="Summer Ending - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1920x1440.png" title="Summer Ending - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-2560x1440.png" title="Summer Ending - 2560x1440">2560x1440</a></li></ul><h2 id="cacti-everywhere">Cacti Everywhere</h2><p>“Seasons come and go, but our brave cactuses still stand. Summer is almost over and autumn is coming, but the beloved plants don’t care.” — Designed by <a href="https://pathlove.com/">Lívia Lénárt</a> from Hungary.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/65da1859-5ab5-475e-9940-f4e3045455d4/sep-18-cacti-everywhere-full-opt.png" title="Cacti Everywhere"><img alt="Cacti Everywhere" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2df837fa-5d23-4898-8502-0ed53e2cb2df/sep-18-cacti-everywhere-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2df837fa-5d23-4898-8502-0ed53e2cb2df/sep-18-cacti-everywhere-preview-opt.png" title="Cacti Everywhere - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-320x480.jpg" title="Cacti Everywhere - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-800x480.jpg" title="Cacti Everywhere - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-1024x768.jpg" title="Cacti Everywhere - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-1024x1024.jpg" title="Cacti Everywhere - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-1280x1024.jpg" title="Cacti Everywhere - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-1400x1050.jpg" title="Cacti Everywhere - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-1920x1080.jpg" title="Cacti Everywhere - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-1920x1200.jpg" title="Cacti Everywhere - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-1920x1440.jpg" title="Cacti Everywhere - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-2560x1440.jpg" title="Cacti Everywhere - 2560x1440">2560x1440</a></li></ul><h2 id="flower-soul">Flower Soul</h2><p>“The earth has music for those who listen. Take a break and relax and while you drive out the stress, catch a glimpse of the beautiful nature around you. Can you hear the rhythm of the breeze blowing, the flowers singing, and the butterflies fluttering to cheer you up? We dedicate flowers which symbolize happiness and love to one and all.” — Designed by <a href="https://acodez.in/">Krishnankutty</a> from India.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f691ba9d-d4ab-4767-9899-836c61f6aeb0/sept-16-flower-soul-large-opt.png" title="Flower Soul"><img alt="Flower Soul" decoding="async" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/247433e6-81e3-4d55-9b68-55578f4138b8/sept-16-flower-soul-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/247433e6-81e3-4d55-9b68-55578f4138b8/sept-16-flower-soul-preview-opt.png" title="Flower Soul - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-320x480.png" title="Flower Soul - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-640x480.png" title="Flower Soul - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-800x480.png" title="Flower Soul - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-800x600.png" title="Flower Soul - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1024x768.png" title="Flower Soul - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1024x1024.png" title="Flower Soul - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1152x864.png" title="Flower Soul - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1280x720.png" title="Flower Soul - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1280x960.png" title="Flower Soul - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1280x1024.png" title="Flower Soul - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1366x768.png" title="Flower Soul - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1400x1050.png" title="Flower Soul - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1440x900.png" title="Flower Soul - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1600x1200.png" title="Flower Soul - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1680x1050.png" title="Flower Soul - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1680x1200.png" title="Flower Soul - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1920x1080.png" title="Flower Soul - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1920x1200.png" title="Flower Soul - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1920x1440.png" title="Flower Soul - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-2560x1440.png" title="Flower Soul - 2560x1440">2560x1440</a></li></ul><h2 id="stay-or-leave">Stay Or Leave?</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/413b8d04-e98b-4503-a3f6-e5a25cdd3ba1/sep-19-stay-or-leave-full-opt.png" title="Stay Or Leave?"><img alt="Stay Or Leave?" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/84692544-a30d-4a78-9685-1278d065cc6e/sep-19-stay-or-leave-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/84692544-a30d-4a78-9685-1278d065cc6e/sep-19-stay-or-leave-preview-opt.png" title="Stay Or Leave? - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-320x480.png" title="Stay Or Leave? - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-640x480.png" title="Stay Or Leave? - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-800x480.png" title="Stay Or Leave? - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-800x600.png" title="Stay Or Leave? - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1024x768.png" title="Stay Or Leave? - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1024x1024.png" title="Stay Or Leave? - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1152x864.png" title="Stay Or Leave? - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1280x720.png" title="Stay Or Leave? - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1280x800.png" title="Stay Or Leave? - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1280x960.png" title="Stay Or Leave? - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1280x1024.png" title="Stay Or Leave? - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1366x768.png" title="Stay Or Leave? - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1400x1050.png" title="Stay Or Leave? - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1440x900.png" title="Stay Or Leave? - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1600x1200.png" title="Stay Or Leave? - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1680x1050.png" title="Stay Or Leave? - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1680x1200.png" title="Stay Or Leave? - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1920x1080.png" title="Stay Or Leave? - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1920x1200.png" title="Stay Or Leave? - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1920x1440.png" title="Stay Or Leave? - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-2560x1440.png" title="Stay Or Leave? - 2560x1440">2560x1440</a></li></ul><h2 id="rainy-flowers">Rainy Flowers</h2><p>Designed by <a href="https://teodoravasileva.net">Teodora Vasileva</a> from Bulgaria.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2024/sep-23-rainy-flowers-full-opt.png" title="Rainy Flowers"><img alt="Rainy Flowers" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2024/sep-23-rainy-flowers-preview.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2024/sep-23-rainy-flowers-preview.png" title="Rainy Flowers - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-640x480.jpg" title="Rainy Flowers - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-800x480.jpg" title="Rainy Flowers - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-800x600.jpg" title="Rainy Flowers - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1024x768.jpg" title="Rainy Flowers - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1280x720.jpg" title="Rainy Flowers - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1280x960.jpg" title="Rainy Flowers - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1280x1024.jpg" title="Rainy Flowers - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1400x1050.jpg" title="Rainy Flowers - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1680x1050.jpg" title="Rainy Flowers - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1680x1200.jpg" title="Rainy Flowers - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1920x1080.jpg" title="Rainy Flowers - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1920x1200.jpg" title="Rainy Flowers - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1920x1440.jpg" title="Rainy Flowers - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-2560x1440.jpg" title="Rainy Flowers - 2560x1440">2560x1440</a></li></ul><h2 id="listen-closer-the-mushrooms-are-growing">Listen Closer… The Mushrooms Are Growing</h2><p>“It’s this time of the year when children go to school and grown-ups go to collect mushrooms.” — Designed by <a href="https://izhik.com">Igor Izhik</a> from Canada.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/053d1630-6081-4179-b45e-e4b9311c7ef4/sept-15-listen-closer-the-mushrooms-are-growing-full-opt.png" title="Listen Closer… The Mushrooms Are Growing…"><img alt="Listen Closer… The Mushrooms Are Growing…" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/48d2812e-6e2b-4e34-87ec-e23a53297041/sept-15-listen-closer-the-mushrooms-are-growing-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/48d2812e-6e2b-4e34-87ec-e23a53297041/sept-15-listen-closer-the-mushrooms-are-growing-preview-opt.png" title="Listen Closer… The Mushrooms Are Growing… - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-640x480.jpg" title="Listen Closer… The Mushrooms Are Growing… - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-800x480.jpg" title="Listen Closer… The Mushrooms Are Growing… - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-800x600.jpg" title="Listen Closer… The Mushrooms Are Growing… - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1024x768.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1024x1024.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1152x864.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1280x720.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1280x800.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1280x960.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1280x1024.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1400x1050.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1440x900.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1600x1200.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1680x1050.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1680x1200.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1920x1080.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1920x1200.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1920x1440.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-2560x1440.jpg" title="Listen Closer… The Mushrooms Are Growing… - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-2560x1600.jpg" title="Listen Closer… The Mushrooms Are Growing… - 2560x1600">2560x1600</a></li></ul><h2 id="weekend-relax">Weekend Relax</h2><p>Designed by Robert from the United States.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/dff475dd-1a0b-497d-8598-3e13142a8ce2/sep-20-weekend-relax-full.png" title="Weekend Relax"><img alt="Weekend Relax" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/30f65a03-22e0-4593-92ec-9ab2e0bed79e/sep-20-weekend-relax-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/30f65a03-22e0-4593-92ec-9ab2e0bed79e/sep-20-weekend-relax-preview-opt.png" title="Weekend Relax - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sep-20/weekend-relax/nocal/sep-20-weekend-relax-nocal-320x480.png" title="Weekend Relax - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/weekend-relax/nocal/sep-20-weekend-relax-nocal-1024x1024.png" title="Weekend Relax - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/weekend-relax/nocal/sep-20-weekend-relax-nocal-1280x720.png" title="Weekend Relax - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/weekend-relax/nocal/sep-20-weekend-relax-nocal-1680x1200.png" title="Weekend Relax - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/weekend-relax/nocal/sep-20-weekend-relax-nocal-1920x1080.png" title="Weekend Relax - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/weekend-relax/nocal/sep-20-weekend-relax-nocal-2560x1440.png" title="Weekend Relax - 2560x1440">2560x1440</a></li></ul><h2 id="hungry">Hungry</h2><p>Designed by <a href="https://www.doud.be">Elise Vanoorbeek</a> from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f0b9019c-0e62-4f2e-8b03-9502c1a85a00/sept-14-hungry-full-opt.jpg" title="Hungry"><img alt="Hungry" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/388cd653-31f5-4e98-bd72-29cb1e8ed4bf/sept-14-hungry-preview.jpg"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/388cd653-31f5-4e98-bd72-29cb1e8ed4bf/sept-14-hungry-preview.jpg" title="Hungry - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-640x480.jpg" title="Hungry - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-800x480.jpg" title="Hungry - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-800x600.jpg" title="Hungry - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1024x768.jpg" title="Hungry - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1024x1024.jpg" title="Hungry - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1152x864.jpg" title="Hungry - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1280x720.jpg" title="Hungry - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1280x800.jpg" title="Hungry - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1280x960.jpg" title="Hungry - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1280x1024.jpg" title="Hungry - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1366x768.jpg" title="Hungry - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1440x1050.jpg" title="Hungry - 1440x1050">1440x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1440x900.jpg" title="Hungry - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1600x1200.jpg" title="Hungry - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1680x1050.jpg" title="Hungry - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1680x1200.jpg" title="Hungry - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1920x1080.jpg" title="Hungry - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1920x1200.jpg" title="Hungry - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1920x1440.jpg" title="Hungry - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-2560x1440.jpg" title="Hungry - 2560x1440">2560x1440</a></li></ul><h2 id="national-video-games-day-delight">National Video Games Day Delight</h2><p>“September 12th brings us National Video Games Day. US-based video game players love this day and celebrate with huge gaming tournaments. What was once a 2D experience in the home is now a global phenomenon with players playing against each other across statelines and national borders via the internet. National Video Games Day gives gamers the perfect chance to celebrate and socialize! So grab your controller, join online, and let the games begin!” — Designed by <a href="https://www.everincreasingcircles.com/">Ever Increasing Circles</a> from the United Kingdom.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/65043639-9b5d-4516-9371-7b0b50b1ef30/sep-19-national-video-games-day-delight-large-opt.png" title="National Video Games Day Delight"><img alt="National Video Games Day Delight" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a2e6f3ea-b44c-456a-a8be-509911dfb34a/sep-19-national-video-games-day-delight-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a2e6f3ea-b44c-456a-a8be-509911dfb34a/sep-19-national-video-games-day-delight-preview-opt.png" title="National Video Games Day Delight - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-320x480.jpg" title="National Video Games Day Delight - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-640x480.jpg" title="National Video Games Day Delight - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-800x480.jpg" title="National Video Games Day Delight - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-800x600.jpg" title="National Video Games Day Delight - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1024x768.jpg" title="National Video Games Day Delight - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1024x1024.jpg" title="National Video Games Day Delight - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1152x864.jpg" title="National Video Games Day Delight - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1280x720.jpg" title="National Video Games Day Delight - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1280x800.jpg" title="National Video Games Day Delight - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1280x960.jpg" title="National Video Games Day Delight - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1280x1024.jpg" title="National Video Games Day Delight - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1366x768.jpg" title="National Video Games Day Delight - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1400x1050.jpg" title="National Video Games Day Delight - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1440x900.jpg" title="National Video Games Day Delight - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1600x1200.jpg" title="National Video Games Day Delight - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1680x1050.jpg" title="National Video Games Day Delight - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1680x1200.jpg" title="National Video Games Day Delight - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1920x1080.jpg" title="National Video Games Day Delight - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1920x1200.jpg" title="National Video Games Day Delight - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1920x1440.jpg" title="National Video Games Day Delight - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-2560x1440.jpg" title="National Video Games Day Delight - 2560x1440">2560x1440</a></li></ul><h2 id="more-bananas">More Bananas</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-more-bananas-full-opt.png" title="More Bananas"><img alt="More Bananas" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-more-bananas-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-more-bananas-preview-opt.png" title="More Bananas - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-640x480.png" title="More Bananas - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-800x480.png" title="More Bananas - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-800x600.png" title="More Bananas - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1024x768.png" title="More Bananas - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1024x1024.png" title="More Bananas - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1152x864.png" title="More Bananas - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1280x720.png" title="More Bananas - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1280x800.png" title="More Bananas - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1280x960.png" title="More Bananas - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1280x1024.png" title="More Bananas - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1366x768.png" title="More Bananas - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1400x1050.png" title="More Bananas - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1440x900.png" title="More Bananas - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1600x1200.png" title="More Bananas - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1680x1050.png" title="More Bananas - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1680x1200.png" title="More Bananas - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1920x1080.png" title="More Bananas - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1920x1200.png" title="More Bananas - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1920x1440.png" title="More Bananas - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-2560x1440.png" title="More Bananas - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-3840x2160.png" title="More Bananas - 3840x2160">3840x2160</a></li></ul><h2 id="national-elephant-appreciation-day">National Elephant Appreciation Day</h2><p>“Today, we celebrate these magnificent creatures who play such a vital role in our ecosystems and cultures. Elephants are symbols of wisdom, strength, and loyalty. Their social bonds are strong, and their playful nature, especially in the young ones, reminds us of the importance of joy and connection in our lives.” — Designed by <a href="https://www.popwebdesign.net/">PopArt Studio</a> from Serbia.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-national-elephant-appreciation-day-full-opt.png" title="National Elephant Appreciation Day"><img alt="National Elephant Appreciation Day" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-national-elephant-appreciation-day-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-national-elephant-appreciation-day-preview-opt.png" title="National Elephant Appreciation Day - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-320x480.png" title="National Elephant Appreciation Day - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-640x480.png" title="National Elephant Appreciation Day - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-800x480.png" title="National Elephant Appreciation Day - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-800x600.png" title="National Elephant Appreciation Day - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1024x768.png" title="National Elephant Appreciation Day - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1024x1024.png" title="National Elephant Appreciation Day - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1152x864.png" title="National Elephant Appreciation Day - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1280x720.png" title="National Elephant Appreciation Day - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1280x800.png" title="National Elephant Appreciation Day - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1280x960.png" title="National Elephant Appreciation Day - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1280x1024.png" title="National Elephant Appreciation Day - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1400x1050.png" title="National Elephant Appreciation Day - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1440x900.png" title="National Elephant Appreciation Day - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1600x1200.png" title="National Elephant Appreciation Day - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1680x1050.png" title="National Elephant Appreciation Day - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1680x1200.png" title="National Elephant Appreciation Day - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1920x1080.png" title="National Elephant Appreciation Day - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1920x1200.png" title="National Elephant Appreciation Day - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1920x1440.png" title="National Elephant Appreciation Day - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-2560x1440.png" title="National Elephant Appreciation Day - 2560x1440">2560x1440</a></li></ul><h2 id="long-live-summer">Long Live Summer</h2><p>“While September’s Autumnal Equinox technically signifies the end of the summer season, this wallpaper is for all those summer lovers, like me, who don’t want the sunshine, warm weather, and lazy days to end.” — Designed by Vicki Grunewald from Washington.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1431a5a8-a30f-4ab8-8875-0be50394f701/sept-15-long-live-summer-full-opt.png" title="Long Live Summer"><img alt="Long Live Summer" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/266371d3-48a0-4692-b12b-c2a0162f0b95/sept-15-long-live-summer-preview.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/266371d3-48a0-4692-b12b-c2a0162f0b95/sept-15-long-live-summer-preview.png" title="Long Live Summer - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-320x480.png" title="Long Live Summer - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-640x480.png" title="Long Live Summer - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-800x480.png" title="Long Live Summer - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-800x600.png" title="Long Live Summer - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1024x768.png" title="Long Live Summer - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1024x1024.png" title="Long Live Summer - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1152x864.png" title="Long Live Summer - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1280x720.png" title="Long Live Summer - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1280x800.png" title="Long Live Summer - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1280x960.png" title="Long Live Summer - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1280x1024.png" title="Long Live Summer - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1366x768.png" title="Long Live Summer - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1400x1050.png" title="Long Live Summer - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1440x900.png" title="Long Live Summer - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1600x1200.png" title="Long Live Summer - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1680x1050.png" title="Long Live Summer - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1680x1200.png" title="Long Live Summer - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1920x1080.png" title="Long Live Summer - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1920x1200.png" title="Long Live Summer - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1920x1440.png" title="Long Live Summer - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-2560x1440.png" title="Long Live Summer - 2560x1440">2560x1440</a></li></ul><h2 id="bear-time">Bear Time</h2><p>Designed by <a href="https://www.instagram.com/auvrea_illustration/">Bojana Stojanovic</a> from Serbia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/71c7c07f-f784-4f21-82c5-3a08e2e8416d/sep-19-bear-time-large-opt.png" title="Bear Time"><img alt="Bear Time" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7b9c1c73-6254-49d5-9e19-4f0e83e5bb0c/sep-19-bear-time-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7b9c1c73-6254-49d5-9e19-4f0e83e5bb0c/sep-19-bear-time-preview-opt.png" title="Bear Time - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-320x480.png" title="Bear Time - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-640x480.png" title="Bear Time - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-800x480.png" title="Bear Time - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-800x600.png" title="Bear Time - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1024x768.png" title="Bear Time - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1024x1024.png" title="Bear Time - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1152x864.png" title="Bear Time - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1280x720.png" title="Bear Time - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1280x800.png" title="Bear Time - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1280x960.png" title="Bear Time - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1280x1080.png" title="Bear Time - 1280x1080">1280x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1366x768.png" title="Bear Time - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1400x1050.png" title="Bear Time - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1440x990.png" title="Bear Time - 1440x990">1440x990</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1600x1200.png" title="Bear Time - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1680x1050.png" title="Bear Time - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1680x1200.png" title="Bear Time - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1920x1080.png" title="Bear Time - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1920x1200.png" title="Bear Time - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1920x1440.png" title="Bear Time - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-2560x1440.png" title="Bear Time - 2560x1440">2560x1440</a></li></ul><h2 id="still-in-vacation-mood">Still In Vacation Mood</h2><p>“It’s officially the end of summer and I’m still in vacation mood, dreaming about all the amazing places I’ve seen. This illustration is inspired by a small town in France, on the Atlantic coast, right by the beach.” — Designed by <a href="https://www.behance.net/mirunasfia">Miruna Sfia</a> from Romania.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/df067a6a-5e87-48db-bae1-e6c20a3814a3/sept-17-still-in-vacation-mood-full-opt.png" title="Still In Vacation Mood"><img alt="Still In Vacation Mood" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4dc14ac0-029c-4f57-85ed-76b49cb5c183/sept-17-still-in-vacation-mood-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4dc14ac0-029c-4f57-85ed-76b49cb5c183/sept-17-still-in-vacation-mood-preview-opt.png" title="Still In Vacation Mood - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-320x480.png" title="Still In Vacation Mood - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-640x480.png" title="Still In Vacation Mood - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-800x480.png" title="Still In Vacation Mood - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-800x600.png" title="Still In Vacation Mood - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1024x768.png" title="Still In Vacation Mood - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1024x1024.png" title="Still In Vacation Mood - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1152x864.png" title="Still In Vacation Mood - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1280x720.png" title="Still In Vacation Mood - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1280x800.png" title="Still In Vacation Mood - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1280x960.png" title="Still In Vacation Mood - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1280x1024.png" title="Still In Vacation Mood - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1440x900.png" title="Still In Vacation Mood - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1440x1050.png" title="Still In Vacation Mood - 1440x1050">1440x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1600x1200.png" title="Still In Vacation Mood - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1680x1050.png" title="Still In Vacation Mood - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1680x1200.png" title="Still In Vacation Mood - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1920x1080.png" title="Still In Vacation Mood - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1920x1200.png" title="Still In Vacation Mood - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1920x1440.png" title="Still In Vacation Mood - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-2560x1440.png" title="Still In Vacation Mood - 2560x1440">2560x1440</a></li></ul><h2 id="maryland-pride">Maryland Pride</h2><p>“As summer comes to a close, so does the end of blue crab season in Maryland. Blue crabs have been a regional delicacy since the 1700s and have become Maryland’s most valuable fishing industry, adding millions of dollars to the Maryland economy each year. The blue crab has contributed so much to the state’s regional culture and economy, in 1989 it was named the State Crustacean, cementing its importance in Maryland history.” — Designed by <a href="https://bit.ly/TheHannonGroup">The Hannon Group</a> from Washington DC.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0c681011-d8d1-4c4b-8e13-69aed69f9471/sept-17-marylandpride-large-opt.png" title="Maryland Pride"><img alt="Maryland Pride" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ee60f479-606f-44cd-80c7-ec168d9d54f3/sept-17-marylandpride-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ee60f479-606f-44cd-80c7-ec168d9d54f3/sept-17-marylandpride-preview-opt.png" title="Maryland Pride - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-320x480.png" title="Maryland Pride - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-640x480.png" title="Maryland Pride - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-800x600.png" title="Maryland Pride - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-1024x768.png" title="Maryland Pride - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-1280x960.png" title="Maryland Pride - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-1440x900.png" title="Maryland Pride - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-1600x1200.png" title="Maryland Pride - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-1680x1050.png" title="Maryland Pride - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-1680x1200.png" title="Maryland Pride - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-1920x1080.png" title="Maryland Pride - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-1920x1440.png" title="Maryland Pride - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-2560x1440.png" title="Maryland Pride - 2560x1440">2560x1440</a></li></ul><h2 id="summer-in-costa-rica">Summer In Costa Rica</h2><p>“We continue in tropical climates. In this case, we travel to Costa Rica to observe the Arenal volcano from the lake while we use a kayak.” — Designed by <a href="https://www.silocreativo.com/en">Veronica Valenzuela</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-summer-in-costa-rica-full-opt.png" title="Summer In Costa Rica"><img alt="Summer In Costa Rica" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-summer-in-costa-rica-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-summer-in-costa-rica-preview-opt.png" title="Summer In Costa Rica - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-640x480.png" title="Summer In Costa Rica - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-800x480.png" title="Summer In Costa Rica - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-1024x768.png" title="Summer In Costa Rica - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-1280x720.png" title="Summer In Costa Rica - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-1280x800.png" title="Summer In Costa Rica - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-1440x900.png" title="Summer In Costa Rica - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-1600x1200.png" title="Summer In Costa Rica - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-1920x1080.png" title="Summer In Costa Rica - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-1920x1440.png" title="Summer In Costa Rica - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-2560x1440.png" title="Summer In Costa Rica - 2560x1440">2560x1440</a></li></ul><h2 id="wine-harvest-season">Wine Harvest Season</h2><p>“Welcome to the wine harvest season in Serbia. It’s September, and the hazy sunshine bathes the vines on the slopes of Fruška Gora. Everything is ready for the making of Bermet, the most famous wine from Serbia. This spiced wine was a favorite of the Austro-Hungarian elite and was served even on the Titanic. Bermet’s recipe is a closely guarded secret, and the wine is produced by just a handful of families in the town of Sremski Karlovci, near Novi Sad. On the other side of Novi Sad, plains of corn and sunflower fields blend in with the horizon, catching the last warm sun rays of this year.” — Designed by <a href="https://www.popwebdesign.net/logo-design-novisad.html">PopArt Studio</a> from Serbia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/635541fb-2898-49c5-90f5-df7855a81568/sep-21-wine-harvest-season-full-opt.png" title="Wine Harvest Season"><img alt="Wine Harvest Season" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4e4c0b7b-0068-48f7-845e-bf20b10d8cec/sep-21-wine-harvest-season-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4e4c0b7b-0068-48f7-845e-bf20b10d8cec/sep-21-wine-harvest-season-preview-opt.png" title="Wine Harvest Season - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-320x480.jpg" title="Wine Harvest Season - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-640x480.jpg" title="Wine Harvest Season - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-800x480.jpg" title="Wine Harvest Season - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-800x600.jpg" title="Wine Harvest Season - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1024x768.jpg" title="Wine Harvest Season - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1024x1024.jpg" title="Wine Harvest Season - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1152x864.jpg" title="Wine Harvest Season - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1280x720.jpg" title="Wine Harvest Season - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1280x800.jpg" title="Wine Harvest Season - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1280x960.jpg" title="Wine Harvest Season - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1280x1024.jpg" title="Wine Harvest Season - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1366x768.jpg" title="Wine Harvest Season - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1400x1050.jpg" title="Wine Harvest Season - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1440x900.jpg" title="Wine Harvest Season - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1600x1200.jpg" title="Wine Harvest Season - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1680x1050.jpg" title="Wine Harvest Season - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1680x1200.jpg" title="Wine Harvest Season - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1920x1080.jpg" title="Wine Harvest Season - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1920x1200.jpg" title="Wine Harvest Season - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1920x1440.jpg" title="Wine Harvest Season - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-2560x1440.jpg" title="Wine Harvest Season - 2560x1440">2560x1440</a></li></ul><h2 id="office">Office</h2><p>“Clean, minimalistic office for a productive day.” — Designed by Antun Hiršman from Croatia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/254b06d0-db60-4b99-bbcb-b0ee55d30465/sept-16-office-full-opt.png" title="Office"><img alt="Office" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5462c653-9c0b-4ae7-97d5-139ce8d48435/sept-16-office-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5462c653-9c0b-4ae7-97d5-139ce8d48435/sept-16-office-preview-opt.png" title="Office - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-16/office/nocal/sept-16-office-nocal-320x480.jpg" title="Office - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/office/nocal/sept-16-office-nocal-800x600.jpg" title="Office - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/office/nocal/sept-16-office-nocal-1280x720.jpg" title="Office - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/office/nocal/sept-16-office-nocal-1280x1024.jpg" title="Office - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/office/nocal/sept-16-office-nocal-1440x900.jpg" title="Office - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/office/nocal/sept-16-office-nocal-1680x1050.jpg" title="Office - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/office/nocal/sept-16-office-nocal-1920x1080.jpg" title="Office - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/office/nocal/sept-16-office-nocal-1920x1440.jpg" title="Office - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/office/nocal/sept-16-office-nocal-2560x1440.jpg" title="Office - 2560x1440">2560x1440</a></li></ul><h2 id="colors-of-september">Colors Of September</h2><p>“I love September. Its colors and smells.” — Designed by Juliagav from Ukraine.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f06a6968-1524-4afb-85a4-b12230506369/sep-13-colors-of-september-full-opt.png" title="colors of September"><img alt="colors of September" decoding="async" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b9a49341-db50-475f-a215-a51237e07bcf/sep-13-colors-of-september-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b9a49341-db50-475f-a215-a51237e07bcf/sep-13-colors-of-september-preview-opt.png" title="colors of September - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sep-13/colors-of-september/nocal/sep-13-colors-of-september-nocal-320x480.jpg" title="colors of September - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-13/colors-of-september/nocal/sep-13-colors-of-september-nocal-1024x768.jpg" title="colors of September - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-13/colors-of-september/nocal/sep-13-colors-of-september-nocal-1024x1024.jpg" title="colors of September - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-13/colors-of-september/nocal/sep-13-colors-of-september-nocal-1280x800.jpg" title="colors of September - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-13/colors-of-september/nocal/sep-13-colors-of-september-nocal-1280x1024.jpg" title="colors of September - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-13/colors-of-september/nocal/sep-13-colors-of-september-nocal-1440x900.jpg" title="colors of September - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-13/colors-of-september/nocal/sep-13-colors-of-september-nocal-1680x1050.jpg" title="colors of September - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-13/colors-of-september/nocal/sep-13-colors-of-september-nocal-1920x1080.jpg" title="colors of September - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-13/colors-of-september/nocal/sep-13-colors-of-september-nocal-2560x1440.jpg" title="colors of September - 2560x1440">2560x1440</a></li></ul><h2 id="never-stop-exploring">Never Stop Exploring</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/89f02687-d964-470b-9f2c-8cc52b7f25ee/sep-20-never-stop-exploring-full.png" title="Never Stop Exploring"><img alt="Never Stop Exploring" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/525be032-d473-4d7a-a706-0d46d65742f4/sep-20-never-stop-exploring-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/525be032-d473-4d7a-a706-0d46d65742f4/sep-20-never-stop-exploring-preview-opt.png" title="Never Stop Exploring - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-640x480.png" title="Never Stop Exploring - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-800x480.png" title="Never Stop Exploring - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-800x600.png" title="Never Stop Exploring - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1024x768.png" title="Never Stop Exploring - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1024x1024.png" title="Never Stop Exploring - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1152x864.png" title="Never Stop Exploring - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1280x720.png" title="Never Stop Exploring - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1280x800.png" title="Never Stop Exploring - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1280x960.png" title="Never Stop Exploring - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1280x1024.png" title="Never Stop Exploring - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1366x768.png" title="Never Stop Exploring - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1400x1050.png" title="Never Stop Exploring - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1440x900.png" title="Never Stop Exploring - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1600x1200.png" title="Never Stop Exploring - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1680x1050.png" title="Never Stop Exploring - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1680x1200.png" title="Never Stop Exploring - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1920x1080.png" title="Never Stop Exploring - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1920x1200.png" title="Never Stop Exploring - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1920x1440.png" title="Never Stop Exploring - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-2560x1440.png" title="Never Stop Exploring - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-3840x2160.png" title="Never Stop Exploring - 3840x2160">3840x2160</a></li></ul><p>.nl-box<strong>form .nl-box</strong>form–button,.nl-box<strong>form .nl-box</strong>form–email{flex-grow:1;flex-shrink:0;box-sizing:border-box;width:auto;margin:0;padding:.75em 1em;border:0;border-radius:11px;background:#fff;font-size:1em}</p><p>input.nl-box<strong>form–email:active,input.nl-box</strong>form–email:focus,.nl-box<strong>form–button:active,.nl-box</strong>form–button:focus{box-shadow:0 1px 1px rgba(0,0,0,.3)}</p><p>.nl-box<strong>form–button:-ms-input-placeholder,.nl-box</strong>form–email:-ms-input-placeholder{color:#777;font-style:italic}</p><p>.nl-box<strong>form–email::placeholder,.nl-box</strong>form–button::placeholder{color:#777;font-style:italic}</p><p>.nl-box<strong>form .nl-box</strong>form–button{transition:all .2s ease-in-out;color:#fff;background-color:#0168b8;font-family:Mija,-apple-system,Arial,BlinkMacSystemFont,“roboto Slab”, “droid Serif”, “segoe UI”, Ubuntu, Cantarell, Georgia, serif;font-weight:700;box-shadow:0 1px 1px rgba(0,0,0,.3);width:100%;border:0;border-left:1px solid #ddd;flex:2;border-top-left-radius:0;border-bottom-left-radius:0}</p><p>.nl-box<strong>form .nl-box</strong>form–email{border-top-right-radius:0;border-bottom-right-radius:0;width:100%;flex:4}</p><p>.nl-box__img{height:auto;width:100%}</p><p>@media all and (max-width: 650px){.nl-box<strong>form .nl-box</strong>group { flex-wrap: wrap; box-shadow: none; } .nl-box<strong>form .nl-box</strong>form–email, .nl-box<strong>form .nl-box</strong>form–button { border-radius: 11px; border-left: none; }</p> <p>.cards<strong>grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); } .nl-box</strong>form .nl-box<strong>form–email { box-shadow: 0 13px 27px -5px rgba(50, 50, 93, 0.25), 0 8px 16px -8px rgba(0, 0, 0, 0.3), 0 -6px 16px -6px rgba(0, 0, 0, 0.025); min-width: 100%; } .nl-box</strong>form .nl-box__form–button { margin-top: 1em; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); }}</p><p>.nl-box<strong>form .nl-box</strong>form–button:active,.nl-box<strong>form .nl-box</strong>form–button:focus,.nl-box<strong>form .nl-box</strong>form–button:hover{cursor:pointer;color:#fff;background-color:#0168b8;border-color:#dadada;box-shadow:0 1px 1px rgba(0,0,0,.3)}</p><p>.nl-box<strong>form .nl-box</strong>form–button:focus,.nl-box<strong>form .nl-box</strong>form–button:active{outline:none!important;text-shadow:1px 1px 1px rgba(0,0,0,.3);box-shadow:inset 0 3px 3px rgba(0,0,0,.3)}</p><p>.nl-box__group{display:flex;box-shadow:0 13px 27px -5px rgba(50,50,93,.25),0 8px 16px -8px rgba(0,0,0,.3),0 -6px 16px -6px rgba(0,0,0,.025);border-radius:11px}</p><p>.nl-box__wrapper{display:flex;flex-direction:column;justify-content:center}</p><p>.nl-box__form form{width:100%}</p><p>.nl-box<strong>form .nl-box</strong>group{margin:0}</p><p>.nl-box__caption{font-size:.9em;line-height:1.5em;color:#fff;border-radius:11px;padding:.5em 1em;display:inline-block;background-color:#0067b859;text-shadow:1px 1px 1px rgba(0,0,0,.3)}</p><p>.nl-box{margin:1.5em 0;padding:1em 0;box-shadow:none;max-width:750px;justify-self:center}</p><p>.nl-box__blue{background-color:#1b71bb;background-image:linear-gradient(#1b71bb 60%,#01a6c1 100%)}</p><p>.nl-box__desc{padding:.5rem 2rem 1rem}</p><p>.nl-box__image{width:100%;height:auto}</p><p>@media screen and (min-width: 48em){.nl-box__desc { padding: 0.5rem calc(2rem + 0.5vw) 1rem calc(2rem + 0.5vw); }}</p><p>.nl-box__desc–heading-link{color:#fff;text-shadow:1px 1px 1px rgba(0,0,0,.9)}</p><p>.nl-box__summary{border-bottom:0;color:#fff;font-style:normal;text-shadow:1px 1px 1px rgba(0,0,0,.4)}</p><p>.promo-box–blue{–promo-background:#e7f8ff;–promo-text:#000;–promo-highlight-text:#e7f8ff;–promo-highlight:#006fc6;–promo-highlight–hover:#006fc6}</p><p>.promo-box{background:var(–promo-background);color:var(–promo-text);position:relative;padding:125px 1.5em 2em;margin-top:125px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:11px;width:100%}</p><p>.promo-box__image-link{position:absolute;display:block;top:0;padding:0;left:50%;transform:translate(-50%,-50%);width:250px;height:250px;text-decoration:none;background:0 0}</p><p>.promo-box__image{width:100%;height:100%}</p><p>.promo-box__cta{background:#fff;color:#d33a2c;text-decoration:none;padding:.5em .8em;border-radius:11px;box-shadow:0 0 1px 1px rgba(0,0,0,.15);background-image:none;font-weight:700;font-size:1.2em;margin:0;position:relative;box-shadow:0 2px 6px rgba(0,0,0,.12);transition:background .4s ease-in-out,color .4s ease-in-out}</p><p>.promo-box<strong>cta:active,.promo-box</strong>cta:focus{outline:0!important;background:#fff;text-shadow:none;box-shadow:inset 0 3px 3px rgba(0,0,0,.3)}</p><p>.promo-box__heading{line-height:1.2;font-size:1.5em;font-weight:700;margin:1.25em 0 0}</p><p>.promo-box__button{background:var(–promo-highlight);border-radius:11px;padding:.8em 1em;font-size:1.15em;text-shadow:1px 1px 1px rgba(0,0,0,.3);text-decoration:none;color:#fff;font-weight:700;display:flex;width:100%;justify-content:center;transition:all .2s ease-in-out}</p><p>.promo-box<strong>button:active,.promo-box</strong>button:focus,.promo-box__button:hover{border-bottom:none;cursor:pointer;border-color:#dadada}</p><p>.promo-box<strong>button:active,.promo-box</strong>button:focus{outline:0!important;box-shadow:inset 0 3px 3px rgba(0,0,0,.3)}</p></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <h1>A Breeze Of Inspiration In September (2025 Wallpapers Edition) — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>13 min read</li><li><a href="http://www.smashingmagazine.com/category/wallpapers">Wallpapers</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Could there be a better way to welcome the new month than with a new collection of desktop wallpapers? We’ve got some eye-catching designs to make your September just a bit more colorful. Enjoy!</section></p><p>September is just around the corner, and that means it’s time for some new wallpapers! For more than 14 years already, our <a href="https://www.smashingmagazine.com/category/wallpapers">monthly wallpapers series</a> has been the perfect occasion for artists and designers to challenge their creative skills and take on a little just-for-fun project — telling the stories they want to tell, using their favorite tools. This always makes for a <strong>unique and inspiring collection of wallpapers</strong> month after month, and, of course, this September is no exception.</p><p>In this post, you’ll find desktop wallpapers for <strong>September 2025</strong>, created with love by the community for the community. As a bonus, we’ve also added some oldies but goodies from our archives to the collection, so maybe you’ll spot one of your almost-forgotten favorites in here, too? A huge thank-you to everyone who shared their artworks with us this month — this post wouldn’t exist without your creativity and support!</p><p>By the way, if you’d like to <strong>get featured</strong> in one of our upcoming wallpapers editions, please don’t hesitate to <a href="https://www.smashingmagazine.com/desktop-wallpaper-calendars-join-in/">submit your design</a>. 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><h2 id="21st-night-of-september-09-2025">21st Night Of September</h2><p>“On the 21st night of September, the world danced in perfect harmony. Earth, Wind &amp; Fire set the tone and now it’s your turn to keep the rhythm alive.” — Designed by <a href="https://www.gingeritsolutions.com/">Ginger IT Solutions</a> from Serbia.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/sep-25-21st-night-of-september-full.png" title="21st Night Of September"><img alt="21st Night Of September" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-25-21st-night-of-september-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/sep-25-21st-night-of-september-preview.png" title="21st Night Of September - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-320x480.png" title="21st Night Of September - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-640x480.png" title="21st Night Of September - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-800x480.png" title="21st Night Of September - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-800x600.png" title="21st Night Of September - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1024x768.png" title="21st Night Of September - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1024x1024.png" title="21st Night Of September - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1152x864.png" title="21st Night Of September - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1280x720.png" title="21st Night Of September - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1280x800.png" title="21st Night Of September - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1280x960.png" title="21st Night Of September - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1280x1024.png" title="21st Night Of September - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1400x1050.png" title="21st Night Of September - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1440x900.png" title="21st Night Of September - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1600x1200.png" title="21st Night Of September - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1680x1050.png" title="21st Night Of September - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1680x1200.png" title="21st Night Of September - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1920x1080.png" title="21st Night Of September - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1920x1200.png" title="21st Night Of September - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-1920x1440.png" title="21st Night Of September - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/cal/sep-25-21st-night-of-september-cal-2560x1440.png" title="21st Night Of September - 2560x1440">2560x1440</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-320x480.png" title="21st Night Of September - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-640x480.png" title="21st Night Of September - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-800x480.png" title="21st Night Of September - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-800x600.png" title="21st Night Of September - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1024x768.png" title="21st Night Of September - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1024x1024.png" title="21st Night Of September - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1152x864.png" title="21st Night Of September - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1280x720.png" title="21st Night Of September - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1280x800.png" title="21st Night Of September - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1280x960.png" title="21st Night Of September - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1280x1024.png" title="21st Night Of September - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1400x1050.png" title="21st Night Of September - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1440x900.png" title="21st Night Of September - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1600x1200.png" title="21st Night Of September - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1680x1050.png" title="21st Night Of September - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1680x1200.png" title="21st Night Of September - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1920x1080.png" title="21st Night Of September - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1920x1200.png" title="21st Night Of September - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-1920x1440.png" title="21st Night Of September - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/21st-night-of-september/nocal/sep-25-21st-night-of-september-nocal-2560x1440.png" title="21st Night Of September - 2560x1440">2560x1440</a></li></ul><h2 id="who-09-2025">Who</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/sep-25-who-full.png" title="Who"><img alt="Who" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-25-who-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/sep-25-who-preview.png" title="Who - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-640x480.png" title="Who - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-800x480.png" title="Who - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-800x600.png" title="Who - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1024x768.png" title="Who - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1024x1024.png" title="Who - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1152x864.png" title="Who - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1280x720.png" title="Who - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1280x800.png" title="Who - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1280x960.png" title="Who - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1280x1024.png" title="Who - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1366x768.png" title="Who - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1400x1050.png" title="Who - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1440x900.png" title="Who - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1600x1200.png" title="Who - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1680x1050.png" title="Who - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1680x1200.png" title="Who - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1920x1080.png" title="Who - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1920x1200.png" title="Who - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-1920x1440.png" title="Who - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-2560x1440.png" title="Who - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/cal/sep-25-who-cal-3840x2160.png" title="Who - 3840x2160">3840x2160</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-640x480.png" title="Who - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-800x480.png" title="Who - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-800x600.png" title="Who - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1024x768.png" title="Who - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1024x1024.png" title="Who - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1152x864.png" title="Who - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1280x720.png" title="Who - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1280x800.png" title="Who - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1280x960.png" title="Who - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1280x1024.png" title="Who - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1366x768.png" title="Who - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1400x1050.png" title="Who - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1440x900.png" title="Who - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1600x1200.png" title="Who - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1680x1050.png" title="Who - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1680x1200.png" title="Who - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1920x1080.png" title="Who - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1920x1200.png" title="Who - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-1920x1440.png" title="Who - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-2560x1440.png" title="Who - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/who/nocal/sep-25-who-nocal-3840x2160.png" title="Who - 3840x2160">3840x2160</a></li></ul><h2 id="skating-through-chocolate-milk-day-09-2025">Skating Through Chocolate Milk Day</h2><p>“Celebrate Chocolate Milk Day with a perfect blend of fun and flavor. From smooth sips to smooth rides, it’s all about enjoying the simple moments that make the day unforgettable.” — Designed by <a href="https://www.popwebdesign.net/">PopArt Studio</a> from Serbia.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/sep-25-skating-through-chocolate-milk-day-full.png" title="Skating Through Chocolate Milk Day!"><img alt="Skating Through Chocolate Milk Day!" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-25-skating-through-chocolate-milk-day-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/sep-25-skating-through-chocolate-milk-day-preview.png" title="Skating Through Chocolate Milk Day! - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-320x480.png" title="Skating Through Chocolate Milk Day! - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-640x480.png" title="Skating Through Chocolate Milk Day! - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-800x480.png" title="Skating Through Chocolate Milk Day! - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-800x600.png" title="Skating Through Chocolate Milk Day! - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1024x768.png" title="Skating Through Chocolate Milk Day! - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1024x1024.png" title="Skating Through Chocolate Milk Day! - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1152x864.png" title="Skating Through Chocolate Milk Day! - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1280x720.png" title="Skating Through Chocolate Milk Day! - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1280x800.png" title="Skating Through Chocolate Milk Day! - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1280x960.png" title="Skating Through Chocolate Milk Day! - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1280x1024.png" title="Skating Through Chocolate Milk Day! - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1400x1050.png" title="Skating Through Chocolate Milk Day! - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1440x900.png" title="Skating Through Chocolate Milk Day! - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1600x1200.png" title="Skating Through Chocolate Milk Day! - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1680x1050.png" title="Skating Through Chocolate Milk Day! - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1680x1200.png" title="Skating Through Chocolate Milk Day! - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1920x1080.png" title="Skating Through Chocolate Milk Day! - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1920x1200.png" title="Skating Through Chocolate Milk Day! - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-1920x1440.png" title="Skating Through Chocolate Milk Day! - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/cal/sep-25-skating-through-chocolate-milk-day-cal-2560x1440.png" title="Skating Through Chocolate Milk Day! - 2560x1440">2560x1440</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-320x480.png" title="Skating Through Chocolate Milk Day! - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-640x480.png" title="Skating Through Chocolate Milk Day! - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-800x480.png" title="Skating Through Chocolate Milk Day! - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-800x600.png" title="Skating Through Chocolate Milk Day! - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1024x768.png" title="Skating Through Chocolate Milk Day! - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1024x1024.png" title="Skating Through Chocolate Milk Day! - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1152x864.png" title="Skating Through Chocolate Milk Day! - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1280x720.png" title="Skating Through Chocolate Milk Day! - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1280x800.png" title="Skating Through Chocolate Milk Day! - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1280x960.png" title="Skating Through Chocolate Milk Day! - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1280x1024.png" title="Skating Through Chocolate Milk Day! - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1400x1050.png" title="Skating Through Chocolate Milk Day! - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1440x900.png" title="Skating Through Chocolate Milk Day! - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1600x1200.png" title="Skating Through Chocolate Milk Day! - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1680x1050.png" title="Skating Through Chocolate Milk Day! - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1680x1200.png" title="Skating Through Chocolate Milk Day! - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1920x1080.png" title="Skating Through Chocolate Milk Day! - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1920x1200.png" title="Skating Through Chocolate Milk Day! - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-1920x1440.png" title="Skating Through Chocolate Milk Day! - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/skating-through-chocolate-milk-day/nocal/sep-25-skating-through-chocolate-milk-day-nocal-2560x1440.png" title="Skating Through Chocolate Milk Day! - 2560x1440">2560x1440</a></li></ul><h2 id="mood-09-2025">Mood</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/sep-25-mood-full.png" title="Mood"><img alt="Mood" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-25-mood-preview-opt.png"></img></a></figure><ul><li><a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/sep-25-mood-preview.png" title="Mood - Preview">preview</a></li><li>with calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-640x480.png" title="Mood - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-800x480.png" title="Mood - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-800x600.png" title="Mood - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1024x768.png" title="Mood - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1024x1024.png" title="Mood - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1152x864.png" title="Mood - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1280x720.png" title="Mood - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1280x800.png" title="Mood - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1280x960.png" title="Mood - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1280x1024.png" title="Mood - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1366x768.png" title="Mood - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1400x1050.png" title="Mood - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1440x900.png" title="Mood - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1600x1200.png" title="Mood - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1680x1050.png" title="Mood - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1680x1200.png" title="Mood - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1920x1080.png" title="Mood - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1920x1200.png" title="Mood - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-1920x1440.png" title="Mood - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-2560x1440.png" title="Mood - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/cal/sep-25-mood-cal-3840x2160.png" title="Mood - 3840x2160">3840x2160</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-640x480.png" title="Mood - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-800x480.png" title="Mood - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-800x600.png" title="Mood - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1024x768.png" title="Mood - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1024x1024.png" title="Mood - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1152x864.png" title="Mood - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1280x720.png" title="Mood - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1280x800.png" title="Mood - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1280x960.png" title="Mood - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1280x1024.png" title="Mood - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1366x768.png" title="Mood - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1400x1050.png" title="Mood - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1440x900.png" title="Mood - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1600x1200.png" title="Mood - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1680x1050.png" title="Mood - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1680x1200.png" title="Mood - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1920x1080.png" title="Mood - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1920x1200.png" title="Mood - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-1920x1440.png" title="Mood - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-2560x1440.png" title="Mood - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-25/mood/nocal/sep-25-mood-nocal-3840x2160.png" title="Mood - 3840x2160">3840x2160</a></li></ul><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://www.smashingmagazine.com/printed-books/form-design-patterns/"><div><picture><source srcset="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/64e57b41-b7f1-4ae3-886a-806cce580ef9/form-design-patterns-shop-image-1-1.avif" type="image/avif"><img alt="Feature Panel" decoding="async" height="698" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/51e0f837-d85d-4b28-bfab-1c9a47f0ce33/form-design-patterns-shop-image.png" width="481"></img></source></picture></div></a></div></aside></div><h2 id="funny-cats">Funny Cats</h2><p>“Cats are beautiful animals. They’re quiet, clean, and warm. They’re funny and can become an endless source of love and entertainment. Here for the cats!” — Designed by UrbanUI from India.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/81a90359-0917-4ca1-84e5-700b5c71e3b9/sept-17-funny-cats-full-opt.png" title="Funny Cats"><img alt="Funny Cats" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/77eaabbb-9743-45b6-99f3-f35a5584275f/sept-17-funny-cats-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/77eaabbb-9743-45b6-99f3-f35a5584275f/sept-17-funny-cats-preview-opt.png" title="Funny Cats - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-360x640.png" title="Funny Cats - 360x640">360x640</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1024x768.png" title="Funny Cats - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1280x720.png" title="Funny Cats - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1280x800.png" title="Funny Cats - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1280x960.png" title="Funny Cats - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1280x1024.png" title="Funny Cats - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1366x768.png" title="Funny Cats - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1400x1050.png" title="Funny Cats - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1440x900.png" title="Funny Cats - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1680x1200.png" title="Funny Cats - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/funny-cats/nocal/sept-17-funny-cats-nocal-1920x1080.png" title="Funny Cats - 1920x1080">1920x1080</a></li></ul><h2 id="pigman-and-robin">Pigman And Robin</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-pigman-and-robin-full-opt.png" title="Pigman And Robin"><img alt="Pigman And Robin" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-pigman-and-robin-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-pigman-and-robin-preview-opt.png" title="Pigman And Robin - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-640x480.png" title="Pigman And Robin - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-800x480.png" title="Pigman And Robin - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-800x600.png" title="Pigman And Robin - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1024x768.png" title="Pigman And Robin - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1024x1024.png" title="Pigman And Robin - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1152x864.png" title="Pigman And Robin - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1280x720.png" title="Pigman And Robin - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1280x800.png" title="Pigman And Robin - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1280x960.png" title="Pigman And Robin - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1280x1024.png" title="Pigman And Robin - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1366x768.png" title="Pigman And Robin - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1400x1050.png" title="Pigman And Robin - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1440x900.png" title="Pigman And Robin - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1600x1200.png" title="Pigman And Robin - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1680x1050.png" title="Pigman And Robin - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1680x1200.png" title="Pigman And Robin - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1920x1080.png" title="Pigman And Robin - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1920x1200.png" title="Pigman And Robin - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-1920x1440.png" title="Pigman And Robin - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-2560x1440.png" title="Pigman And Robin - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/pigman-and-robin/nocal/sep-24-pigman-and-robin-nocal-3840x2160.png" title="Pigman And Robin - 3840x2160">3840x2160</a></li></ul><h2 id="autumn-rains">Autumn Rains</h2><p>“This autumn, we expect to see a lot of rainy days and blues, so we wanted to change the paradigm and wish a warm welcome to the new season. After all, if you come to think of it: rain is not so bad if you have an umbrella and a raincoat. Come autumn, we welcome you!” — Designed by <a href="https://www.popwebdesign.net/web-design-agency.html">PopArt Studio</a> from Serbia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ee2102d2-b5fc-4da5-8dd8-4ad100b079e7/sept-17-autumn-rains-large-opt.png" title="Autumn Rains"><img alt="Autumn Rains" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/55161fb1-16dc-47e1-a118-5ecd0f0a3fbb/sept-17-autumn-rains-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/55161fb1-16dc-47e1-a118-5ecd0f0a3fbb/sept-17-autumn-rains-preview-opt.png" title="Autumn Rains - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-320x480.jpg" title="Autumn Rains - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-640x480.jpg" title="Autumn Rains - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-800x480.jpg" title="Autumn Rains - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-800x600.jpg" title="Autumn Rains - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1024x768.jpg" title="Autumn Rains - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1024x1024.jpg" title="Autumn Rains - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1152x864.jpg" title="Autumn Rains - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1280x720.jpg" title="Autumn Rains - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1280x800.jpg" title="Autumn Rains - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1280x960.jpg" title="Autumn Rains - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1280x1024.jpg" title="Autumn Rains - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1366x768.jpg" title="Autumn Rains - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1400x1050.jpg" title="Autumn Rains - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1440x900.jpg" title="Autumn Rains - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1600x1200.jpg" title="Autumn Rains - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1680x1050.jpg" title="Autumn Rains - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1680x1200.jpg" title="Autumn Rains - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1920x1080.jpg" title="Autumn Rains - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1920x1200.jpg" title="Autumn Rains - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-1920x1440.jpg" title="Autumn Rains - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/autumn-rains/nocal/sept-17-autumn-rains-nocal-2560x1440.jpg" title="Autumn Rains - 2560x1440">2560x1440</a></li></ul><h2 id="terrazzo">Terrazzo</h2><p>“With the end of summer and fall coming soon, I created this terrazzo pattern wallpaper to brighten up your desktop. Enjoy the month!” — Designed by <a href="https://www.embee.me/">Melissa Bogemans</a> from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f2ab4afe-e503-4235-96fc-3c9ceade89e3/sep-20-terrazzo-full.png" title="Terrazzo"><img alt="Terrazzo" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2644364f-a26f-40da-a000-4f0aea0db125/sep-20-terrazzo-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2644364f-a26f-40da-a000-4f0aea0db125/sep-20-terrazzo-preview-opt.png" title="Terrazzo - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-320x480.png" title="Terrazzo - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-640x480.png" title="Terrazzo - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-800x480.png" title="Terrazzo - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-800x600.png" title="Terrazzo - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1024x768.png" title="Terrazzo - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1024x1024.png" title="Terrazzo - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1152x864.png" title="Terrazzo - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1280x720.png" title="Terrazzo - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1280x800.png" title="Terrazzo - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1280x960.png" title="Terrazzo - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1280x1024.png" title="Terrazzo - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1400x1050.png" title="Terrazzo - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1440x900.png" title="Terrazzo - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1600x1200.png" title="Terrazzo - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1680x1050.png" title="Terrazzo - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1680x1200.png" title="Terrazzo - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1920x1080.png" title="Terrazzo - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1920x1200.png" title="Terrazzo - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-1920x1440.png" title="Terrazzo - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/terrazzo/nocal/sep-20-terrazzo-nocal-2560x1440.png" title="Terrazzo - 2560x1440">2560x1440</a></li></ul><h2 id="summer-ending">Summer Ending</h2><p>“As summer comes to an end, all the creatures pull back to their hiding places, searching for warmth within themselves and dreaming of neverending adventures under the tinted sky of closing dog days.” — Designed by Ana Masnikosa from Belgrade, Serbia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/22d5ee98-2e90-4597-a06f-88de7965c1e2/sept-17-summer-ending-large-opt.png" title="Summer Ending"><img alt="Summer Ending" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ed639caf-f1b5-43e7-9af6-ff85a675a4ef/sept-17-summer-ending-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ed639caf-f1b5-43e7-9af6-ff85a675a4ef/sept-17-summer-ending-preview-opt.png" title="Summer Ending - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-320x480.png" title="Summer Ending - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-640x480.png" title="Summer Ending - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-800x480.png" title="Summer Ending - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-800x600.png" title="Summer Ending - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1024x768.png" title="Summer Ending - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1024x1024.png" title="Summer Ending - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1152x864.png" title="Summer Ending - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1280x720.png" title="Summer Ending - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1280x800.png" title="Summer Ending - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1280x960.png" title="Summer Ending - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1280x1024.png" title="Summer Ending - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1400x1050.png" title="Summer Ending - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1440x900.png" title="Summer Ending - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1600x1200.png" title="Summer Ending - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1680x1050.png" title="Summer Ending - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1680x1200.png" title="Summer Ending - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1920x1080.png" title="Summer Ending - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1920x1200.png" title="Summer Ending - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-1920x1440.png" title="Summer Ending - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/summer-ending/nocal/sept-17-summer-ending-nocal-2560x1440.png" title="Summer Ending - 2560x1440">2560x1440</a></li></ul><h2 id="cacti-everywhere">Cacti Everywhere</h2><p>“Seasons come and go, but our brave cactuses still stand. Summer is almost over and autumn is coming, but the beloved plants don’t care.” — Designed by <a href="https://pathlove.com/">Lívia Lénárt</a> from Hungary.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/65da1859-5ab5-475e-9940-f4e3045455d4/sep-18-cacti-everywhere-full-opt.png" title="Cacti Everywhere"><img alt="Cacti Everywhere" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2df837fa-5d23-4898-8502-0ed53e2cb2df/sep-18-cacti-everywhere-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2df837fa-5d23-4898-8502-0ed53e2cb2df/sep-18-cacti-everywhere-preview-opt.png" title="Cacti Everywhere - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-320x480.jpg" title="Cacti Everywhere - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-800x480.jpg" title="Cacti Everywhere - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-1024x768.jpg" title="Cacti Everywhere - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-1024x1024.jpg" title="Cacti Everywhere - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-1280x1024.jpg" title="Cacti Everywhere - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-1400x1050.jpg" title="Cacti Everywhere - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-1920x1080.jpg" title="Cacti Everywhere - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-1920x1200.jpg" title="Cacti Everywhere - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-1920x1440.jpg" title="Cacti Everywhere - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-18/cacti-everywhere/nocal/sep-18-cacti-everywhere-nocal-2560x1440.jpg" title="Cacti Everywhere - 2560x1440">2560x1440</a></li></ul><h2 id="flower-soul">Flower Soul</h2><p>“The earth has music for those who listen. Take a break and relax and while you drive out the stress, catch a glimpse of the beautiful nature around you. Can you hear the rhythm of the breeze blowing, the flowers singing, and the butterflies fluttering to cheer you up? We dedicate flowers which symbolize happiness and love to one and all.” — Designed by <a href="https://acodez.in/">Krishnankutty</a> from India.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f691ba9d-d4ab-4767-9899-836c61f6aeb0/sept-16-flower-soul-large-opt.png" title="Flower Soul"><img alt="Flower Soul" decoding="async" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/247433e6-81e3-4d55-9b68-55578f4138b8/sept-16-flower-soul-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/247433e6-81e3-4d55-9b68-55578f4138b8/sept-16-flower-soul-preview-opt.png" title="Flower Soul - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-320x480.png" title="Flower Soul - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-640x480.png" title="Flower Soul - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-800x480.png" title="Flower Soul - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-800x600.png" title="Flower Soul - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1024x768.png" title="Flower Soul - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1024x1024.png" title="Flower Soul - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1152x864.png" title="Flower Soul - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1280x720.png" title="Flower Soul - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1280x960.png" title="Flower Soul - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1280x1024.png" title="Flower Soul - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1366x768.png" title="Flower Soul - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1400x1050.png" title="Flower Soul - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1440x900.png" title="Flower Soul - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1600x1200.png" title="Flower Soul - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1680x1050.png" title="Flower Soul - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1680x1200.png" title="Flower Soul - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1920x1080.png" title="Flower Soul - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1920x1200.png" title="Flower Soul - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-1920x1440.png" title="Flower Soul - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/flower-soul/nocal/sept-16-flower-soul-nocal-2560x1440.png" title="Flower Soul - 2560x1440">2560x1440</a></li></ul><h2 id="stay-or-leave">Stay Or Leave?</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/413b8d04-e98b-4503-a3f6-e5a25cdd3ba1/sep-19-stay-or-leave-full-opt.png" title="Stay Or Leave?"><img alt="Stay Or Leave?" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/84692544-a30d-4a78-9685-1278d065cc6e/sep-19-stay-or-leave-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/84692544-a30d-4a78-9685-1278d065cc6e/sep-19-stay-or-leave-preview-opt.png" title="Stay Or Leave? - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-320x480.png" title="Stay Or Leave? - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-640x480.png" title="Stay Or Leave? - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-800x480.png" title="Stay Or Leave? - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-800x600.png" title="Stay Or Leave? - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1024x768.png" title="Stay Or Leave? - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1024x1024.png" title="Stay Or Leave? - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1152x864.png" title="Stay Or Leave? - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1280x720.png" title="Stay Or Leave? - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1280x800.png" title="Stay Or Leave? - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1280x960.png" title="Stay Or Leave? - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1280x1024.png" title="Stay Or Leave? - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1366x768.png" title="Stay Or Leave? - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1400x1050.png" title="Stay Or Leave? - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1440x900.png" title="Stay Or Leave? - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1600x1200.png" title="Stay Or Leave? - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1680x1050.png" title="Stay Or Leave? - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1680x1200.png" title="Stay Or Leave? - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1920x1080.png" title="Stay Or Leave? - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1920x1200.png" title="Stay Or Leave? - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-1920x1440.png" title="Stay Or Leave? - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/stay-or-leave/nocal/sep-19-stay-or-leave-nocal-2560x1440.png" title="Stay Or Leave? - 2560x1440">2560x1440</a></li></ul><h2 id="rainy-flowers">Rainy Flowers</h2><p>Designed by <a href="https://teodoravasileva.net">Teodora Vasileva</a> from Bulgaria.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2024/sep-23-rainy-flowers-full-opt.png" title="Rainy Flowers"><img alt="Rainy Flowers" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2024/sep-23-rainy-flowers-preview.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2024/sep-23-rainy-flowers-preview.png" title="Rainy Flowers - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-640x480.jpg" title="Rainy Flowers - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-800x480.jpg" title="Rainy Flowers - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-800x600.jpg" title="Rainy Flowers - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1024x768.jpg" title="Rainy Flowers - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1280x720.jpg" title="Rainy Flowers - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1280x960.jpg" title="Rainy Flowers - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1280x1024.jpg" title="Rainy Flowers - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1400x1050.jpg" title="Rainy Flowers - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1680x1050.jpg" title="Rainy Flowers - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1680x1200.jpg" title="Rainy Flowers - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1920x1080.jpg" title="Rainy Flowers - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1920x1200.jpg" title="Rainy Flowers - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-1920x1440.jpg" title="Rainy Flowers - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-23/rainy-flowers/nocal/sep-23-rainy-flowers-nocal-2560x1440.jpg" title="Rainy Flowers - 2560x1440">2560x1440</a></li></ul><h2 id="listen-closer-the-mushrooms-are-growing">Listen Closer… The Mushrooms Are Growing</h2><p>“It’s this time of the year when children go to school and grown-ups go to collect mushrooms.” — Designed by <a href="https://izhik.com">Igor Izhik</a> from Canada.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/053d1630-6081-4179-b45e-e4b9311c7ef4/sept-15-listen-closer-the-mushrooms-are-growing-full-opt.png" title="Listen Closer… The Mushrooms Are Growing…"><img alt="Listen Closer… The Mushrooms Are Growing…" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/48d2812e-6e2b-4e34-87ec-e23a53297041/sept-15-listen-closer-the-mushrooms-are-growing-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/48d2812e-6e2b-4e34-87ec-e23a53297041/sept-15-listen-closer-the-mushrooms-are-growing-preview-opt.png" title="Listen Closer… The Mushrooms Are Growing… - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-640x480.jpg" title="Listen Closer… The Mushrooms Are Growing… - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-800x480.jpg" title="Listen Closer… The Mushrooms Are Growing… - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-800x600.jpg" title="Listen Closer… The Mushrooms Are Growing… - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1024x768.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1024x1024.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1152x864.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1280x720.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1280x800.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1280x960.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1280x1024.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1400x1050.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1440x900.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1600x1200.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1680x1050.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1680x1200.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1920x1080.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1920x1200.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-1920x1440.jpg" title="Listen Closer… The Mushrooms Are Growing… - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-2560x1440.jpg" title="Listen Closer… The Mushrooms Are Growing… - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/listen-closer-the-mushrooms-are-growing/nocal/sept-15-listen-closer-the-mushrooms-are-growing-nocal-2560x1600.jpg" title="Listen Closer… The Mushrooms Are Growing… - 2560x1600">2560x1600</a></li></ul><h2 id="weekend-relax">Weekend Relax</h2><p>Designed by Robert from the United States.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/dff475dd-1a0b-497d-8598-3e13142a8ce2/sep-20-weekend-relax-full.png" title="Weekend Relax"><img alt="Weekend Relax" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/30f65a03-22e0-4593-92ec-9ab2e0bed79e/sep-20-weekend-relax-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/30f65a03-22e0-4593-92ec-9ab2e0bed79e/sep-20-weekend-relax-preview-opt.png" title="Weekend Relax - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sep-20/weekend-relax/nocal/sep-20-weekend-relax-nocal-320x480.png" title="Weekend Relax - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/weekend-relax/nocal/sep-20-weekend-relax-nocal-1024x1024.png" title="Weekend Relax - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/weekend-relax/nocal/sep-20-weekend-relax-nocal-1280x720.png" title="Weekend Relax - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/weekend-relax/nocal/sep-20-weekend-relax-nocal-1680x1200.png" title="Weekend Relax - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/weekend-relax/nocal/sep-20-weekend-relax-nocal-1920x1080.png" title="Weekend Relax - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/weekend-relax/nocal/sep-20-weekend-relax-nocal-2560x1440.png" title="Weekend Relax - 2560x1440">2560x1440</a></li></ul><h2 id="hungry">Hungry</h2><p>Designed by <a href="https://www.doud.be">Elise Vanoorbeek</a> from Belgium.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f0b9019c-0e62-4f2e-8b03-9502c1a85a00/sept-14-hungry-full-opt.jpg" title="Hungry"><img alt="Hungry" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/388cd653-31f5-4e98-bd72-29cb1e8ed4bf/sept-14-hungry-preview.jpg"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/388cd653-31f5-4e98-bd72-29cb1e8ed4bf/sept-14-hungry-preview.jpg" title="Hungry - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-640x480.jpg" title="Hungry - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-800x480.jpg" title="Hungry - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-800x600.jpg" title="Hungry - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1024x768.jpg" title="Hungry - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1024x1024.jpg" title="Hungry - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1152x864.jpg" title="Hungry - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1280x720.jpg" title="Hungry - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1280x800.jpg" title="Hungry - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1280x960.jpg" title="Hungry - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1280x1024.jpg" title="Hungry - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1366x768.jpg" title="Hungry - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1440x1050.jpg" title="Hungry - 1440x1050">1440x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1440x900.jpg" title="Hungry - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1600x1200.jpg" title="Hungry - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1680x1050.jpg" title="Hungry - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1680x1200.jpg" title="Hungry - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1920x1080.jpg" title="Hungry - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1920x1200.jpg" title="Hungry - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-1920x1440.jpg" title="Hungry - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-14/hungry/nocal/sept-14-hungry-nocal-2560x1440.jpg" title="Hungry - 2560x1440">2560x1440</a></li></ul><h2 id="national-video-games-day-delight">National Video Games Day Delight</h2><p>“September 12th brings us National Video Games Day. US-based video game players love this day and celebrate with huge gaming tournaments. What was once a 2D experience in the home is now a global phenomenon with players playing against each other across statelines and national borders via the internet. National Video Games Day gives gamers the perfect chance to celebrate and socialize! So grab your controller, join online, and let the games begin!” — Designed by <a href="https://www.everincreasingcircles.com/">Ever Increasing Circles</a> from the United Kingdom.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/65043639-9b5d-4516-9371-7b0b50b1ef30/sep-19-national-video-games-day-delight-large-opt.png" title="National Video Games Day Delight"><img alt="National Video Games Day Delight" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a2e6f3ea-b44c-456a-a8be-509911dfb34a/sep-19-national-video-games-day-delight-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a2e6f3ea-b44c-456a-a8be-509911dfb34a/sep-19-national-video-games-day-delight-preview-opt.png" title="National Video Games Day Delight - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-320x480.jpg" title="National Video Games Day Delight - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-640x480.jpg" title="National Video Games Day Delight - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-800x480.jpg" title="National Video Games Day Delight - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-800x600.jpg" title="National Video Games Day Delight - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1024x768.jpg" title="National Video Games Day Delight - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1024x1024.jpg" title="National Video Games Day Delight - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1152x864.jpg" title="National Video Games Day Delight - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1280x720.jpg" title="National Video Games Day Delight - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1280x800.jpg" title="National Video Games Day Delight - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1280x960.jpg" title="National Video Games Day Delight - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1280x1024.jpg" title="National Video Games Day Delight - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1366x768.jpg" title="National Video Games Day Delight - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1400x1050.jpg" title="National Video Games Day Delight - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1440x900.jpg" title="National Video Games Day Delight - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1600x1200.jpg" title="National Video Games Day Delight - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1680x1050.jpg" title="National Video Games Day Delight - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1680x1200.jpg" title="National Video Games Day Delight - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1920x1080.jpg" title="National Video Games Day Delight - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1920x1200.jpg" title="National Video Games Day Delight - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-1920x1440.jpg" title="National Video Games Day Delight - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/national-video-games-day-delight/nocal/sep-19-national-video-games-day-delight-nocal-2560x1440.jpg" title="National Video Games Day Delight - 2560x1440">2560x1440</a></li></ul><h2 id="more-bananas">More Bananas</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-more-bananas-full-opt.png" title="More Bananas"><img alt="More Bananas" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-more-bananas-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-more-bananas-preview-opt.png" title="More Bananas - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-640x480.png" title="More Bananas - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-800x480.png" title="More Bananas - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-800x600.png" title="More Bananas - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1024x768.png" title="More Bananas - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1024x1024.png" title="More Bananas - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1152x864.png" title="More Bananas - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1280x720.png" title="More Bananas - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1280x800.png" title="More Bananas - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1280x960.png" title="More Bananas - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1280x1024.png" title="More Bananas - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1366x768.png" title="More Bananas - 1366x768">1366x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1400x1050.png" title="More Bananas - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1440x900.png" title="More Bananas - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1600x1200.png" title="More Bananas - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1680x1050.png" title="More Bananas - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1680x1200.png" title="More Bananas - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1920x1080.png" title="More Bananas - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1920x1200.png" title="More Bananas - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-1920x1440.png" title="More Bananas - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-2560x1440.png" title="More Bananas - 2560x1440">2560x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/more-bananas/nocal/sep-24-more-bananas-nocal-3840x2160.png" title="More Bananas - 3840x2160">3840x2160</a></li></ul><h2 id="national-elephant-appreciation-day">National Elephant Appreciation Day</h2><p>“Today, we celebrate these magnificent creatures who play such a vital role in our ecosystems and cultures. Elephants are symbols of wisdom, strength, and loyalty. Their social bonds are strong, and their playful nature, especially in the young ones, reminds us of the importance of joy and connection in our lives.” — Designed by <a href="https://www.popwebdesign.net/">PopArt Studio</a> from Serbia.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-national-elephant-appreciation-day-full-opt.png" title="National Elephant Appreciation Day"><img alt="National Elephant Appreciation Day" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-national-elephant-appreciation-day-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-national-elephant-appreciation-day-preview-opt.png" title="National Elephant Appreciation Day - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-320x480.png" title="National Elephant Appreciation Day - 320x480">320x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-640x480.png" title="National Elephant Appreciation Day - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-800x480.png" title="National Elephant Appreciation Day - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-800x600.png" title="National Elephant Appreciation Day - 800x600">800x600</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1024x768.png" title="National Elephant Appreciation Day - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1024x1024.png" title="National Elephant Appreciation Day - 1024x1024">1024x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1152x864.png" title="National Elephant Appreciation Day - 1152x864">1152x864</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1280x720.png" title="National Elephant Appreciation Day - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1280x800.png" title="National Elephant Appreciation Day - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1280x960.png" title="National Elephant Appreciation Day - 1280x960">1280x960</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1280x1024.png" title="National Elephant Appreciation Day - 1280x1024">1280x1024</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1400x1050.png" title="National Elephant Appreciation Day - 1400x1050">1400x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1440x900.png" title="National Elephant Appreciation Day - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1600x1200.png" title="National Elephant Appreciation Day - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1680x1050.png" title="National Elephant Appreciation Day - 1680x1050">1680x1050</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1680x1200.png" title="National Elephant Appreciation Day - 1680x1200">1680x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1920x1080.png" title="National Elephant Appreciation Day - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1920x1200.png" title="National Elephant Appreciation Day - 1920x1200">1920x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-1920x1440.png" title="National Elephant Appreciation Day - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/national-elephant-appreciation-day/nocal/sep-24-national-elephant-appreciation-day-nocal-2560x1440.png" title="National Elephant Appreciation Day - 2560x1440">2560x1440</a></li></ul><h2 id="long-live-summer">Long Live Summer</h2><p>“While September’s Autumnal Equinox technically signifies the end of the summer season, this wallpaper is for all those summer lovers, like me, who don’t want the sunshine, warm weather, and lazy days to end.” — Designed by Vicki Grunewald from Washington.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1431a5a8-a30f-4ab8-8875-0be50394f701/sept-15-long-live-summer-full-opt.png" title="Long Live Summer"><img alt="Long Live Summer" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/266371d3-48a0-4692-b12b-c2a0162f0b95/sept-15-long-live-summer-preview.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/266371d3-48a0-4692-b12b-c2a0162f0b95/sept-15-long-live-summer-preview.png" title="Long Live Summer - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-320x480.png" title="Long Live Summer - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-640x480.png" title="Long Live Summer - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-800x480.png" title="Long Live Summer - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-800x600.png" title="Long Live Summer - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1024x768.png" title="Long Live Summer - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1024x1024.png" title="Long Live Summer - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1152x864.png" title="Long Live Summer - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1280x720.png" title="Long Live Summer - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1280x800.png" title="Long Live Summer - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1280x960.png" title="Long Live Summer - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1280x1024.png" title="Long Live Summer - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1366x768.png" title="Long Live Summer - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1400x1050.png" title="Long Live Summer - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1440x900.png" title="Long Live Summer - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1600x1200.png" title="Long Live Summer - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1680x1050.png" title="Long Live Summer - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1680x1200.png" title="Long Live Summer - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1920x1080.png" title="Long Live Summer - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1920x1200.png" title="Long Live Summer - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-1920x1440.png" title="Long Live Summer - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-15/long-live-summer/nocal/sept-15-long-live-summer-nocal-2560x1440.png" title="Long Live Summer - 2560x1440">2560x1440</a></li></ul><h2 id="bear-time">Bear Time</h2><p>Designed by <a href="https://www.instagram.com/auvrea_illustration/">Bojana Stojanovic</a> from Serbia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/71c7c07f-f784-4f21-82c5-3a08e2e8416d/sep-19-bear-time-large-opt.png" title="Bear Time"><img alt="Bear Time" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7b9c1c73-6254-49d5-9e19-4f0e83e5bb0c/sep-19-bear-time-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7b9c1c73-6254-49d5-9e19-4f0e83e5bb0c/sep-19-bear-time-preview-opt.png" title="Bear Time - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-320x480.png" title="Bear Time - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-640x480.png" title="Bear Time - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-800x480.png" title="Bear Time - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-800x600.png" title="Bear Time - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1024x768.png" title="Bear Time - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1024x1024.png" title="Bear Time - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1152x864.png" title="Bear Time - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1280x720.png" title="Bear Time - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1280x800.png" title="Bear Time - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1280x960.png" title="Bear Time - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1280x1080.png" title="Bear Time - 1280x1080">1280x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1366x768.png" title="Bear Time - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1400x1050.png" title="Bear Time - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1440x990.png" title="Bear Time - 1440x990">1440x990</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1600x1200.png" title="Bear Time - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1680x1050.png" title="Bear Time - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1680x1200.png" title="Bear Time - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1920x1080.png" title="Bear Time - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1920x1200.png" title="Bear Time - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-1920x1440.png" title="Bear Time - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-19/bear-time/nocal/sep-19-bear-time-nocal-2560x1440.png" title="Bear Time - 2560x1440">2560x1440</a></li></ul><h2 id="still-in-vacation-mood">Still In Vacation Mood</h2><p>“It’s officially the end of summer and I’m still in vacation mood, dreaming about all the amazing places I’ve seen. This illustration is inspired by a small town in France, on the Atlantic coast, right by the beach.” — Designed by <a href="https://www.behance.net/mirunasfia">Miruna Sfia</a> from Romania.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/df067a6a-5e87-48db-bae1-e6c20a3814a3/sept-17-still-in-vacation-mood-full-opt.png" title="Still In Vacation Mood"><img alt="Still In Vacation Mood" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4dc14ac0-029c-4f57-85ed-76b49cb5c183/sept-17-still-in-vacation-mood-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4dc14ac0-029c-4f57-85ed-76b49cb5c183/sept-17-still-in-vacation-mood-preview-opt.png" title="Still In Vacation Mood - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-320x480.png" title="Still In Vacation Mood - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-640x480.png" title="Still In Vacation Mood - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-800x480.png" title="Still In Vacation Mood - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-800x600.png" title="Still In Vacation Mood - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1024x768.png" title="Still In Vacation Mood - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1024x1024.png" title="Still In Vacation Mood - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1152x864.png" title="Still In Vacation Mood - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1280x720.png" title="Still In Vacation Mood - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1280x800.png" title="Still In Vacation Mood - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1280x960.png" title="Still In Vacation Mood - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1280x1024.png" title="Still In Vacation Mood - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1440x900.png" title="Still In Vacation Mood - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1440x1050.png" title="Still In Vacation Mood - 1440x1050">1440x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1600x1200.png" title="Still In Vacation Mood - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1680x1050.png" title="Still In Vacation Mood - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1680x1200.png" title="Still In Vacation Mood - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1920x1080.png" title="Still In Vacation Mood - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1920x1200.png" title="Still In Vacation Mood - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-1920x1440.png" title="Still In Vacation Mood - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/still-in-vacation-mood/nocal/sept-17-still-in-vacation-mood-nocal-2560x1440.png" title="Still In Vacation Mood - 2560x1440">2560x1440</a></li></ul><h2 id="maryland-pride">Maryland Pride</h2><p>“As summer comes to a close, so does the end of blue crab season in Maryland. Blue crabs have been a regional delicacy since the 1700s and have become Maryland’s most valuable fishing industry, adding millions of dollars to the Maryland economy each year. The blue crab has contributed so much to the state’s regional culture and economy, in 1989 it was named the State Crustacean, cementing its importance in Maryland history.” — Designed by <a href="https://bit.ly/TheHannonGroup">The Hannon Group</a> from Washington DC.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0c681011-d8d1-4c4b-8e13-69aed69f9471/sept-17-marylandpride-large-opt.png" title="Maryland Pride"><img alt="Maryland Pride" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ee60f479-606f-44cd-80c7-ec168d9d54f3/sept-17-marylandpride-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ee60f479-606f-44cd-80c7-ec168d9d54f3/sept-17-marylandpride-preview-opt.png" title="Maryland Pride - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-320x480.png" title="Maryland Pride - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-640x480.png" title="Maryland Pride - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-800x600.png" title="Maryland Pride - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-1024x768.png" title="Maryland Pride - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-1280x960.png" title="Maryland Pride - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-1440x900.png" title="Maryland Pride - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-1600x1200.png" title="Maryland Pride - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-1680x1050.png" title="Maryland Pride - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-1680x1200.png" title="Maryland Pride - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-1920x1080.png" title="Maryland Pride - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-1920x1440.png" title="Maryland Pride - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-17/marylandpride/nocal/sept-17-marylandpride-nocal-2560x1440.png" title="Maryland Pride - 2560x1440">2560x1440</a></li></ul><h2 id="summer-in-costa-rica">Summer In Costa Rica</h2><p>“We continue in tropical climates. In this case, we travel to Costa Rica to observe the Arenal volcano from the lake while we use a kayak.” — Designed by <a href="https://www.silocreativo.com/en">Veronica Valenzuela</a> from Spain.</p><figure><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-summer-in-costa-rica-full-opt.png" title="Summer In Costa Rica"><img alt="Summer In Costa Rica" src="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-summer-in-costa-rica-preview-opt.png"></img></a></figure><ul><li><a href="https://files.smashing.media/articles/desktop-wallpaper-calendars-september-2025/sep-24-summer-in-costa-rica-preview-opt.png" title="Summer In Costa Rica - Preview">preview</a></li><li>without calendar: <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-640x480.png" title="Summer In Costa Rica - 640x480">640x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-800x480.png" title="Summer In Costa Rica - 800x480">800x480</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-1024x768.png" title="Summer In Costa Rica - 1024x768">1024x768</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-1280x720.png" title="Summer In Costa Rica - 1280x720">1280x720</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-1280x800.png" title="Summer In Costa Rica - 1280x800">1280x800</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-1440x900.png" title="Summer In Costa Rica - 1440x900">1440x900</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-1600x1200.png" title="Summer In Costa Rica - 1600x1200">1600x1200</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-1920x1080.png" title="Summer In Costa Rica - 1920x1080">1920x1080</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-1920x1440.png" title="Summer In Costa Rica - 1920x1440">1920x1440</a>, <a href="https://www.smashingmagazine.com/files/wallpapers/sep-24/summer-in-costa-rica/nocal/sep-24-summer-in-costa-rica-nocal-2560x1440.png" title="Summer In Costa Rica - 2560x1440">2560x1440</a></li></ul><h2 id="wine-harvest-season">Wine Harvest Season</h2><p>“Welcome to the wine harvest season in Serbia. It’s September, and the hazy sunshine bathes the vines on the slopes of Fruška Gora. Everything is ready for the making of Bermet, the most famous wine from Serbia. This spiced wine was a favorite of the Austro-Hungarian elite and was served even on the Titanic. Bermet’s recipe is a closely guarded secret, and the wine is produced by just a handful of families in the town of Sremski Karlovci, near Novi Sad. On the other side of Novi Sad, plains of corn and sunflower fields blend in with the horizon, catching the last warm sun rays of this year.” — Designed by <a href="https://www.popwebdesign.net/logo-design-novisad.html">PopArt Studio</a> from Serbia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/635541fb-2898-49c5-90f5-df7855a81568/sep-21-wine-harvest-season-full-opt.png" title="Wine Harvest Season"><img alt="Wine Harvest Season" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4e4c0b7b-0068-48f7-845e-bf20b10d8cec/sep-21-wine-harvest-season-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4e4c0b7b-0068-48f7-845e-bf20b10d8cec/sep-21-wine-harvest-season-preview-opt.png" title="Wine Harvest Season - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-320x480.jpg" title="Wine Harvest Season - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-640x480.jpg" title="Wine Harvest Season - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-800x480.jpg" title="Wine Harvest Season - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-800x600.jpg" title="Wine Harvest Season - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1024x768.jpg" title="Wine Harvest Season - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1024x1024.jpg" title="Wine Harvest Season - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1152x864.jpg" title="Wine Harvest Season - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1280x720.jpg" title="Wine Harvest Season - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1280x800.jpg" title="Wine Harvest Season - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1280x960.jpg" title="Wine Harvest Season - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1280x1024.jpg" title="Wine Harvest Season - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1366x768.jpg" title="Wine Harvest Season - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1400x1050.jpg" title="Wine Harvest Season - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1440x900.jpg" title="Wine Harvest Season - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1600x1200.jpg" title="Wine Harvest Season - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1680x1050.jpg" title="Wine Harvest Season - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1680x1200.jpg" title="Wine Harvest Season - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1920x1080.jpg" title="Wine Harvest Season - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1920x1200.jpg" title="Wine Harvest Season - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-1920x1440.jpg" title="Wine Harvest Season - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-21/wine-harvest-season/nocal/sep-21-wine-harvest-season-nocal-2560x1440.jpg" title="Wine Harvest Season - 2560x1440">2560x1440</a></li></ul><h2 id="office">Office</h2><p>“Clean, minimalistic office for a productive day.” — Designed by Antun Hiršman from Croatia.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/254b06d0-db60-4b99-bbcb-b0ee55d30465/sept-16-office-full-opt.png" title="Office"><img alt="Office" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5462c653-9c0b-4ae7-97d5-139ce8d48435/sept-16-office-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5462c653-9c0b-4ae7-97d5-139ce8d48435/sept-16-office-preview-opt.png" title="Office - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sept-16/office/nocal/sept-16-office-nocal-320x480.jpg" title="Office - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/office/nocal/sept-16-office-nocal-800x600.jpg" title="Office - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/office/nocal/sept-16-office-nocal-1280x720.jpg" title="Office - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/office/nocal/sept-16-office-nocal-1280x1024.jpg" title="Office - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/office/nocal/sept-16-office-nocal-1440x900.jpg" title="Office - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/office/nocal/sept-16-office-nocal-1680x1050.jpg" title="Office - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/office/nocal/sept-16-office-nocal-1920x1080.jpg" title="Office - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/office/nocal/sept-16-office-nocal-1920x1440.jpg" title="Office - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sept-16/office/nocal/sept-16-office-nocal-2560x1440.jpg" title="Office - 2560x1440">2560x1440</a></li></ul><h2 id="colors-of-september">Colors Of September</h2><p>“I love September. Its colors and smells.” — Designed by Juliagav from Ukraine.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f06a6968-1524-4afb-85a4-b12230506369/sep-13-colors-of-september-full-opt.png" title="colors of September"><img alt="colors of September" decoding="async" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b9a49341-db50-475f-a215-a51237e07bcf/sep-13-colors-of-september-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b9a49341-db50-475f-a215-a51237e07bcf/sep-13-colors-of-september-preview-opt.png" title="colors of September - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sep-13/colors-of-september/nocal/sep-13-colors-of-september-nocal-320x480.jpg" title="colors of September - 320x480">320x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-13/colors-of-september/nocal/sep-13-colors-of-september-nocal-1024x768.jpg" title="colors of September - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-13/colors-of-september/nocal/sep-13-colors-of-september-nocal-1024x1024.jpg" title="colors of September - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-13/colors-of-september/nocal/sep-13-colors-of-september-nocal-1280x800.jpg" title="colors of September - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-13/colors-of-september/nocal/sep-13-colors-of-september-nocal-1280x1024.jpg" title="colors of September - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-13/colors-of-september/nocal/sep-13-colors-of-september-nocal-1440x900.jpg" title="colors of September - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-13/colors-of-september/nocal/sep-13-colors-of-september-nocal-1680x1050.jpg" title="colors of September - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-13/colors-of-september/nocal/sep-13-colors-of-september-nocal-1920x1080.jpg" title="colors of September - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-13/colors-of-september/nocal/sep-13-colors-of-september-nocal-2560x1440.jpg" title="colors of September - 2560x1440">2560x1440</a></li></ul><h2 id="never-stop-exploring">Never Stop Exploring</h2><p>Designed by <a href="https://www.ricardogimenes.com/">Ricardo Gimenes</a> from Spain.</p><figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/89f02687-d964-470b-9f2c-8cc52b7f25ee/sep-20-never-stop-exploring-full.png" title="Never Stop Exploring"><img alt="Never Stop Exploring" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/525be032-d473-4d7a-a706-0d46d65742f4/sep-20-never-stop-exploring-preview-opt.png"></img></a></figure><ul><li><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/525be032-d473-4d7a-a706-0d46d65742f4/sep-20-never-stop-exploring-preview-opt.png" title="Never Stop Exploring - Preview">preview</a></li><li>without calendar: <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-640x480.png" title="Never Stop Exploring - 640x480">640x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-800x480.png" title="Never Stop Exploring - 800x480">800x480</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-800x600.png" title="Never Stop Exploring - 800x600">800x600</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1024x768.png" title="Never Stop Exploring - 1024x768">1024x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1024x1024.png" title="Never Stop Exploring - 1024x1024">1024x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1152x864.png" title="Never Stop Exploring - 1152x864">1152x864</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1280x720.png" title="Never Stop Exploring - 1280x720">1280x720</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1280x800.png" title="Never Stop Exploring - 1280x800">1280x800</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1280x960.png" title="Never Stop Exploring - 1280x960">1280x960</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1280x1024.png" title="Never Stop Exploring - 1280x1024">1280x1024</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1366x768.png" title="Never Stop Exploring - 1366x768">1366x768</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1400x1050.png" title="Never Stop Exploring - 1400x1050">1400x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1440x900.png" title="Never Stop Exploring - 1440x900">1440x900</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1600x1200.png" title="Never Stop Exploring - 1600x1200">1600x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1680x1050.png" title="Never Stop Exploring - 1680x1050">1680x1050</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1680x1200.png" title="Never Stop Exploring - 1680x1200">1680x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1920x1080.png" title="Never Stop Exploring - 1920x1080">1920x1080</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1920x1200.png" title="Never Stop Exploring - 1920x1200">1920x1200</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-1920x1440.png" title="Never Stop Exploring - 1920x1440">1920x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-2560x1440.png" title="Never Stop Exploring - 2560x1440">2560x1440</a>, <a href="https://smashingmagazine.com/files/wallpapers/sep-20/never-stop-exploring/nocal/sep-20-never-stop-exploring-nocal-3840x2160.png" title="Never Stop Exploring - 3840x2160">3840x2160</a></li></ul><p>.nl-box<strong>form .nl-box</strong>form–button,.nl-box<strong>form .nl-box</strong>form–email{flex-grow:1;flex-shrink:0;box-sizing:border-box;width:auto;margin:0;padding:.75em 1em;border:0;border-radius:11px;background:#fff;font-size:1em}</p><p>input.nl-box<strong>form–email:active,input.nl-box</strong>form–email:focus,.nl-box<strong>form–button:active,.nl-box</strong>form–button:focus{box-shadow:0 1px 1px rgba(0,0,0,.3)}</p><p>.nl-box<strong>form–button:-ms-input-placeholder,.nl-box</strong>form–email:-ms-input-placeholder{color:#777;font-style:italic}</p><p>.nl-box<strong>form–email::placeholder,.nl-box</strong>form–button::placeholder{color:#777;font-style:italic}</p><p>.nl-box<strong>form .nl-box</strong>form–button{transition:all .2s ease-in-out;color:#fff;background-color:#0168b8;font-family:Mija,-apple-system,Arial,BlinkMacSystemFont,“roboto Slab”, “droid Serif”, “segoe UI”, Ubuntu, Cantarell, Georgia, serif;font-weight:700;box-shadow:0 1px 1px rgba(0,0,0,.3);width:100%;border:0;border-left:1px solid #ddd;flex:2;border-top-left-radius:0;border-bottom-left-radius:0}</p><p>.nl-box<strong>form .nl-box</strong>form–email{border-top-right-radius:0;border-bottom-right-radius:0;width:100%;flex:4}</p><p>.nl-box__img{height:auto;width:100%}</p><p>@media all and (max-width: 650px){.nl-box<strong>form .nl-box</strong>group { flex-wrap: wrap; box-shadow: none; } .nl-box<strong>form .nl-box</strong>form–email, .nl-box<strong>form .nl-box</strong>form–button { border-radius: 11px; border-left: none; }</p> <p>.cards<strong>grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); } .nl-box</strong>form .nl-box<strong>form–email { box-shadow: 0 13px 27px -5px rgba(50, 50, 93, 0.25), 0 8px 16px -8px rgba(0, 0, 0, 0.3), 0 -6px 16px -6px rgba(0, 0, 0, 0.025); min-width: 100%; } .nl-box</strong>form .nl-box__form–button { margin-top: 1em; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); }}</p><p>.nl-box<strong>form .nl-box</strong>form–button:active,.nl-box<strong>form .nl-box</strong>form–button:focus,.nl-box<strong>form .nl-box</strong>form–button:hover{cursor:pointer;color:#fff;background-color:#0168b8;border-color:#dadada;box-shadow:0 1px 1px rgba(0,0,0,.3)}</p><p>.nl-box<strong>form .nl-box</strong>form–button:focus,.nl-box<strong>form .nl-box</strong>form–button:active{outline:none!important;text-shadow:1px 1px 1px rgba(0,0,0,.3);box-shadow:inset 0 3px 3px rgba(0,0,0,.3)}</p><p>.nl-box__group{display:flex;box-shadow:0 13px 27px -5px rgba(50,50,93,.25),0 8px 16px -8px rgba(0,0,0,.3),0 -6px 16px -6px rgba(0,0,0,.025);border-radius:11px}</p><p>.nl-box__wrapper{display:flex;flex-direction:column;justify-content:center}</p><p>.nl-box__form form{width:100%}</p><p>.nl-box<strong>form .nl-box</strong>group{margin:0}</p><p>.nl-box__caption{font-size:.9em;line-height:1.5em;color:#fff;border-radius:11px;padding:.5em 1em;display:inline-block;background-color:#0067b859;text-shadow:1px 1px 1px rgba(0,0,0,.3)}</p><p>.nl-box{margin:1.5em 0;padding:1em 0;box-shadow:none;max-width:750px;justify-self:center}</p><p>.nl-box__blue{background-color:#1b71bb;background-image:linear-gradient(#1b71bb 60%,#01a6c1 100%)}</p><p>.nl-box__desc{padding:.5rem 2rem 1rem}</p><p>.nl-box__image{width:100%;height:auto}</p><p>@media screen and (min-width: 48em){.nl-box__desc { padding: 0.5rem calc(2rem + 0.5vw) 1rem calc(2rem + 0.5vw); }}</p><p>.nl-box__desc–heading-link{color:#fff;text-shadow:1px 1px 1px rgba(0,0,0,.9)}</p><p>.nl-box__summary{border-bottom:0;color:#fff;font-style:normal;text-shadow:1px 1px 1px rgba(0,0,0,.4)}</p><p>.promo-box–blue{–promo-background:#e7f8ff;–promo-text:#000;–promo-highlight-text:#e7f8ff;–promo-highlight:#006fc6;–promo-highlight–hover:#006fc6}</p><p>.promo-box{background:var(–promo-background);color:var(–promo-text);position:relative;padding:125px 1.5em 2em;margin-top:125px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:11px;width:100%}</p><p>.promo-box__image-link{position:absolute;display:block;top:0;padding:0;left:50%;transform:translate(-50%,-50%);width:250px;height:250px;text-decoration:none;background:0 0}</p><p>.promo-box__image{width:100%;height:100%}</p><p>.promo-box__cta{background:#fff;color:#d33a2c;text-decoration:none;padding:.5em .8em;border-radius:11px;box-shadow:0 0 1px 1px rgba(0,0,0,.15);background-image:none;font-weight:700;font-size:1.2em;margin:0;position:relative;box-shadow:0 2px 6px rgba(0,0,0,.12);transition:background .4s ease-in-out,color .4s ease-in-out}</p><p>.promo-box<strong>cta:active,.promo-box</strong>cta:focus{outline:0!important;background:#fff;text-shadow:none;box-shadow:inset 0 3px 3px rgba(0,0,0,.3)}</p><p>.promo-box__heading{line-height:1.2;font-size:1.5em;font-weight:700;margin:1.25em 0 0}</p><p>.promo-box__button{background:var(–promo-highlight);border-radius:11px;padding:.8em 1em;font-size:1.15em;text-shadow:1px 1px 1px rgba(0,0,0,.3);text-decoration:none;color:#fff;font-weight:700;display:flex;width:100%;justify-content:center;transition:all .2s ease-in-out}</p><p>.promo-box<strong>button:active,.promo-box</strong>button:focus,.promo-box__button:hover{border-bottom:none;cursor:pointer;border-color:#dadada}</p><p>.promo-box<strong>button:active,.promo-box</strong>button:focus{outline:0!important;box-shadow:inset 0 3px 3px rgba(0,0,0,.3)}</p></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (Cosima Mielke) <![CDATA[Prompting Is A Design Act: How To Brief, Guide And Iterate With AI]]> https://smashingmagazine.com/2025/08/prompting-design-act-brief-guide-iterate-ai/ https://smashingmagazine.com/2025/08/prompting-design-act-brief-guide-iterate-ai/ Fri, 29 Aug 2025 10:00:00 GMT <img src="https://files.smashing.media/articles/prompting-design-act-brief-guide-iterate-ai/prompting-design-act-brief-guide-iterate-ai.jpg" /><h1>How To Brief, Guide And Iterate With AI — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>21 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/ai">AI</a>, <a href="http://www.smashingmagazine.com/category/workflow">Workflow</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Prompting is more than giving AI some instructions. You could think of it as a design act, part creative brief and part conversation design. This second article on AI augmenting design work introduces a designerly approach to prompting: one that blends creative briefing, interaction design, and structural clarity.</section></p><p>In “<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>”, we followed Kate’s weeklong journey of her first AI-augmented design sprint. She had three realizations through the process:</p><ol><li><strong>AI isn’t a co-pilot (yet); it’s more like a smart, eager intern</strong>.<br></br>One with access to a lot of information, good recall, fast execution, but no context. That mindset defined how she approached every interaction with AI: not as magic, but as management.</li><li><strong>Don’t trust; guide, coach, and always verify.</strong><br></br>Like any intern, AI needs coaching and supervision, and that’s where her designerly skills kicked in. Kate relied on curiosity to explore, observation to spot bias, empathy to humanize the output, and critical thinking to challenge what didn’t feel right. Her learning mindset helped her keep up with advances, and experimentation helped her learn by doing.</li><li><strong>Prompting is part creative brief, and part conversation design, just with an AI instead of a person.</strong><br></br>When you prompt an AI, you’re not just giving instructions, but designing how it responds, behaves, and outputs information. If AI is like an intern, then the prompt is your creative brief that frames the task, sets the tone, and clarifies what good looks like. It’s also your conversation script that guides how it responds, how the interaction flows, and how ambiguity is handled.</li></ol><p>As designers, we’re used to designing interactions for people. Prompting is us designing our own interactions with machines — it uses the same mindset with a new medium. It shapes an AI’s behavior the same way you’d guide a user with structure, clarity, and intent.</p><p>If you’ve bookmarked, downloaded, or saved prompts from others, you’re not alone. We’ve all done that during our AI journeys. But while someone else’s prompts are a good starting point, you will get better and more relevant results if you can write your own prompts tailored to your goals, context, and style. Using someone else’s prompt is like using a Figma template. It gets the job done, but mastery comes from understanding and applying the fundamentals of design, including layout, flow, and reasoning. Prompts have a structure too. And when you learn it, you stop guessing and start designing.</p><p><strong>Note</strong>: <em>All prompts in this article were tested using ChatGPT — not because it’s the only game in town, but because it’s friendly, flexible, and lets you talk like a person, yes, even after the recent GPT-5 “update”. That said, any LLM with a decent attention span will work. Results for the same prompt may vary based on the AI model you use, the AI’s training, mood, and how confidently it can hallucinate.</em></p><p><strong>Privacy PSA</strong>: <em>As always, don’t share anything you wouldn’t want leaked, logged, or accidentally included in the next AI-generated meme. Keep it safe, legal, and user-respecting.</em></p><p>With that out of the way, let’s dive into the mindset, anatomy, and methods of effective prompting as another tool in your design toolkit.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="mindset-prompt-like-a-designer">Mindset: Prompt Like A Designer</h2><p>As designers, we storyboard journeys, wireframe interfaces to guide users, and write UX copy with intention. However, when prompting AI, we treat it differently: “Summarize these insights”, “Make this better”, “Write copy for this screen”, and then wonder why the output feels generic, off-brand, or just meh. It’s like expecting a creative team to deliver great work from a one-line Slack message. We wouldn’t brief a freelancer, much less an intern, with “Design a landing page,” so why brief AI that way?</p><h3 id="prompting-is-a-creative-brief-for-a-machine">Prompting Is A Creative Brief For A Machine</h3><p>Think of a good prompt as a <strong>creative brief</strong>, just for a non-human collaborator. It needs similar elements, including a clear role, defined goal, relevant context, tone guidance, and output expectations. Just as a well-written creative brief unlocks alignment and quality from your team, a well-structured prompt helps the AI meet your expectations, even though it doesn’t have real instincts or opinions.</p><h3 id="prompting-is-also-conversation-design">Prompting Is Also Conversation Design</h3><p>A good prompt goes beyond defining the task and sets the tone for the exchange by designing a conversation: guiding how the AI interprets, sequences, and responds. You shape the flow of tasks, how ambiguity is handled, and how refinement happens — that’s conversation design.</p><h2 id="anatomy-structure-it-like-a-designer">Anatomy: Structure It Like A Designer</h2><p>So how do you write a designer-quality prompt? That’s where the <strong>W.I.R.E.+F.R.A.M.E.</strong> prompt design framework comes in — a UX-inspired framework for writing intentional, structured, and reusable prompts. Each letter represents a key design direction, grounded in the way UX designers already think: Just as a wireframe doesn’t dictate final visuals, this WIRE+FRAME framework doesn’t constrain creativity, but guides the AI with structured information it needs.</p><blockquote>“Why not just use a series of back-and-forth chats with AI?”</blockquote><p>You can, and many people do. But without structure, AI fills in the gaps on its own, often with vague or generic results. A good prompt upfront saves time, reduces trial and error, and improves consistency. And whether you’re working on your own or across a team, a framework means you’re not reinventing a prompt every time but reusing what works to get better results faster.</p><p>Just as we build wireframes before adding layers of fidelity, the WIRE+FRAME framework has two parts:</p><ul><li><strong>WIRE</strong> is the must-have skeleton. It gives the prompt its shape.</li><li><strong>FRAME</strong> is the set of enhancements that bring polish, logic, tone, and reusability — like building a high-fidelity interface from the wireframe.</li></ul><p>Let’s improve <a href="https://www.smashingmagazine.com/2025/08/week-in-life-ai-augmented-designer/">Kate’s original research synthesis prompt</a> (<em>“Read this customer feedback and tell me how we can improve financial literacy for Gen Z in our app”</em>). To better reflect how people actually prompt in practice, let’s tweak it to a more broadly applicable version: <em>“Read this customer feedback and tell me how we can improve our app for Gen Z users.”</em> This one-liner mirrors the kinds of prompts we often throw at AI tools: short, simple, and often lacking structure.</p><p>Now, we’ll take that prompt and rebuild it using the first four elements of the <strong>W.I.R.E.</strong> framework — the core building blocks that provide AI with the main information it needs to deliver useful results.</p><h3 id="w-who-what">W: Who &amp; What</h3><p><em>Define who the AI should be, and what it’s being asked to deliver.</em></p><p>A creative brief starts with assigning the right hat. Are you briefing a copywriter? A strategist? A product designer? The same logic applies here. Give the AI a clear identity and task. Treat AI like a trusted freelancer or intern. Instead of saying “help me”, tell it who it should act as and what’s expected.</p><p><strong>Example</strong>: <em>“You are a senior UX researcher and customer insights analyst. You specialize in synthesizing qualitative data from diverse sources to identify patterns, surface user pain points, and map them across customer journey stages. Your outputs directly inform product, UX, and service priorities.”</em></p><h3 id="i-input-context">I: Input Context</h3><p><em>Provide background that frames the task.</em></p><p>Creative partners don’t work in a vacuum. They need context: the audience, goals, product, competitive landscape, and what’s been tried already. This is the “What you need to know before you start” section of the brief. Think: key insights, friction points, business objectives. The same goes for your prompt.</p><p><strong>Example</strong>: <em>“You are analyzing customer feedback for Fintech Brand’s app, targeting Gen Z users. Feedback will be uploaded from sources such as app store reviews, survey feedback, and usability test transcripts.”</em></p><h3 id="r-rules-constraints">R: Rules &amp; Constraints</h3><p><em>Clarify any limitations, boundaries, and exclusions.</em></p><p>Good creative briefs always include boundaries — what to avoid, what’s off-brand, or what’s non-negotiable. Things like brand voice guidelines, legal requirements, or time and word count limits. Constraints don’t limit creativity — they focus it. AI needs the same constraints to avoid going off the rails.</p><p><strong>Example</strong>: <em>“Only analyze the uploaded customer feedback data. Do not fabricate pain points, representative quotes, journey stages, or patterns. Do not supplement with prior knowledge or hypothetical examples. Use clear, neutral, stakeholder-facing language.”</em></p><h3 id="e-expected-output">E: Expected Output</h3><p><em>Spell out what the deliverable should look like.</em></p><p>This is the deliverable spec: What does the finished product look like? What tone, format, or channel is it for? Even if the task is clear, the format often isn’t. Do you want bullet points or a story? A table or a headline? If you don’t say, the AI will guess, and probably guess wrong. Even better, include an example of the output you want, an effective way to help AI know what you’re expecting. If you’re using GPT-5, you can also mix examples across formats (text, images, tables) together.</p><p><strong>Example</strong>: <em>“Return a structured list of themes. For each theme, include:</em></p><ul><li><strong><em>Theme Title</em></strong></li><li><strong><em>Summary of the Issue</em></strong></li><li><strong><em>Problem Statement</em></strong></li><li><strong><em>Opportunity</em></strong></li><li><strong><em>Representative Quotes (from data only)</em></strong></li><li><strong><em>Journey Stage(s)</em></strong></li><li><strong><em>Frequency (count from data)</em></strong></li><li><strong><em>Severity Score (1–5)</em></strong> <em>where 1 = Minor inconvenience or annoyance; 3 = Frustrating but workaround exists; 5 = Blocking issue</em></li><li><strong><em>Estimated Effort (Low / Medium / High)</em></strong>, <em>where Low = Copy or content tweak; Medium = Logic/UX/UI change; High = Significant changes.”</em></li></ul><p><strong>WIRE</strong> gives you everything you need to stop guessing and start designing your prompts with purpose. When you start with WIRE, your prompting is like a briefing, treating AI like a collaborator.</p><p>Once you’ve mastered this core structure, you can layer in additional fidelity, like tone, step-by-step flow, or iterative feedback, using the <strong>FRAME</strong> elements. These five elements provide additional guidance and clarity to your prompt by layering clear deliverables, thoughtful tone, reusable structure, and space for creative iteration.</p><h3 id="f-flow-of-tasks">F: Flow of Tasks</h3><p><em>Break complex prompts into clear, ordered steps.</em></p><p>This is your project plan or creative workflow that lays out the stages, dependencies, or sequence of execution. When the task has multiple parts, don’t just throw it all into one sentence. You are doing the thinking and guiding AI. Structure it like steps in a user journey or modules in a storyboard. In this example, it fits as the blueprint for the AI to use to generate the table described in “E: Expected Output”</p><p><strong>Example</strong>: <em>“Recommended flow of tasks:<br></br>Step 1: Parse the uploaded data and extract discrete pain points.<br></br>Step 2: Group them into themes based on pattern similarity.<br></br>Step 3: Score each theme by frequency (from data), severity (based on content), and estimated effort.<br></br>Step 4: Map each theme to the appropriate customer journey stage(s).<br></br>Step 5: For each theme, write a clear problem statement and opportunity based only on what’s in the data.”</em></p><h3 id="r-reference-voice-or-style">R: Reference Voice or Style</h3><p><em>Name the desired tone, mood, or reference brand.</em></p><p>This is the brand voice section or style mood board — reference points that shape the creative feel. Sometimes you want buttoned-up. Other times, you want conversational. Don’t assume the AI knows your tone, so spell it out.</p><p><strong>Example</strong>: <em>“Use the tone of a UX insights deck or product research report. Be concise, pattern-driven, and objective. Make summaries easy to scan by product managers and design leads.”</em></p><h3 id="a-ask-for-clarification">A: Ask for Clarification</h3><p><em>Invite the AI to ask questions before generating, if anything is unclear.</em></p><p>This is your <em>“Any questions before we begin?”</em> moment — a key step in collaborative creative work. You wouldn’t want a freelancer to guess what you meant if the brief was fuzzy, so why expect AI to do better? Ask AI to reflect or clarify before jumping into output mode.</p><p><strong>Example</strong>: <em>“If the uploaded data is missing or unclear, ask for it before continuing. Also, ask for clarification if the feedback format is unstructured or inconsistent, or if the scoring criteria need refinement.”</em></p><h3 id="m-memory-within-the-conversation">M: Memory (Within The Conversation)</h3><p><em>Reference earlier parts of the conversation and reuse what’s working.</em></p><p>This is similar to keeping visual tone or campaign language consistent across deliverables in a creative brief. Prompts are rarely one-shot tasks, so this reminds AI of the tone, audience, or structure already in play. GPT-5 got better with memory, but this still remains a useful element, especially if you switch topics or jump around.</p><p><strong>Example</strong>: <em>“Unless I say otherwise, keep using this process: analyze the data, group into themes, rank by importance, then suggest an action for each.”</em></p><h3 id="e-evaluate-iterate">E: Evaluate &amp; Iterate</h3><p><em>Invite the AI to critique, improve, or generate variations.</em></p><p>This is your revision loop — your way of prompting for creative direction, exploration, and refinement. Just like creatives expect feedback, your AI partner can handle review cycles if you ask for them. Build iteration into the brief to get closer to what you actually need. Sometimes, you may see ChatGPT test two versions of a response on its own by asking for your preference.</p><p><strong>Example</strong>: <em>“After listing all themes, identify the one with the highest combined priority score (based on frequency, severity, and effort).</em></p><p><em>For that top-priority theme:</em></p><ul><li><em>Critically evaluate its framing: Is the title clear? Are the quotes strong and representative? Is the journey mapping appropriate?</em></li><li><em>Suggest one improvement (e.g., improved title, more actionable implication, clearer quote, tighter summary).</em></li><li><em>Rewrite the theme entry with that improvement applied.</em></li><li><em>Briefly explain why the revision is stronger and more useful for product or design teams.”</em></li></ul><p>Here’s a quick recap of the WIRE+FRAME framework:</p><table><thead><tr><th>Framework Component</th><th>Description</th></tr></thead><tbody><tr><td><strong>W: Who &amp; What</strong></td><td>Define the AI persona and the core deliverable.</td></tr><tr><td><strong>I: Input Context</strong></td><td>Provide background or data scope to frame the task.</td></tr><tr><td><strong>R: Rules &amp; Constraints</strong></td><td>Set boundaries</td></tr><tr><td><strong>E: Expected Output</strong></td><td>Spell out the format and fields of the deliverable.</td></tr><tr><td><strong>F: Flow of Tasks</strong></td><td>Break the work into explicit, ordered sub-tasks.</td></tr><tr><td><strong>R: Reference Voice/Style</strong></td><td>Name the tone, mood, or reference brand to ensure consistency.</td></tr><tr><td><strong>A: Ask for Clarification</strong></td><td>Invite AI to pause and ask questions if any instructions or data are unclear before proceeding.</td></tr><tr><td><strong>M: Memory</strong></td><td>Leverage in-conversation memory to recall earlier definitions, examples, or phrasing without restating them.</td></tr><tr><td><strong>E: Evaluate &amp; Iterate</strong></td><td>After generation, have the AI self-critique the top outputs and refine them.</td></tr></tbody></table><p>And here’s the full WIRE+FRAME prompt:</p><blockquote><strong>(W)</strong> You are a senior UX researcher and customer insights analyst. You specialize in synthesizing qualitative data from diverse sources to identify patterns, surface user pain points, and map them across customer journey stages. Your outputs directly inform product, UX, and service priorities.<p><strong>(I)</strong> You are analyzing customer feedback for Fintech Brand’s app, targeting Gen Z users. Feedback will be uploaded from sources such as app store reviews, survey feedback, and usability test transcripts.</p><p><strong>(R)</strong> Only analyze the uploaded customer feedback data. Do not fabricate pain points, representative quotes, journey stages, or patterns. Do not supplement with prior knowledge or hypothetical examples. Use clear, neutral, stakeholder-facing language.</p><p><strong>(E)</strong> Return a structured list of themes. For each theme, include:<ul><li><strong>Theme Title</strong></li><li><strong>Summary of the Issue</strong></li><li><strong>Problem Statement</strong></li><li><strong>Opportunity</strong></li><li><strong>Representative Quotes (from data only)</strong></li><li><strong>Journey Stage(s)</strong></li><li><strong>Frequency (count from data)</strong></li><li><strong>Severity Score (1–5)</strong> where 1 = Minor inconvenience or annoyance; 3 = Frustrating but workaround exists; 5 = Blocking issue</li><li><strong>Estimated Effort (Low / Medium / High)</strong>, where Low = Copy or content tweak; Medium = Logic/UX/UI change; High = Significant changes</li></ul><strong>(F)</strong> Recommended flow of tasks:</p><br></br>Step 1: Parse the uploaded data and extract discrete pain points.<br></br>Step 2: Group them into themes based on pattern similarity.<br></br>Step 3: Score each theme by frequency (from data), severity (based on content), and estimated effort.<br></br>Step 4: Map each theme to the appropriate customer journey stage(s).<br></br>Step 5: For each theme, write a clear problem statement and opportunity based only on what’s in the data.<p><strong>(R)</strong> Use the tone of a UX insights deck or product research report. Be concise, pattern-driven, and objective. Make summaries easy to scan by product managers and design leads.</p><p><strong>(A)</strong> If the uploaded data is missing or unclear, ask for it before continuing. Also, ask for clarification if the feedback format is unstructured or inconsistent, or if the scoring criteria need refinement.</p><p><strong>(M)</strong> Unless I say otherwise, keep using this process: analyze the data, group into themes, rank by importance, then suggest an action for each.</p><p><strong>(E)</strong> After listing all themes, identify the one with the highest combined priority score (based on frequency, severity, and effort).</p><br></br>For that top-priority theme:<ul><li>Critically evaluate its framing: Is the title clear? Are the quotes strong and representative? Is the journey mapping appropriate?</li><li>Suggest one improvement (e.g., improved title, more actionable implication, clearer quote, tighter summary).</li><li>Rewrite the theme entry with that improvement applied.</li><li>Briefly explain why the revision is stronger and more useful for product or design teams.</li></ul></blockquote><p>You could use “##” to label the sections (e.g., “##FLOW”) more for your readability than for AI. At over 400 words, this Insights Synthesis prompt example is a detailed, structured prompt, but it isn’t customized for you and your work. The intent wasn’t to give you a specific prompt (the proverbial fish), but to show how you can use a prompt framework like WIRE+FRAME to create a customized, relevant prompt that will help AI augment your work (teaching you to fish).</p><p>Keep in mind that prompt length isn’t a common concern, but rather a lack of quality and structure is. As of the time of writing, AI models can easily process prompts that are thousands of words long.</p><p>Not every prompt needs all the FRAME components; WIRE is often enough to get the job done. But when the work is strategic or highly contextual, pick components from FRAME — the extra details can make a difference. Together, WIRE+FRAME give you a detailed framework for creating a well-structured prompt, with the crucial components first, followed by optional components:</p><ul><li><strong>WIRE</strong> builds a clear, focused prompt with role, input, rules, and expected output.</li><li><strong>FRAME</strong> adds refinement like tone, reusability, and iteration.</li></ul><p>Here are some scenarios and recommendations for using WIRE or WIRE+FRAME:</p><table><thead><tr><th>Scenarios</th><th>Description</th><th>Recommended</th></tr></thead><tbody><tr><td><strong>Simple, One-Off Analyses</strong></td><td>Quick prompting with minimal setup and no need for detailed process transparency.</td><td>WIRE</td></tr><tr><td><strong>Tight Sprints or Hackathons</strong></td><td>Rapid turnarounds, and times you don’t need embedded review and iteration loops.</td><td>WIRE</td></tr><tr><td><strong>Highly Iterative Exploratory Work</strong></td><td>You expect to tweak results constantly and prefer manual control over each step.</td><td>WIRE</td></tr><tr><td><strong>Complex Multi-Step Playbooks</strong></td><td>Detailed workflows that benefit from a standardized, repeatable, visible sequence.</td><td>WIRE+FRAME</td></tr><tr><td><strong>Shared or Hand-Off Projects</strong></td><td>When different teams will rely on embedded clarification, memory, and consistent task flows for recurring analyses.</td><td>WIRE+FRAME</td></tr><tr><td><strong>Built-In Quality Control</strong></td><td>You want the AI to flag top issues, self-critique, and refine, minimizing manual QC steps.</td><td>WIRE+FRAME</td></tr></tbody></table><p>Prompting isn’t about getting it right the first time. It’s about designing the interaction and redesigning when needed. With WIRE+FRAME, you’re going beyond basic prompting and designing the interaction between you and AI.</p><h3 id="from-gut-feel-to-framework-a-prompt-makeover">From Gut Feel To Framework: A Prompt Makeover</h3><p>Let’s compare the results of Kate’s first AI-augmented design sprint prompt (to synthesize customer feedback into design insights) with one based on the WIRE+FRAME prompt framework, with the same data and focusing on the top results:</p><p><em>Original prompt: Read this customer feedback and tell me how we can improve our app for Gen Z users.</em></p><p>Initial ChatGPT Results:</p><ul><li>Improve app reliability to reduce crashes and freezing.</li><li>Provide better guidance or tutorials for financial tools like budgeting or goal setting.</li><li>Enhance the transparency of Zelle transfers by showing confirmation messages.</li><li>Speed up app loading and reduce lag on key actions.</li></ul><p>With this version, you’d likely need to go back and forth with follow-up questions, rewrite the output for clarity, and add structure before sharing with your team.</p><p><em>WIRE+FRAME prompt above (with defined role, scope, rules, expected format, tone, flow, and evaluation loop).</em></p><p>Initial ChatGPT Results:</p><figure><a href="https://files.smashing.media/articles/prompting-design-act-brief-guide-iterate-ai/1-wire-frame-prompt.png"><img alt="Results of the structured WIRE+FRAME prompt" decoding="async" fetchpriority="low" height="325" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/prompting-design-act-brief-guide-iterate-ai/1-wire-frame-prompt.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/prompting-design-act-brief-guide-iterate-ai/1-wire-frame-prompt.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/prompting-design-act-brief-guide-iterate-ai/1-wire-frame-prompt.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/prompting-design-act-brief-guide-iterate-ai/1-wire-frame-prompt.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/prompting-design-act-brief-guide-iterate-ai/1-wire-frame-prompt.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/prompting-design-act-brief-guide-iterate-ai/1-wire-frame-prompt.png 2000w" width="800"></img></a><figcaption>Results of the structured WIRE+FRAME prompt. (<a href="https://files.smashing.media/articles/prompting-design-act-brief-guide-iterate-ai/1-wire-frame-prompt.png">Large preview</a>)</figcaption></figure><p>You can clearly see the very different results from the two prompts, both using the exact same data. While the first prompt returns a quick list of ideas, the detailed WIRE+FRAME version doesn’t just summarize feedback but structures it. Themes are clearly labeled, supported by user quotes, mapped to customer journey stages, and prioritized by frequency, severity, and effort.</p><p>The structured prompt results can be used as-is or shared without needing to reformat, rewrite, or explain them (see disclaimer below). The first prompt output needs massaging: it’s not detailed, lacks evidence, and would require several rounds of clarification to be actionable. The first prompt may work when the stakes are low and you are exploring. But when your prompt is feeding design, product, or strategy, structure comes to the rescue.</p><h4 id="disclaimer-know-your-data">Disclaimer: Know Your Data</h4><p>A well-structured prompt can make AI output more useful, but it shouldn’t be the final word, or your single source of truth. AI models are powerful pattern predictors, not fact-checkers. If your data is unclear or poorly referenced, even the best prompt may return confident nonsense. Don’t blindly trust what you see. <strong>Treat AI like a bright intern</strong>: fast, eager, and occasionally delusional. You should always be familiar with your data and validate what AI spits out. For example, in the WIRE+FRAME results above, AI rated the effort as low for financial tool onboarding. That could easily be a medium or high. <strong>Good prompting should be backed by good judgment.</strong></p><h3 id="try-this-now">Try This Now</h3><p>Start by using the WIRE+FRAME framework to create a prompt that will help AI augment your work. You could also rewrite the last prompt you were not satisfied with, using the WIRE+FRAME, and compare the output.</p><p>Feel free to use <a href="https://wireframe-prompt-framework.lovable.app">this simple tool</a> to guide you through the framework.</p><h2 id="methods-from-lone-prompts-to-a-prompt-system">Methods: From Lone Prompts to a Prompt System</h2><p>Just as design systems have reusable components, your prompts can too. You can use the WIRE+FRAME framework to write detailed prompts, but you can also use the structure to create reusable components that are pre-tested, plug-and-play pieces you can assemble to build high-quality prompts faster. Each part of WIRE+FRAME can be transformed into a prompt component: small, reusable modules that reflect your team’s standards, voice, and strategy.</p><p>For instance, if you find yourself repeatedly using the same content for different parts of the WIRE+FRAME framework, you could save them as reusable components for you and your team. In the example below, we have two different reusable components for “W: Who &amp; What” — an insights analyst and an information architect.</p><h3 id="w-who-what-1">W: Who &amp; What</h3><ol><li><em>You are a senior UX researcher and customer insights analyst. You specialize in synthesizing qualitative data from diverse sources to identify patterns, surface user pain points, and map them across customer journey stages. Your outputs directly inform product, UX, and service priorities.</em></li><li><em>You are an experienced information architect specializing in organizing enterprise content on intranets. Your task is to reorganize the content and features into categories that reflect user goals, reduce cognitive load, and increase findability.</em></li></ol><p>Create and save prompt components and variations for each part of the WIRE+FRAME framework, allowing your team to quickly assemble new prompts by combining components when available, rather than starting from scratch each time.</p><h2 id="behind-the-prompts-questions-about-prompting">Behind The Prompts: Questions About Prompting</h2><p><em>Q: If I use a prompt framework like WIRE+FRAME every time, will the results be predictable?</em></p><p>A: Yes and no. Yes, your outputs will be guided by a consistent set of instructions (e.g., <strong>R</strong>ules, <strong>E</strong>xamples, <strong>R</strong>eference Voice / Style) that will guide the AI to give you a predictable format and style of results. And no, while the framework provides structure, it doesn’t flatten the generative nature of AI, but focuses it on what’s important to you. In the next article, we will look at how you can use this to your advantage to quickly reuse your best repeatable prompts as we build your AI assistant.</p><p><em>Q: Could changes to AI models break the WIRE+FRAME framework?</em></p><p>A: AI models are evolving more rapidly than any other technology we’ve seen before — in fact, ChatGPT was recently updated to GPT-5 to mixed reviews. The update didn’t change the core principles of prompting or the WIRE+FRAME prompt framework. With future releases, some elements of how we write prompts today may change, but the need to communicate clearly with AI won’t. Think of how you delegate work to an intern vs. someone with a few years’ experience: you still need detailed instructions the first time either is doing a task, but the level of detail may change. WIRE+FRAME isn’t built only for today’s models; the components help you clarify your intent, share relevant context, define constraints, and guide tone and format — all timeless elements, no matter how smart the model becomes. The skill of shaping clear, structured interactions with non-human AI systems will remain valuable.</p><p><em>Q: Can prompts be more than text? What about images or sketches?</em></p><p>A: Absolutely. With tools like GPT-5 and other multimodal models, you can upload screenshots, pictures, whiteboard sketches, or wireframes. These visuals become part of your <strong>I</strong>nput Context or help define the <strong>E</strong>xpected Output. The same WIRE+FRAME principles still apply: you’re setting context, tone, and format, just using images and text together. Whether your input is a paragraph or an image and text, you’re still designing the interaction.</p><p>Have a prompt-related question of your own? Share it in the comments, and I’ll either respond there or explore it further in the next article in this series.</p><h2 id="from-designerly-prompting-to-custom-assistants">From Designerly Prompting To Custom Assistants</h2><p>Good prompts and results don’t come from using others’ prompts, but from writing prompts that are customized for you and your context. The WIRE+FRAME framework helps with that and makes prompting a tool you can use to guide AI models like a creative partner instead of hoping for magic from a one-line request.</p><p>Prompting uses the designerly skills you already use every day to collaborate with AI:</p><ul><li><strong>Curiosity</strong> to explore what the AI can do and frame better prompts.</li><li><strong>Observation</strong> to detect bias or blind spots.</li><li><strong>Empathy</strong> to make machine outputs human.</li><li><strong>Critical thinking</strong> to verify and refine.</li><li><strong>Experiment &amp; Iteration</strong> to learn by doing and improve the interaction over time.</li><li><strong>Growth Mindset</strong> to keep up with new technology like AI and prompting.</li></ul><p>Once you create and refine prompt components and prompts that work for you, make them reusable by documenting them. But wait, there’s more — what if your best prompts, or the elements of your prompts, could live inside your own AI assistant, available on demand, fluent in your voice, and trained on your context? That’s where we’re headed next.</p><p>In the next article, “Design Your Own Design Assistant”, we’ll take what you’ve learned so far and turn it into a Custom AI assistant (aka Custom GPT), a design-savvy, context-aware assistant that works like you do. We’ll walk through that exact build, from defining the assistant’s job description to uploading knowledge, testing, and sharing it with others.</p><h3 id="resources">Resources</h3><ul><li><a href="https://cookbook.openai.com/examples/gpt-5/gpt-5_prompting_guide">GPT-5 Prompting Guide</a></li><li><a href="https://cookbook.openai.com/examples/gpt4-1_prompting_guide">GPT-4.1 Prompting Guide</a></li><li><a href="https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview">Anthropic Prompt Engineering</a></li><li><a href="https://cloud.google.com/discover/what-is-prompt-engineering?hl=en">Prompt Engineering by Google</a></li><li><a href="https://docs.perplexity.ai/guides/prompt-guide">Perplexity</a></li><li><a href="https://wireframe-prompt-framework.lovable.app">Webapp to guide you through the WIRE+FRAME framework</a></li></ul><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/prompting-design-act-brief-guide-iterate-ai/prompting-design-act-brief-guide-iterate-ai.jpg" /><h1>How To Brief, Guide And Iterate With AI — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>21 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/ai">AI</a>, <a href="http://www.smashingmagazine.com/category/workflow">Workflow</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Prompting is more than giving AI some instructions. You could think of it as a design act, part creative brief and part conversation design. This second article on AI augmenting design work introduces a designerly approach to prompting: one that blends creative briefing, interaction design, and structural clarity.</section></p><p>In “<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>”, we followed Kate’s weeklong journey of her first AI-augmented design sprint. She had three realizations through the process:</p><ol><li><strong>AI isn’t a co-pilot (yet); it’s more like a smart, eager intern</strong>.<br></br>One with access to a lot of information, good recall, fast execution, but no context. That mindset defined how she approached every interaction with AI: not as magic, but as management.</li><li><strong>Don’t trust; guide, coach, and always verify.</strong><br></br>Like any intern, AI needs coaching and supervision, and that’s where her designerly skills kicked in. Kate relied on curiosity to explore, observation to spot bias, empathy to humanize the output, and critical thinking to challenge what didn’t feel right. Her learning mindset helped her keep up with advances, and experimentation helped her learn by doing.</li><li><strong>Prompting is part creative brief, and part conversation design, just with an AI instead of a person.</strong><br></br>When you prompt an AI, you’re not just giving instructions, but designing how it responds, behaves, and outputs information. If AI is like an intern, then the prompt is your creative brief that frames the task, sets the tone, and clarifies what good looks like. It’s also your conversation script that guides how it responds, how the interaction flows, and how ambiguity is handled.</li></ol><p>As designers, we’re used to designing interactions for people. Prompting is us designing our own interactions with machines — it uses the same mindset with a new medium. It shapes an AI’s behavior the same way you’d guide a user with structure, clarity, and intent.</p><p>If you’ve bookmarked, downloaded, or saved prompts from others, you’re not alone. We’ve all done that during our AI journeys. But while someone else’s prompts are a good starting point, you will get better and more relevant results if you can write your own prompts tailored to your goals, context, and style. Using someone else’s prompt is like using a Figma template. It gets the job done, but mastery comes from understanding and applying the fundamentals of design, including layout, flow, and reasoning. Prompts have a structure too. And when you learn it, you stop guessing and start designing.</p><p><strong>Note</strong>: <em>All prompts in this article were tested using ChatGPT — not because it’s the only game in town, but because it’s friendly, flexible, and lets you talk like a person, yes, even after the recent GPT-5 “update”. That said, any LLM with a decent attention span will work. Results for the same prompt may vary based on the AI model you use, the AI’s training, mood, and how confidently it can hallucinate.</em></p><p><strong>Privacy PSA</strong>: <em>As always, don’t share anything you wouldn’t want leaked, logged, or accidentally included in the next AI-generated meme. Keep it safe, legal, and user-respecting.</em></p><p>With that out of the way, let’s dive into the mindset, anatomy, and methods of effective prompting as another tool in your design toolkit.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="mindset-prompt-like-a-designer">Mindset: Prompt Like A Designer</h2><p>As designers, we storyboard journeys, wireframe interfaces to guide users, and write UX copy with intention. However, when prompting AI, we treat it differently: “Summarize these insights”, “Make this better”, “Write copy for this screen”, and then wonder why the output feels generic, off-brand, or just meh. It’s like expecting a creative team to deliver great work from a one-line Slack message. We wouldn’t brief a freelancer, much less an intern, with “Design a landing page,” so why brief AI that way?</p><h3 id="prompting-is-a-creative-brief-for-a-machine">Prompting Is A Creative Brief For A Machine</h3><p>Think of a good prompt as a <strong>creative brief</strong>, just for a non-human collaborator. It needs similar elements, including a clear role, defined goal, relevant context, tone guidance, and output expectations. Just as a well-written creative brief unlocks alignment and quality from your team, a well-structured prompt helps the AI meet your expectations, even though it doesn’t have real instincts or opinions.</p><h3 id="prompting-is-also-conversation-design">Prompting Is Also Conversation Design</h3><p>A good prompt goes beyond defining the task and sets the tone for the exchange by designing a conversation: guiding how the AI interprets, sequences, and responds. You shape the flow of tasks, how ambiguity is handled, and how refinement happens — that’s conversation design.</p><h2 id="anatomy-structure-it-like-a-designer">Anatomy: Structure It Like A Designer</h2><p>So how do you write a designer-quality prompt? That’s where the <strong>W.I.R.E.+F.R.A.M.E.</strong> prompt design framework comes in — a UX-inspired framework for writing intentional, structured, and reusable prompts. Each letter represents a key design direction, grounded in the way UX designers already think: Just as a wireframe doesn’t dictate final visuals, this WIRE+FRAME framework doesn’t constrain creativity, but guides the AI with structured information it needs.</p><blockquote>“Why not just use a series of back-and-forth chats with AI?”</blockquote><p>You can, and many people do. But without structure, AI fills in the gaps on its own, often with vague or generic results. A good prompt upfront saves time, reduces trial and error, and improves consistency. And whether you’re working on your own or across a team, a framework means you’re not reinventing a prompt every time but reusing what works to get better results faster.</p><p>Just as we build wireframes before adding layers of fidelity, the WIRE+FRAME framework has two parts:</p><ul><li><strong>WIRE</strong> is the must-have skeleton. It gives the prompt its shape.</li><li><strong>FRAME</strong> is the set of enhancements that bring polish, logic, tone, and reusability — like building a high-fidelity interface from the wireframe.</li></ul><p>Let’s improve <a href="https://www.smashingmagazine.com/2025/08/week-in-life-ai-augmented-designer/">Kate’s original research synthesis prompt</a> (<em>“Read this customer feedback and tell me how we can improve financial literacy for Gen Z in our app”</em>). To better reflect how people actually prompt in practice, let’s tweak it to a more broadly applicable version: <em>“Read this customer feedback and tell me how we can improve our app for Gen Z users.”</em> This one-liner mirrors the kinds of prompts we often throw at AI tools: short, simple, and often lacking structure.</p><p>Now, we’ll take that prompt and rebuild it using the first four elements of the <strong>W.I.R.E.</strong> framework — the core building blocks that provide AI with the main information it needs to deliver useful results.</p><h3 id="w-who-what">W: Who &amp; What</h3><p><em>Define who the AI should be, and what it’s being asked to deliver.</em></p><p>A creative brief starts with assigning the right hat. Are you briefing a copywriter? A strategist? A product designer? The same logic applies here. Give the AI a clear identity and task. Treat AI like a trusted freelancer or intern. Instead of saying “help me”, tell it who it should act as and what’s expected.</p><p><strong>Example</strong>: <em>“You are a senior UX researcher and customer insights analyst. You specialize in synthesizing qualitative data from diverse sources to identify patterns, surface user pain points, and map them across customer journey stages. Your outputs directly inform product, UX, and service priorities.”</em></p><h3 id="i-input-context">I: Input Context</h3><p><em>Provide background that frames the task.</em></p><p>Creative partners don’t work in a vacuum. They need context: the audience, goals, product, competitive landscape, and what’s been tried already. This is the “What you need to know before you start” section of the brief. Think: key insights, friction points, business objectives. The same goes for your prompt.</p><p><strong>Example</strong>: <em>“You are analyzing customer feedback for Fintech Brand’s app, targeting Gen Z users. Feedback will be uploaded from sources such as app store reviews, survey feedback, and usability test transcripts.”</em></p><h3 id="r-rules-constraints">R: Rules &amp; Constraints</h3><p><em>Clarify any limitations, boundaries, and exclusions.</em></p><p>Good creative briefs always include boundaries — what to avoid, what’s off-brand, or what’s non-negotiable. Things like brand voice guidelines, legal requirements, or time and word count limits. Constraints don’t limit creativity — they focus it. AI needs the same constraints to avoid going off the rails.</p><p><strong>Example</strong>: <em>“Only analyze the uploaded customer feedback data. Do not fabricate pain points, representative quotes, journey stages, or patterns. Do not supplement with prior knowledge or hypothetical examples. Use clear, neutral, stakeholder-facing language.”</em></p><h3 id="e-expected-output">E: Expected Output</h3><p><em>Spell out what the deliverable should look like.</em></p><p>This is the deliverable spec: What does the finished product look like? What tone, format, or channel is it for? Even if the task is clear, the format often isn’t. Do you want bullet points or a story? A table or a headline? If you don’t say, the AI will guess, and probably guess wrong. Even better, include an example of the output you want, an effective way to help AI know what you’re expecting. If you’re using GPT-5, you can also mix examples across formats (text, images, tables) together.</p><p><strong>Example</strong>: <em>“Return a structured list of themes. For each theme, include:</em></p><ul><li><strong><em>Theme Title</em></strong></li><li><strong><em>Summary of the Issue</em></strong></li><li><strong><em>Problem Statement</em></strong></li><li><strong><em>Opportunity</em></strong></li><li><strong><em>Representative Quotes (from data only)</em></strong></li><li><strong><em>Journey Stage(s)</em></strong></li><li><strong><em>Frequency (count from data)</em></strong></li><li><strong><em>Severity Score (1–5)</em></strong> <em>where 1 = Minor inconvenience or annoyance; 3 = Frustrating but workaround exists; 5 = Blocking issue</em></li><li><strong><em>Estimated Effort (Low / Medium / High)</em></strong>, <em>where Low = Copy or content tweak; Medium = Logic/UX/UI change; High = Significant changes.”</em></li></ul><p><strong>WIRE</strong> gives you everything you need to stop guessing and start designing your prompts with purpose. When you start with WIRE, your prompting is like a briefing, treating AI like a collaborator.</p><p>Once you’ve mastered this core structure, you can layer in additional fidelity, like tone, step-by-step flow, or iterative feedback, using the <strong>FRAME</strong> elements. These five elements provide additional guidance and clarity to your prompt by layering clear deliverables, thoughtful tone, reusable structure, and space for creative iteration.</p><h3 id="f-flow-of-tasks">F: Flow of Tasks</h3><p><em>Break complex prompts into clear, ordered steps.</em></p><p>This is your project plan or creative workflow that lays out the stages, dependencies, or sequence of execution. When the task has multiple parts, don’t just throw it all into one sentence. You are doing the thinking and guiding AI. Structure it like steps in a user journey or modules in a storyboard. In this example, it fits as the blueprint for the AI to use to generate the table described in “E: Expected Output”</p><p><strong>Example</strong>: <em>“Recommended flow of tasks:<br></br>Step 1: Parse the uploaded data and extract discrete pain points.<br></br>Step 2: Group them into themes based on pattern similarity.<br></br>Step 3: Score each theme by frequency (from data), severity (based on content), and estimated effort.<br></br>Step 4: Map each theme to the appropriate customer journey stage(s).<br></br>Step 5: For each theme, write a clear problem statement and opportunity based only on what’s in the data.”</em></p><h3 id="r-reference-voice-or-style">R: Reference Voice or Style</h3><p><em>Name the desired tone, mood, or reference brand.</em></p><p>This is the brand voice section or style mood board — reference points that shape the creative feel. Sometimes you want buttoned-up. Other times, you want conversational. Don’t assume the AI knows your tone, so spell it out.</p><p><strong>Example</strong>: <em>“Use the tone of a UX insights deck or product research report. Be concise, pattern-driven, and objective. Make summaries easy to scan by product managers and design leads.”</em></p><h3 id="a-ask-for-clarification">A: Ask for Clarification</h3><p><em>Invite the AI to ask questions before generating, if anything is unclear.</em></p><p>This is your <em>“Any questions before we begin?”</em> moment — a key step in collaborative creative work. You wouldn’t want a freelancer to guess what you meant if the brief was fuzzy, so why expect AI to do better? Ask AI to reflect or clarify before jumping into output mode.</p><p><strong>Example</strong>: <em>“If the uploaded data is missing or unclear, ask for it before continuing. Also, ask for clarification if the feedback format is unstructured or inconsistent, or if the scoring criteria need refinement.”</em></p><h3 id="m-memory-within-the-conversation">M: Memory (Within The Conversation)</h3><p><em>Reference earlier parts of the conversation and reuse what’s working.</em></p><p>This is similar to keeping visual tone or campaign language consistent across deliverables in a creative brief. Prompts are rarely one-shot tasks, so this reminds AI of the tone, audience, or structure already in play. GPT-5 got better with memory, but this still remains a useful element, especially if you switch topics or jump around.</p><p><strong>Example</strong>: <em>“Unless I say otherwise, keep using this process: analyze the data, group into themes, rank by importance, then suggest an action for each.”</em></p><h3 id="e-evaluate-iterate">E: Evaluate &amp; Iterate</h3><p><em>Invite the AI to critique, improve, or generate variations.</em></p><p>This is your revision loop — your way of prompting for creative direction, exploration, and refinement. Just like creatives expect feedback, your AI partner can handle review cycles if you ask for them. Build iteration into the brief to get closer to what you actually need. Sometimes, you may see ChatGPT test two versions of a response on its own by asking for your preference.</p><p><strong>Example</strong>: <em>“After listing all themes, identify the one with the highest combined priority score (based on frequency, severity, and effort).</em></p><p><em>For that top-priority theme:</em></p><ul><li><em>Critically evaluate its framing: Is the title clear? Are the quotes strong and representative? Is the journey mapping appropriate?</em></li><li><em>Suggest one improvement (e.g., improved title, more actionable implication, clearer quote, tighter summary).</em></li><li><em>Rewrite the theme entry with that improvement applied.</em></li><li><em>Briefly explain why the revision is stronger and more useful for product or design teams.”</em></li></ul><p>Here’s a quick recap of the WIRE+FRAME framework:</p><table><thead><tr><th>Framework Component</th><th>Description</th></tr></thead><tbody><tr><td><strong>W: Who &amp; What</strong></td><td>Define the AI persona and the core deliverable.</td></tr><tr><td><strong>I: Input Context</strong></td><td>Provide background or data scope to frame the task.</td></tr><tr><td><strong>R: Rules &amp; Constraints</strong></td><td>Set boundaries</td></tr><tr><td><strong>E: Expected Output</strong></td><td>Spell out the format and fields of the deliverable.</td></tr><tr><td><strong>F: Flow of Tasks</strong></td><td>Break the work into explicit, ordered sub-tasks.</td></tr><tr><td><strong>R: Reference Voice/Style</strong></td><td>Name the tone, mood, or reference brand to ensure consistency.</td></tr><tr><td><strong>A: Ask for Clarification</strong></td><td>Invite AI to pause and ask questions if any instructions or data are unclear before proceeding.</td></tr><tr><td><strong>M: Memory</strong></td><td>Leverage in-conversation memory to recall earlier definitions, examples, or phrasing without restating them.</td></tr><tr><td><strong>E: Evaluate &amp; Iterate</strong></td><td>After generation, have the AI self-critique the top outputs and refine them.</td></tr></tbody></table><p>And here’s the full WIRE+FRAME prompt:</p><blockquote><strong>(W)</strong> You are a senior UX researcher and customer insights analyst. You specialize in synthesizing qualitative data from diverse sources to identify patterns, surface user pain points, and map them across customer journey stages. Your outputs directly inform product, UX, and service priorities.<p><strong>(I)</strong> You are analyzing customer feedback for Fintech Brand’s app, targeting Gen Z users. Feedback will be uploaded from sources such as app store reviews, survey feedback, and usability test transcripts.</p><p><strong>(R)</strong> Only analyze the uploaded customer feedback data. Do not fabricate pain points, representative quotes, journey stages, or patterns. Do not supplement with prior knowledge or hypothetical examples. Use clear, neutral, stakeholder-facing language.</p><p><strong>(E)</strong> Return a structured list of themes. For each theme, include:<ul><li><strong>Theme Title</strong></li><li><strong>Summary of the Issue</strong></li><li><strong>Problem Statement</strong></li><li><strong>Opportunity</strong></li><li><strong>Representative Quotes (from data only)</strong></li><li><strong>Journey Stage(s)</strong></li><li><strong>Frequency (count from data)</strong></li><li><strong>Severity Score (1–5)</strong> where 1 = Minor inconvenience or annoyance; 3 = Frustrating but workaround exists; 5 = Blocking issue</li><li><strong>Estimated Effort (Low / Medium / High)</strong>, where Low = Copy or content tweak; Medium = Logic/UX/UI change; High = Significant changes</li></ul><strong>(F)</strong> Recommended flow of tasks:</p><br></br>Step 1: Parse the uploaded data and extract discrete pain points.<br></br>Step 2: Group them into themes based on pattern similarity.<br></br>Step 3: Score each theme by frequency (from data), severity (based on content), and estimated effort.<br></br>Step 4: Map each theme to the appropriate customer journey stage(s).<br></br>Step 5: For each theme, write a clear problem statement and opportunity based only on what’s in the data.<p><strong>(R)</strong> Use the tone of a UX insights deck or product research report. Be concise, pattern-driven, and objective. Make summaries easy to scan by product managers and design leads.</p><p><strong>(A)</strong> If the uploaded data is missing or unclear, ask for it before continuing. Also, ask for clarification if the feedback format is unstructured or inconsistent, or if the scoring criteria need refinement.</p><p><strong>(M)</strong> Unless I say otherwise, keep using this process: analyze the data, group into themes, rank by importance, then suggest an action for each.</p><p><strong>(E)</strong> After listing all themes, identify the one with the highest combined priority score (based on frequency, severity, and effort).</p><br></br>For that top-priority theme:<ul><li>Critically evaluate its framing: Is the title clear? Are the quotes strong and representative? Is the journey mapping appropriate?</li><li>Suggest one improvement (e.g., improved title, more actionable implication, clearer quote, tighter summary).</li><li>Rewrite the theme entry with that improvement applied.</li><li>Briefly explain why the revision is stronger and more useful for product or design teams.</li></ul></blockquote><p>You could use “##” to label the sections (e.g., “##FLOW”) more for your readability than for AI. At over 400 words, this Insights Synthesis prompt example is a detailed, structured prompt, but it isn’t customized for you and your work. The intent wasn’t to give you a specific prompt (the proverbial fish), but to show how you can use a prompt framework like WIRE+FRAME to create a customized, relevant prompt that will help AI augment your work (teaching you to fish).</p><p>Keep in mind that prompt length isn’t a common concern, but rather a lack of quality and structure is. As of the time of writing, AI models can easily process prompts that are thousands of words long.</p><p>Not every prompt needs all the FRAME components; WIRE is often enough to get the job done. But when the work is strategic or highly contextual, pick components from FRAME — the extra details can make a difference. Together, WIRE+FRAME give you a detailed framework for creating a well-structured prompt, with the crucial components first, followed by optional components:</p><ul><li><strong>WIRE</strong> builds a clear, focused prompt with role, input, rules, and expected output.</li><li><strong>FRAME</strong> adds refinement like tone, reusability, and iteration.</li></ul><p>Here are some scenarios and recommendations for using WIRE or WIRE+FRAME:</p><table><thead><tr><th>Scenarios</th><th>Description</th><th>Recommended</th></tr></thead><tbody><tr><td><strong>Simple, One-Off Analyses</strong></td><td>Quick prompting with minimal setup and no need for detailed process transparency.</td><td>WIRE</td></tr><tr><td><strong>Tight Sprints or Hackathons</strong></td><td>Rapid turnarounds, and times you don’t need embedded review and iteration loops.</td><td>WIRE</td></tr><tr><td><strong>Highly Iterative Exploratory Work</strong></td><td>You expect to tweak results constantly and prefer manual control over each step.</td><td>WIRE</td></tr><tr><td><strong>Complex Multi-Step Playbooks</strong></td><td>Detailed workflows that benefit from a standardized, repeatable, visible sequence.</td><td>WIRE+FRAME</td></tr><tr><td><strong>Shared or Hand-Off Projects</strong></td><td>When different teams will rely on embedded clarification, memory, and consistent task flows for recurring analyses.</td><td>WIRE+FRAME</td></tr><tr><td><strong>Built-In Quality Control</strong></td><td>You want the AI to flag top issues, self-critique, and refine, minimizing manual QC steps.</td><td>WIRE+FRAME</td></tr></tbody></table><p>Prompting isn’t about getting it right the first time. It’s about designing the interaction and redesigning when needed. With WIRE+FRAME, you’re going beyond basic prompting and designing the interaction between you and AI.</p><h3 id="from-gut-feel-to-framework-a-prompt-makeover">From Gut Feel To Framework: A Prompt Makeover</h3><p>Let’s compare the results of Kate’s first AI-augmented design sprint prompt (to synthesize customer feedback into design insights) with one based on the WIRE+FRAME prompt framework, with the same data and focusing on the top results:</p><p><em>Original prompt: Read this customer feedback and tell me how we can improve our app for Gen Z users.</em></p><p>Initial ChatGPT Results:</p><ul><li>Improve app reliability to reduce crashes and freezing.</li><li>Provide better guidance or tutorials for financial tools like budgeting or goal setting.</li><li>Enhance the transparency of Zelle transfers by showing confirmation messages.</li><li>Speed up app loading and reduce lag on key actions.</li></ul><p>With this version, you’d likely need to go back and forth with follow-up questions, rewrite the output for clarity, and add structure before sharing with your team.</p><p><em>WIRE+FRAME prompt above (with defined role, scope, rules, expected format, tone, flow, and evaluation loop).</em></p><p>Initial ChatGPT Results:</p><figure><a href="https://files.smashing.media/articles/prompting-design-act-brief-guide-iterate-ai/1-wire-frame-prompt.png"><img alt="Results of the structured WIRE+FRAME prompt" decoding="async" fetchpriority="low" height="325" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/prompting-design-act-brief-guide-iterate-ai/1-wire-frame-prompt.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/prompting-design-act-brief-guide-iterate-ai/1-wire-frame-prompt.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/prompting-design-act-brief-guide-iterate-ai/1-wire-frame-prompt.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/prompting-design-act-brief-guide-iterate-ai/1-wire-frame-prompt.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/prompting-design-act-brief-guide-iterate-ai/1-wire-frame-prompt.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/prompting-design-act-brief-guide-iterate-ai/1-wire-frame-prompt.png 2000w" width="800"></img></a><figcaption>Results of the structured WIRE+FRAME prompt. (<a href="https://files.smashing.media/articles/prompting-design-act-brief-guide-iterate-ai/1-wire-frame-prompt.png">Large preview</a>)</figcaption></figure><p>You can clearly see the very different results from the two prompts, both using the exact same data. While the first prompt returns a quick list of ideas, the detailed WIRE+FRAME version doesn’t just summarize feedback but structures it. Themes are clearly labeled, supported by user quotes, mapped to customer journey stages, and prioritized by frequency, severity, and effort.</p><p>The structured prompt results can be used as-is or shared without needing to reformat, rewrite, or explain them (see disclaimer below). The first prompt output needs massaging: it’s not detailed, lacks evidence, and would require several rounds of clarification to be actionable. The first prompt may work when the stakes are low and you are exploring. But when your prompt is feeding design, product, or strategy, structure comes to the rescue.</p><h4 id="disclaimer-know-your-data">Disclaimer: Know Your Data</h4><p>A well-structured prompt can make AI output more useful, but it shouldn’t be the final word, or your single source of truth. AI models are powerful pattern predictors, not fact-checkers. If your data is unclear or poorly referenced, even the best prompt may return confident nonsense. Don’t blindly trust what you see. <strong>Treat AI like a bright intern</strong>: fast, eager, and occasionally delusional. You should always be familiar with your data and validate what AI spits out. For example, in the WIRE+FRAME results above, AI rated the effort as low for financial tool onboarding. That could easily be a medium or high. <strong>Good prompting should be backed by good judgment.</strong></p><h3 id="try-this-now">Try This Now</h3><p>Start by using the WIRE+FRAME framework to create a prompt that will help AI augment your work. You could also rewrite the last prompt you were not satisfied with, using the WIRE+FRAME, and compare the output.</p><p>Feel free to use <a href="https://wireframe-prompt-framework.lovable.app">this simple tool</a> to guide you through the framework.</p><h2 id="methods-from-lone-prompts-to-a-prompt-system">Methods: From Lone Prompts to a Prompt System</h2><p>Just as design systems have reusable components, your prompts can too. You can use the WIRE+FRAME framework to write detailed prompts, but you can also use the structure to create reusable components that are pre-tested, plug-and-play pieces you can assemble to build high-quality prompts faster. Each part of WIRE+FRAME can be transformed into a prompt component: small, reusable modules that reflect your team’s standards, voice, and strategy.</p><p>For instance, if you find yourself repeatedly using the same content for different parts of the WIRE+FRAME framework, you could save them as reusable components for you and your team. In the example below, we have two different reusable components for “W: Who &amp; What” — an insights analyst and an information architect.</p><h3 id="w-who-what-1">W: Who &amp; What</h3><ol><li><em>You are a senior UX researcher and customer insights analyst. You specialize in synthesizing qualitative data from diverse sources to identify patterns, surface user pain points, and map them across customer journey stages. Your outputs directly inform product, UX, and service priorities.</em></li><li><em>You are an experienced information architect specializing in organizing enterprise content on intranets. Your task is to reorganize the content and features into categories that reflect user goals, reduce cognitive load, and increase findability.</em></li></ol><p>Create and save prompt components and variations for each part of the WIRE+FRAME framework, allowing your team to quickly assemble new prompts by combining components when available, rather than starting from scratch each time.</p><h2 id="behind-the-prompts-questions-about-prompting">Behind The Prompts: Questions About Prompting</h2><p><em>Q: If I use a prompt framework like WIRE+FRAME every time, will the results be predictable?</em></p><p>A: Yes and no. Yes, your outputs will be guided by a consistent set of instructions (e.g., <strong>R</strong>ules, <strong>E</strong>xamples, <strong>R</strong>eference Voice / Style) that will guide the AI to give you a predictable format and style of results. And no, while the framework provides structure, it doesn’t flatten the generative nature of AI, but focuses it on what’s important to you. In the next article, we will look at how you can use this to your advantage to quickly reuse your best repeatable prompts as we build your AI assistant.</p><p><em>Q: Could changes to AI models break the WIRE+FRAME framework?</em></p><p>A: AI models are evolving more rapidly than any other technology we’ve seen before — in fact, ChatGPT was recently updated to GPT-5 to mixed reviews. The update didn’t change the core principles of prompting or the WIRE+FRAME prompt framework. With future releases, some elements of how we write prompts today may change, but the need to communicate clearly with AI won’t. Think of how you delegate work to an intern vs. someone with a few years’ experience: you still need detailed instructions the first time either is doing a task, but the level of detail may change. WIRE+FRAME isn’t built only for today’s models; the components help you clarify your intent, share relevant context, define constraints, and guide tone and format — all timeless elements, no matter how smart the model becomes. The skill of shaping clear, structured interactions with non-human AI systems will remain valuable.</p><p><em>Q: Can prompts be more than text? What about images or sketches?</em></p><p>A: Absolutely. With tools like GPT-5 and other multimodal models, you can upload screenshots, pictures, whiteboard sketches, or wireframes. These visuals become part of your <strong>I</strong>nput Context or help define the <strong>E</strong>xpected Output. The same WIRE+FRAME principles still apply: you’re setting context, tone, and format, just using images and text together. Whether your input is a paragraph or an image and text, you’re still designing the interaction.</p><p>Have a prompt-related question of your own? Share it in the comments, and I’ll either respond there or explore it further in the next article in this series.</p><h2 id="from-designerly-prompting-to-custom-assistants">From Designerly Prompting To Custom Assistants</h2><p>Good prompts and results don’t come from using others’ prompts, but from writing prompts that are customized for you and your context. The WIRE+FRAME framework helps with that and makes prompting a tool you can use to guide AI models like a creative partner instead of hoping for magic from a one-line request.</p><p>Prompting uses the designerly skills you already use every day to collaborate with AI:</p><ul><li><strong>Curiosity</strong> to explore what the AI can do and frame better prompts.</li><li><strong>Observation</strong> to detect bias or blind spots.</li><li><strong>Empathy</strong> to make machine outputs human.</li><li><strong>Critical thinking</strong> to verify and refine.</li><li><strong>Experiment &amp; Iteration</strong> to learn by doing and improve the interaction over time.</li><li><strong>Growth Mindset</strong> to keep up with new technology like AI and prompting.</li></ul><p>Once you create and refine prompt components and prompts that work for you, make them reusable by documenting them. But wait, there’s more — what if your best prompts, or the elements of your prompts, could live inside your own AI assistant, available on demand, fluent in your voice, and trained on your context? That’s where we’re headed next.</p><p>In the next article, “Design Your Own Design Assistant”, we’ll take what you’ve learned so far and turn it into a Custom AI assistant (aka Custom GPT), a design-savvy, context-aware assistant that works like you do. We’ll walk through that exact build, from defining the assistant’s job description to uploading knowledge, testing, and sharing it with others.</p><h3 id="resources">Resources</h3><ul><li><a href="https://cookbook.openai.com/examples/gpt-5/gpt-5_prompting_guide">GPT-5 Prompting Guide</a></li><li><a href="https://cookbook.openai.com/examples/gpt4-1_prompting_guide">GPT-4.1 Prompting Guide</a></li><li><a href="https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview">Anthropic Prompt Engineering</a></li><li><a href="https://cloud.google.com/discover/what-is-prompt-engineering?hl=en">Prompt Engineering by Google</a></li><li><a href="https://docs.perplexity.ai/guides/prompt-guide">Perplexity</a></li><li><a href="https://wireframe-prompt-framework.lovable.app">Webapp to guide you through the WIRE+FRAME framework</a></li></ul><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (Lyndon Cerejo) <![CDATA[Designing For TV: The Evergreen Pattern That Shapes TV Experiences (Part 1)]]> https://smashingmagazine.com/2025/08/designing-tv-evergreen-pattern-shapes-tv-experiences/ https://smashingmagazine.com/2025/08/designing-tv-evergreen-pattern-shapes-tv-experiences/ Wed, 27 Aug 2025 13:00:00 GMT <img src="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/designing-tv-evergreen-pattern-shapes-tv-experiences.jpg" /><h1>The Evergreen Pattern That Shapes TV Experiences — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>20 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/tv">TV</a>, <a href="http://www.smashingmagazine.com/category/inspiration">Inspiration</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>TV interface design is a unique, fascinating, and often overlooked field. It’s been guided by decades of evolution and innovation, yet still firmly constrained by its legacy. Follow Milan into the history, quirks, and unshakable rules that dictate how we control these devices.</section></p><p>Television sets have been the staple of our living rooms for decades. We watch, we interact, and we control, but how often do we <em>design</em> for them? TV design flew under my “radar” for years, until one day I found myself in the deep, designing TV-specific user interfaces. Now, after gathering quite a bit of experience in the area, I would like to share my knowledge on this rather rare topic. If you’re interested in learning more about the <strong>user experience</strong> and <strong>user interfaces of television</strong>, this article should be a good starting point.</p><p>Just like any other device or use case, TV has its quirks, specifics, and guiding principles. Before getting started, it will be beneficial to understand the core <em>ins</em> and <em>outs</em>. In Part 1, we’ll start with a bit of history, take a close look at the fundamentals, and review the evolution of television. In Part 2, we’ll dive into the depths of practical aspects of designing for TV, including its key principles and patterns.</p><p>Let’s start with the two key paradigms that dictate the process of designing TV interfaces.</p><p>Firstly, we have the so-called “<a href="https://www.edenspiekermann.com/insights/the-10-foot-experience/">10-foot experience</a>,” referring to the fact that interaction and consumption on TV happens from a distance of roughly three or more meters. This is significantly different than interacting with a phone or a computer and implies having some specific approaches in the TV user interface design. For example, we’ll need to make text and user interface (UI) elements larger on TV to account for the bigger distance to the screen.</p><p>Furthermore, we’ll take extra care to adhere to <strong>contrast standards</strong>, primarily relying on dark interfaces, as light ones may be too blinding in darker surroundings. And finally, considering the laid-back nature of the device, we’ll <strong>simplify the interactions</strong>.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/1-10-ft-experience.jpg"><img alt="A hand holds a modern TV remote, aimed at a television screen. The blurred background emphasizes the viewing distance, illustrating the '10-foot experience,' a key aspect of TV interaction distinct from phones and computers." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/1-10-ft-experience.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/1-10-ft-experience.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/1-10-ft-experience.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/1-10-ft-experience.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/1-10-ft-experience.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/1-10-ft-experience.jpg 2000w" width="800"></img></a><figcaption>Unlike phones or computers, the TV set is used from a greater distance. This interaction paradigm is known as the “10-foot experience.” (Photo by <a href="https://unsplash.com/photos/person-holding-gray-remote-control-dZmNJKFDuVI">Jonas Leupe</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/1-10-ft-experience.jpg">Large preview</a>)</figcaption></figure><p>But the 10-foot experience is only one part of the equation. There wouldn’t be a “10-foot experience” in the first place if there were no <em>mediator</em> between the user and the device, and if we didn’t have something to interact <em>through</em> from a distance.</p><p>There would be no 10-foot experience if there were no <strong>remote controllers</strong>.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><p>The <strong>remote</strong>, the second half of the equation, is what allows us to interact with the TV from the comfort of the couch. Slower and more deliberate, this conglomerate of buttons lacks the fluid motion of a mouse, or the dexterity of fingers against a touchscreen — yet the capabilities of the remote should not be underestimated.</p><p>Rudimentary as it is and with a limited set of functions, the remote allows for some interesting design approaches and can carry the weight of the modern TV along with its ever-growing requirements for interactivity. It underwent a handful of overhauls during the seventy years since its inception and was refined and made more ergonomic; however, there is a <strong>40-year-old pattern</strong> so deeply ingrained in its foundation that nothing can change it.</p><p>What if I told you that you could navigate TV interfaces and apps with a basic controller from the 1980s <em>just as well</em> as with the latest remote from Apple? Not only that, but any experience built around the <strong>six core buttons</strong> of a remote will be system-agnostic and will easily translate across platforms.</p><p>This is the main point I will focus on for the rest of this article.</p><h2 id="birth-of-a-pattern">Birth Of A Pattern</h2><p>As television sets were taking over people’s living rooms in the 1950s, manufacturers sought to upgrade and improve the user experience. The effort of walking up to the device to manually adjust some settings was eventually identified as an area for improvement, and as a result, the first television remote controllers were introduced to the market.</p><h3 id="early-developments">Early Developments</h3><p>Preliminary iterations of the remotes were rather unique, and it took some divergence before we finally settled on a rectangular shape and sprinkled buttons on top.</p><p>Take a look at the <a href="https://en.wikipedia.org/wiki/Zenith_Flash-matic">Zenith Flash-Matic</a>, for example. Designed in the mid-1950s, this standout device featured a single button that triggered a directional lamp; by pointing it at specific corners of the TV set, viewers could control various functions, such as changing channels or adjusting the volume.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/2-flash-matic.jpg"><img alt="The Zenith Flash-Matic remote, a vintage green and gold device resembling a ray gun, with a trigger-style red button." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/2-flash-matic.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/2-flash-matic.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/2-flash-matic.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/2-flash-matic.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/2-flash-matic.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/2-flash-matic.jpg 2000w" width="800"></img></a><figcaption>Zenith Flash-Matic remote, one of the earliest predecessors of modern TV remotes. (Photo by the <a href="https://collection.sciencemuseumgroup.org.uk/objects/co8676884/zenith-flash-matic-remote-control">Science Museum Group</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/2-flash-matic.jpg">Large preview</a>)</figcaption></figure><p>While they were a far cry compared to their modern counterparts, devices like the Flash-Matic set the scene for further developments, and we were off to the races!</p><p>As the designs evolved, the core functionality of the remote solidified. Gradually, remote controls became more than just simple channel changers, evolving into command centers for the expanding territory of home entertainment.</p><p><strong>Note</strong>: I will not go too much into history here — aside from some specific points that are of importance to the matter at hand — but if you have some time to spare, do look into the developmental history of television sets and remotes, it’s quite a fascinating topic.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/3-space-command.jpg"><img alt="The Zenith Space Command remote, a sleek, metallic device with a number pad, volume, and channel controls. Its refined design closely resembles modern TV remotes." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/3-space-command.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/3-space-command.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/3-space-command.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/3-space-command.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/3-space-command.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/3-space-command.jpg 2000w" width="800"></img></a><figcaption>After two decades of iteration, Zenith Space Command’s form-factor is a lot more in line with contemporary remotes. (Photo by <a href="https://www.flickr.com/photos/oskay/297852961/in/photostream/">Windell Oskay</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/3-space-command.jpg">Large preview</a>)</figcaption></figure><p>However, practical as they may have been, they were still considered a luxury, significantly increasing the prices of TV sets. As the 1970s were coming to a close, only around <a href="https://www.grunge.com/826329/the-history-of-the-tv-remote/">17% of United States households</a> had a remote controller for their TVs. Yet, things would change as the new decade rolled in.</p><h3 id="button-mania-of-the-1980s">Button Mania Of The 1980s</h3><p>The eighties brought with them the Apple Macintosh, MTV, and Star Wars. It was a time of cultural shifts and technological innovation. <a href="https://en.wikipedia.org/wiki/Videocassette_recorder">Videocassette recorders</a> (VCRs) and a multitude of other consumer electronics found their place in the living rooms of the world, along with TVs.</p><p>These new devices, while enriching our media experiences, also introduced a few new design problems. Where there was once a single remote, now there were <em>multiple</em> remotes, and things were getting slowly out of hand.</p><p>This marked the advent of <strong>universal remotes</strong>.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/4-universal-remote.jpg"><img alt="A Sony universal remote control with a metallic faceplate and a black body. It features a large number of small, uniform buttons, all the same shape and size, arranged in a dense grid. The buttons are labeled for various functions, including playback controls, numeric input, and device selection. This design allows the remote to control multiple devices, consolidating numerous functions into a single unit but means that the remote will have a significantly larger number of buttons than a standard TV remote." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/4-universal-remote.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/4-universal-remote.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/4-universal-remote.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/4-universal-remote.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/4-universal-remote.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/4-universal-remote.jpg 2000w" width="800"></img></a><figcaption>A universal remote by Sony, programmable for up to three different devices. (Image source: <a href="https://www.ebay.com/itm/116233118261">ebay.com</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/4-universal-remote.jpg">Large preview</a>)</figcaption></figure><p>Trying to hit many targets with one stone, the unwieldy universal remotes were humanity’s best solution for controlling a wider array of devices. And they did solve some of these problems, albeit in an awkward way. The complexity of universal remotes was a trade-off for versatility, allowing them to be programmed and used as a command center for controlling multiple devices. This meant transforming the relatively simple design of their predecessors into a beehive of buttons, prioritizing broader compatibility over elegance.</p><p>On the other hand, almost as a response to the inconvenience of the universal remote, a different type of controller was conceived in the 1980s — one with a very basic layout and set of buttons, and which would leave its mark in both <em>how</em> we interact with the TV, and how our remotes are laid out. A device that would, knowingly or not, give birth to a navigational pattern that is yet to be broken — the <a href="https://nintendo.fandom.com/wiki/Nintendo_Entertainment_System_controller">NES controller</a>.</p><h3 id="d-pad-dominance">D-pad Dominance</h3><p>Released in 1985, the <strong>Nintendo Entertainment System (NES)</strong> was an instant hit. Having sold sixty million units around the world, it left an undeniable mark on the gaming console industry.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/5-nes-control.jpg"><img alt="A classic Nintendo Entertainment System (NES) controller with a rectangular design, featuring a black directional pad (D-pad) on the left, two red circular action buttons labeled 'A' and 'B' on the right, and two small rectangular 'Select' and 'Start' buttons in the center." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/5-nes-control.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/5-nes-control.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/5-nes-control.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/5-nes-control.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/5-nes-control.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/5-nes-control.jpg 2000w" width="800"></img></a><figcaption>The Nintendo NES controller with its iconic D-pad and two action buttons. (Photo by <a href="https://commons.wikimedia.org/wiki/File:NES-Controller-Flat.jpg">Evan Amos</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/5-nes-control.jpg">Large preview</a>)</figcaption></figure><p>The NES controller (which was not truly remote, as it ran a cable to the central unit) introduced the world to a deceptively simple control scheme. Consisting of six primary actions, it gave us the directional pad (the D-pad), along with two action buttons (<code>A</code> and <code>B</code>). Made in response to the bulky joystick, the cross-shaped cluster allowed for easy movement along two axes (<code>up</code>, <code>down</code>, <code>left</code>, and <code>right</code>).</p><p>Charmingly intuitive, this navigational pattern would produce countless hours of gaming fun, but more importantly, its elementary design would “seep over” into the <em>wider industry</em> — the D-pad, along with the two action buttons, would become the very basis on which future remotes would be constructed.</p><p>The world continued spinning madly on, and what was once a luxury became commonplace. By the end of the decade, TV remotes were more integral to the standard television experience, and more than <a href="https://www.grunge.com/826329/the-history-of-the-tv-remote/">two-thirds of American TV owners</a> had some sort of a remote.</p><p>The nineties rolled in with further technological advancements. TV sets became more robust, allowing for finer tuning of their settings. This meant creating interfaces through which such tasks could be accomplished, and along with their master sets, remotes got updated as well.</p><p>Gone were the bulky rectangular behemoths of the eighties. As ergonomics took precedence, they got replaced by comfortably contoured devices that better fit their users’ hands. Once conglomerations of dozens of uniform buttons, these contemporary remotes introduced different shapes and sizes, allowing for recognition simply through touch. Commands were being clustered into sensible groups along the body of the remote, and within those button groups, a familiar shape started to emerge.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/6-magnavox-remote.jpg"><img alt="A Magnavox remote control from the 1990s, featuring a black plastic body with a slightly curved shape. At the top, a cluster of playback buttons is arranged in a circular layout, resembling a D-pad, and includes 'Play,' 'Rewind,' 'Fast Forward,' and 'Stop.' Below, there are additional buttons for number input, recording, and other TV functions." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/6-magnavox-remote.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/6-magnavox-remote.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/6-magnavox-remote.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/6-magnavox-remote.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/6-magnavox-remote.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/6-magnavox-remote.jpg 2000w" width="800"></img></a><figcaption>A remote controller from the 1990s, with a prominent button cluster resembling a D-pad. (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/6-magnavox-remote.jpg">Large preview</a>)</figcaption></figure><p>Gradually, the D-pad found its spot on our TV remotes. As the evolution of these devices progressed, it became even more deeply embedded at the core of their interactivity.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/7-samsung-remote.jpg"><img alt="A Samsung remote from the 2000s, featuring a grey plastic body with a structured button layout. The central section features a prominent D-pad-like cluster with an 'Enter' button at its center, surrounded by directional buttons for navigation. Above, there are numeric keys and function buttons, while the lower section includes additional controls and color-coded buttons for multimedia or menu navigation." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/7-samsung-remote.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/7-samsung-remote.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/7-samsung-remote.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/7-samsung-remote.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/7-samsung-remote.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/7-samsung-remote.jpg 2000w" width="800"></img></a><figcaption>Remote controller from the 2000s with a clearly defined D-pad cluster. (Image source: <a href="https://www.emag.bg/distancionno-za-televizor-syvmestimo-s-samsung-a-sivo-aa59-00332/pd/DD9ZRHMBM/">emag.bg</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/7-samsung-remote.jpg">Large preview</a>)</figcaption></figure><p>Set-top boxes and smart features emerged in the 2000s and 2010s, and TV technology continued to advance. Along the way, many bells and whistles were introduced. TVs got bigger, brighter, thinner, yet their essence remained unchanged.</p><p>In the years since their inception, remotes were innovated upon, but all the undertakings circle back to the <strong>core principles of the NES controller</strong>. Future endeavours never managed to replace, but only to augment and reinforce the pattern.</p><h2 id="the-evergreen-pattern">The Evergreen Pattern</h2><p>In 2013, <a href="https://www.lg.com/nz/about-lg/press-and-media/lg-announces-2013-lg-smart-tv-with-magic-remote/">LG introduced</a> their Magic remote <em>(“So magically simple, the kids will be showing you how to use it!”)</em>. This uniquely shaped device enabled motion controls on LG TV sets, allowing users to point and click similar to a computer mouse. Having a pointer on the screen allowed for much <strong>more flexibility and speed</strong> within the system, and the remote was well-received and praised as one of the best smart TV remotes.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/8-lg-magic-remote.jpg"><img alt="A black LG Magic Remote with a circular D-pad at the top, surrounded by navigation and function buttons. Unlike traditional rectangular remotes, this one has a sleek, tapered oval design that widens at the top and narrows towards the bottom, making it comfortable to hold. This remote supports motion controls, allowing users to point, gesture, and interact with the TV using an on-screen cursor." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/8-lg-magic-remote.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/8-lg-magic-remote.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/8-lg-magic-remote.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/8-lg-magic-remote.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/8-lg-magic-remote.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/8-lg-magic-remote.jpg 2000w" width="800"></img></a><figcaption>The LG Magic remote. This device allowed for innovative ways of interacting with the TV, but kept the D-pad as one of its central elements. (Image source: <a href="https://www.bhphotovideo.com/c/product/965478-REG/lg_electronics_an_mr400_magic_remote_with_receiver.html">bhphotovideo.com</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/8-lg-magic-remote.jpg">Large preview</a>)</figcaption></figure><p>Innovating on tradition, this device introduced new features and fresh perspectives to the world of TV. But if we look at the device itself, we’ll see that, despite its differences, it still retains the D-pad as a means of interaction. It may be argued that LG never set out to replace the directional pad, and as it stands, regardless of their intent, they only managed to <em>augment</em> it.</p><p>For an even better example, let’s examine Apple TV’s second-generation remotes (the first-generation Siri remote). Being the industry disruptors, Apple introduced a touchpad to the top half of the remote. The glass surface provided briskness and precision to the experience, enabling <strong>multi-touch gestures</strong>, <strong>swipe navigation</strong>, and <strong>quick scrolling</strong>. This quality of life upgrade was most noticeable when typing with the horizontal on-screen keyboards, as it allowed for smoother and quicker scrolling from A to Z, making for a more refined experience.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/9-apple-tv-gen-2.jpg"><img alt="Apple TV second-generation remote (first-generation Siri remote) with a slim, rectangular aluminum body. The top half features a touchpad that replaces a traditional D-pad while maintaining the same four-directional movement, allowing for swipe gestures and precise navigation. Below the touchpad are a few essential buttons, including 'Menu,' 'TV/Home,' a microphone button for Siri voice commands, and volume controls." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/9-apple-tv-gen-2.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/9-apple-tv-gen-2.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/9-apple-tv-gen-2.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/9-apple-tv-gen-2.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/9-apple-tv-gen-2.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/9-apple-tv-gen-2.jpg 2000w" width="800"></img></a><figcaption>The Apple TV second-generation remote control (first-generation Siri remote), known for removing the familiar shape of the D-pad and augmenting it with a touchpad. (Image source: <a href="https://support.apple.com/en-is/103233">Apple</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/9-apple-tv-gen-2.jpg">Large preview</a>)</figcaption></figure><p>While at first glance it may seem Apple removed the directional buttons, the fact is that the touchpad is simply a modernised take on the pattern, still abiding by the same four directions a classic D-pad does. You could say it’s a D-pad with an extra layer of gimmick.</p><p>Furthermore, the touchpad didn’t really sit well with the user base, along with the fact that the remote’s ergonomics were a bit iffy. So instead of pushing the boundaries even further with their third generation of remotes, Apple did a complete 180, <a href="https://support.apple.com/en-us/111844">re-introducing the classic D-pad</a> cluster while keeping the touch capabilities from the previous generation (the touch-enabled clickpad lets you select titles, swipe through playlists, and use a circular gesture on the outer ring to find just the scene you’re looking for).</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/10-apple-tv-gen-3.jpg"><img alt="The Apple TV third-generation remote (second-generation Siri remote) featuring a slim, rectangular aluminum body with a silver finish. At the top, a circular black D-pad with a touch-sensitive surface allows both directional button presses and swipe gestures. Below it, a set of black buttons includes back, TV/home, play/pause, mute, volume controls, and a power button." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/10-apple-tv-gen-3.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/10-apple-tv-gen-3.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/10-apple-tv-gen-3.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/10-apple-tv-gen-3.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/10-apple-tv-gen-3.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/10-apple-tv-gen-3.jpg 2000w" width="800"></img></a><figcaption>The Apple TV third-generation remote (second-generation Siri remote). Keeping the past generation’s touch capabilities, it reintroduced the D-pad. (Image source: <a href="https://www.apple.com/shop/product/MW5G3AM/A/siri-remote">Apple</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/10-apple-tv-gen-3.jpg">Large preview</a>)</figcaption></figure><p>Now, why can’t we figure out a better way to navigate TVs? Does that mean we shouldn’t try to innovate?</p><p>We can argue that using motion controls and gestures is an obvious upgrade to interacting with a TV. And we’d be right… in principle. These added features are more complex and costly to produce, but more importantly, while it has been upgraded with bits and bobs, the TV is essentially a legacy system. And it’s not only that.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aWhile%20touch%20controls%20are%20a%20staple%20of%20interaction%20these%20days,%20adding%20them%20without%20thorough%20consideration%20can%20reduce%20the%20usability%20of%20a%20remote.%0a&amp;url=https://smashingmagazine.com%2f2025%2f08%2fdesigning-tv-evergreen-pattern-shapes-tv-experiences%2f">While touch controls are a staple of interaction these days, adding them without thorough consideration can reduce the usability of a remote.</a></p></blockquote><h3 id="pitfalls-of-touch-controls">Pitfalls Of Touch Controls</h3><p>Modern car dashboards are increasingly being dominated by touchscreens. While they may impress at auto shows, their <a href="https://uxdesign.cc/why-touchscreens-dont-work-in-cars-69b6ff3d4355">real-world usability is often compromised</a>.</p><p>Driving demands constant focus and the ability to adapt and respond to ever-changing conditions. Any interface that requires taking your eyes off the road for more than a moment increases the risk of accidents. That’s exactly where touch controls fall short. While they may be more practical (and likely cheaper) for manufacturers to implement, they’re often the opposite for the end user.</p><p>Unlike physical buttons, knobs, and levers, which offer tactile landmarks and feedback, touch interfaces lack the ability to be used by <em>feeling</em> alone. Even simple tasks like adjusting the volume of the radio or the climate controls often involve gestures and nested menus, all performed on a smooth glass surface that demands visual attention, especially when fine-tuning.</p><p>Fortunately, the upcoming <a href="https://www.theautopian.com/europe-is-requiring-physical-buttons-for-cars-to-get-top-safety-marks-and-we-should-too/">2026 Euro NCAP regulations</a> will encourage car manufacturers to <strong>reintroduce physical controls for core functions</strong>, reducing driver distraction and promoting safer interaction.</p><p>Similarly (though far less critically), sleek, buttonless TV remote controls may feel modern, but they introduce unnecessary abstraction to a familiar set of controls.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aPhysical%20buttons%20with%20distinct%20shapes%20and%20positioning%20allow%20users%20to%20navigate%20by%20memory%20and%20touch,%20even%20in%20the%20dark.%20That%e2%80%99s%20not%20outdated%20%e2%80%94%20it%e2%80%99s%20a%20deeper%20layer%20of%20usability%20that%20modern%20design%20should%20respect,%20not%20discard.%0a&amp;url=https://smashingmagazine.com%2f2025%2f08%2fdesigning-tv-evergreen-pattern-shapes-tv-experiences%2f">Physical buttons with distinct shapes and positioning allow users to navigate by memory and touch, even in the dark. That’s not outdated — it’s a deeper layer of usability that modern design should respect, not discard.</a></p></blockquote><p>And this is precisely why Apple reworked the Apple TV third-generation remote the way it is now, where the touch area at the top disappeared. Instead, the D-pad again had clearly defined buttons, and at the same time, the D-pad could also be <em>extended</em> (not replaced) to accept some touch gestures.</p><h2 id="the-legacy-of-tv">The Legacy Of TV</h2><p>Let’s take a look at an old on-screen keyboard.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/11-zelda-keyboard.jpg"><img alt="Name registration screen from the 1986 game 'The Legend of Zelda' featuring an early on-screen keyboard. The interface has a black background with white pixelated text and a blue selection box. Three small pixel-art Link characters are displayed, with one highlighted by a red cursor. Below them, an alphabetic and numeric character selection grid is presented, allowing players to input a name." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/11-zelda-keyboard.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/11-zelda-keyboard.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/11-zelda-keyboard.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/11-zelda-keyboard.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/11-zelda-keyboard.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/11-zelda-keyboard.jpg 2000w" width="800"></img></a><figcaption>Name registration screen along with an early iteration of an on-screen keyboard from the game “<a href="https://en.wikipedia.org/wiki/The_Legend_of_Zelda_(video_game)">The Legend of Zelda</a>” (1986). (Image source: <a href="https://www.gameuidatabase.com/gameData.php?id=1869&amp;autoload=76508">Game UI Database</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/11-zelda-keyboard.jpg">Large preview</a>)</figcaption></figure><p>The Legend of Zelda, released in 1986, allowed players to register their names in-game. There are even older games with the same feature, but that’s beside the point. Using the NES controller, the players would move around the keyboard, entering their moniker character by character. Now let’s take a look at a modern iteration of the on-screen keyboard.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/12-google-tv-keyboard.jpg"><img alt="A modern on-screen dark-themed keyboard interface from Google's GBoard for Android TVs. The top of the screen is reserved for user details, with focus on the password field. Below the password field, a virtual keyboard with a QWERTY layout is visible, featuring rounded keys with white lettering on a dark background." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/12-google-tv-keyboard.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/12-google-tv-keyboard.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/12-google-tv-keyboard.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/12-google-tv-keyboard.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/12-google-tv-keyboard.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/12-google-tv-keyboard.jpg 2000w" width="800"></img></a><figcaption>Google’s GBoard, a modern iteration of the on-screen keyboard for Android TVs. (Image by <a href="https://websiddu.com/work/g-board-for-tv">Siddhartha Gudipati</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/12-google-tv-keyboard.jpg">Large preview</a>)</figcaption></figure><p>Notice the difference? Or, to phrase it better: do you notice the similarities? Throughout the years, we’ve introduced quality of life improvements, but the core is exactly the same as it was forty years ago. And it is not the lack of innovation or bad remotes that keep TV deeply ingrained in its beginnings. It’s simply that it’s the most optimal way to interact given the circumstances.</p><h3 id="laying-it-all-out">Laying It All Out</h3><p>Just like phones and computers, TV layouts are based on a <strong>grid system</strong>. However, this system is a lot more apparent and rudimentary on TV. Taking a look at a standard TV interface, we’ll see that it consists mainly of horizontal and vertical lists, also known as <em>shelves</em>.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/13-youtube-tv-ui.jpg"><img alt="The interface of the YouTube TV app, displaying a dark-themed home screen with recommended videos. The layout is optimized for TV navigation, with large video thumbnails in two horizontal lists, and a sidebar menu on the left for browsing options." decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/13-youtube-tv-ui.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/13-youtube-tv-ui.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/13-youtube-tv-ui.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/13-youtube-tv-ui.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/13-youtube-tv-ui.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/13-youtube-tv-ui.jpg 2000w" width="800"></img></a><figcaption>The interface of the YouTube TV app. (Image source: <a href="https://play.google.com/store/apps/details?id=com.google.android.youtube.tv">Google Play</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/13-youtube-tv-ui.jpg">Large preview</a>)</figcaption></figure><p>These grids may be populated with cards, characters of the alphabet, or anything else, essentially, and upon closer examination, we’ll notice that our movement is restricted by a few factors:</p><ol><li>There is no pointer for our eyes to follow, like there would be on a computer.</li><li>There is no way to interact directly with the display like we would with a touchscreen.</li></ol><p>For the purposes of navigating with a remote, a <strong>focus state</strong> is introduced. This means that an element will always be highlighted for our eyes to anchor, and it will be the starting point for any subsequent movement within the interface.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/14-focus-state-column-remote.gif"><img alt="Representation of TV user interface showcasing a focus state as the selection moves sequentially from item to item within a vertical column. A remote control is placed in the bottom-right corner with highlights of the button presses. The list moves sequentially in a vertical line from the first item to the fourth item, then back." height="810" src="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/14-focus-state-column-remote.gif" width="1440"></img></a><figcaption>Simplified TV UI demonstrating a focus state along with sequential movement from item to item within a column.</figcaption></figure><p>Moreover, starting from the focused element, we can notice that the movement is restricted to one item at a time, almost like skipping stones. Navigating linearly in such a manner, if we wanted to move within a list of elements from element #1 to element #5, we’d have to press a directional button four times.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/15-focus-state-row-remote.gif"><img alt="Representation of TV user interface showcasing a focus state as the selection moves sequentially from item to item within a horizontal column. A remote control is placed in the bottom-right corner with highlights of the button presses. The list moves sequentially in a horizontal line from the first item to the fifth item, then back." height="810" src="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/15-focus-state-row-remote.gif" width="1440"></img></a><figcaption>Simplified TV UI demonstrating a focus state along with sequential movement from item to item within a row.</figcaption></figure><p>To successfully navigate such an interface, we need the ability to move <code>left</code>, <code>right</code>, <code>up</code>, and <code>down</code> — we need a D-pad. And once we’ve landed on our desired item, there needs to be a way to select it or make a confirmation, and in the case of a mistake, we need to be able to go back. For the purposes of those two additional interactions, we’d need two more buttons, <code>OK</code> and <code>back</code>, or to make it more abstract, we’d need buttons <code>A</code> and <code>B</code>.</p><blockquote>So, to successfully navigate a TV interface, we need only a NES controller.<p>Yes, we can enhance it with touchpads and motion gestures, augment it with voice controls, but <strong>this unshakeable foundation of interaction</strong> will remain as the very basic level of inherent complexity in a TV interface. Reducing it any further would significantly <strong>impair the experience</strong>, so all we’ve managed to do throughout the years is to only build upon it.</p></blockquote><p>The D-pad and buttons <code>A</code> and <code>B</code> survived decades of innovation and technological shifts, and chances are they’ll survive many more. By understanding and respecting this principle, you can design intuitive, system-agnostic experiences and easily translate them across platforms. Knowing you can’t go simpler than these six buttons, you’ll easily build from the ground up and attach any additional framework-bound functionality to the time-tested core.</p><p>And once you get the grip of these paradigms, you’ll get into mapping and re-mapping buttons depending on context, and understand just how far you can go when designing for TV. You’ll be able to invent new experiences, conduct experiments, and challenge the patterns. But that is a topic for a different article.</p><h2 id="closing-thoughts">Closing Thoughts</h2><p>While designing for TV almost exclusively during the past few years, I was also often educating the stakeholders on the very principles outlined in this article. Trying to address their concerns about different remotes working slightly differently, I found respite in the simplicity of the NES controller and how it got the point across in an understandable way. Eventually, I expanded my knowledge by looking into the developmental history of the remote and was surprised that my analogy had backing in history. This is a fascinating niche, and there’s a lot more to share on the topic. I’m glad we started!</p><p>It’s vital to understand the fundamental “ins” and “outs” of any venture before getting practical, and TV is no different. Now that you understand the basics, go, dig in, and break some ground.</p><p>Having covered the <strong>underlying interaction patterns of TV experiences</strong> in detail, it’s time to get practical.</p><p>In <strong>Part 2</strong>, we’ll explore the building blocks of the 10-foot experience and how to best utilize them in your designs. We’ll review the TV design fundamentals (the screen, layout, typography, color, and focus/focus styles), and the common TV UI components (menus, “shelves,” spotlights, search, and more). I will also show you how to start thinking beyond the basics and to work with — and around — the constraints which we abide by when designing for TV. Stay tuned!</p><h3 id="further-reading">Further Reading</h3><ul><li>“<a href="https://www.edenspiekermann.com/insights/the-10-foot-experience/">The 10 Foot Experience</a>,” by Robert Stulle (Edenspiekermann)<br></br><em>Every user interface should offer effortless navigation and control. For the 10-foot experience, this is twice as important; with only up, down, left, right, OK and back as your input vocabulary, things had better be crystal clear. You want to sit back and enjoy without having to look at your remote — your thumb should fly over the buttons to navigate, select, and activate.</em></li><li>“<a href="https://learn.microsoft.com/en-us/windows/win32/dxtecharts/introduction-to-the-10-foot-experience-for-windows-game-developers">Introduction to the 10-Foot Experience for Windows Game Developers</a>” (Microsoft Learn)<br></br><em>A growing number of people are using their personal computers in a completely new way. When you think of typical interaction with a Windows-based computer, you probably envision sitting at a desk with a monitor, and using a mouse and keyboard (or perhaps a joystick device); this is referred to as the 2-foot experience. But there’s another trend which you’ll probably start hearing more about: the 10-foot experience, which describes using your computer as an entertainment device with output to a TV. This article introduces the 10-foot experience and explores the list of things that you should consider first about this new interaction pattern, even if you aren’t expecting your game to be played this way.</em></li><li>“<a href="https://en.wikipedia.org/wiki/10-foot_user_interface">10-foot user interface</a>” (Wikipedia)<br></br><em>In computing, a 10-foot user interface, or 3-meter UI, is a graphical user interface designed for televisions (TV). Compared to desktop computer and smartphone user interfaces, it uses text and other interface elements that are much larger in order to accommodate a typical television viewing distance of 10 feet (3.0 meters); in reality, this distance varies greatly between households, and additionally, the limitations of a television’s remote control necessitate extra user experience considerations to minimize user effort.</em></li><li>“<a href="https://www.thoughtco.com/history-of-the-television-remote-control-1992384">The Television Remote Control: A Brief History</a>,” by Mary Bellis (ThoughtCo)<br></br><em>The first TV remote, the Lazy Bone, was made in 1950 and used a cable. In 1955, the Flash-matic was the first wireless remote, but it had issues with sunlight. Zenith’s Space Command in 1956 used ultrasound and became the popular choice for over 25 years.</em></li><li>“<a href="https://www.grunge.com/826329/the-history-of-the-tv-remote/">The History of The TV Remote</a>,” by Remy Millisky (Grunge)<br></br><em>The first person to create and patent the remote control was none other than Nikola Tesla, inventor of the Tesla coil and numerous electronic systems. He patented the idea in 1893 to drive boats remotely, far before televisions were invented. Since then, remotes have come a long way, especially for the television, changing from small boxes with long wires to the wireless universal remotes that many people have today. How has the remote evolved over time?</em></li><li>“<a href="https://nintendo.fandom.com/wiki/Nintendo_Entertainment_System_controller">Nintendo Entertainment System controller</a>” (Nintendo Wiki)<br></br><em>The Nintendo Entertainment System controller is the main controller for the NES. While previous systems had used joysticks, the NES controller provided a directional pad (the D-pad was introduced in the Game &amp; Watch version of Donkey Kong).</em></li><li>“<a href="https://uxdesign.cc/why-touchscreens-dont-work-in-cars-69b6ff3d4355">Why Touchscreens In Cars Don’t Work</a>,” by Jacky Li (published in June 2018)<br></br><em>Observing the behaviour of 21 drivers has made me realize what’s wrong with automotive UX. [&amp;mldr;] While I was excited to learn more about the Tesla Model X, it slowly became apparent to me that the driver’s eyes were more glued to the screen than the road. Something about interacting with a touchscreen when driving made me curious to know: just how distracting are they?</em></li><li>“<a href="https://www.theautopian.com/europe-is-requiring-physical-buttons-for-cars-to-get-top-safety-marks-and-we-should-too/">Europe Is Requiring Physical Buttons For Cars To Get Top Safety Marks</a>,” by Jason Torchinsky (published in March 2024)<br></br><em>The overuse of touchscreens is an industry-wide problem, with almost every vehicle-maker moving key controls onto central touchscreens, obliging drivers to take their eyes off the road and raising the risk of distraction crashes. New Euro NCAP tests due in 2026 will encourage manufacturers to use separate, physical controls for basic functions in an intuitive manner, limiting eyes-off-road time and therefore promoting safer driving.</em></li></ul><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(mb, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/designing-tv-evergreen-pattern-shapes-tv-experiences.jpg" /><h1>The Evergreen Pattern That Shapes TV Experiences — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>20 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/design">Design</a>, <a href="http://www.smashingmagazine.com/category/tv">TV</a>, <a href="http://www.smashingmagazine.com/category/inspiration">Inspiration</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>TV interface design is a unique, fascinating, and often overlooked field. It’s been guided by decades of evolution and innovation, yet still firmly constrained by its legacy. Follow Milan into the history, quirks, and unshakable rules that dictate how we control these devices.</section></p><p>Television sets have been the staple of our living rooms for decades. We watch, we interact, and we control, but how often do we <em>design</em> for them? TV design flew under my “radar” for years, until one day I found myself in the deep, designing TV-specific user interfaces. Now, after gathering quite a bit of experience in the area, I would like to share my knowledge on this rather rare topic. If you’re interested in learning more about the <strong>user experience</strong> and <strong>user interfaces of television</strong>, this article should be a good starting point.</p><p>Just like any other device or use case, TV has its quirks, specifics, and guiding principles. Before getting started, it will be beneficial to understand the core <em>ins</em> and <em>outs</em>. In Part 1, we’ll start with a bit of history, take a close look at the fundamentals, and review the evolution of television. In Part 2, we’ll dive into the depths of practical aspects of designing for TV, including its key principles and patterns.</p><p>Let’s start with the two key paradigms that dictate the process of designing TV interfaces.</p><p>Firstly, we have the so-called “<a href="https://www.edenspiekermann.com/insights/the-10-foot-experience/">10-foot experience</a>,” referring to the fact that interaction and consumption on TV happens from a distance of roughly three or more meters. This is significantly different than interacting with a phone or a computer and implies having some specific approaches in the TV user interface design. For example, we’ll need to make text and user interface (UI) elements larger on TV to account for the bigger distance to the screen.</p><p>Furthermore, we’ll take extra care to adhere to <strong>contrast standards</strong>, primarily relying on dark interfaces, as light ones may be too blinding in darker surroundings. And finally, considering the laid-back nature of the device, we’ll <strong>simplify the interactions</strong>.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/1-10-ft-experience.jpg"><img alt="A hand holds a modern TV remote, aimed at a television screen. The blurred background emphasizes the viewing distance, illustrating the '10-foot experience,' a key aspect of TV interaction distinct from phones and computers." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/1-10-ft-experience.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/1-10-ft-experience.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/1-10-ft-experience.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/1-10-ft-experience.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/1-10-ft-experience.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/1-10-ft-experience.jpg 2000w" width="800"></img></a><figcaption>Unlike phones or computers, the TV set is used from a greater distance. This interaction paradigm is known as the “10-foot experience.” (Photo by <a href="https://unsplash.com/photos/person-holding-gray-remote-control-dZmNJKFDuVI">Jonas Leupe</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/1-10-ft-experience.jpg">Large preview</a>)</figcaption></figure><p>But the 10-foot experience is only one part of the equation. There wouldn’t be a “10-foot experience” in the first place if there were no <em>mediator</em> between the user and the device, and if we didn’t have something to interact <em>through</em> from a distance.</p><p>There would be no 10-foot experience if there were no <strong>remote controllers</strong>.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><p>The <strong>remote</strong>, the second half of the equation, is what allows us to interact with the TV from the comfort of the couch. Slower and more deliberate, this conglomerate of buttons lacks the fluid motion of a mouse, or the dexterity of fingers against a touchscreen — yet the capabilities of the remote should not be underestimated.</p><p>Rudimentary as it is and with a limited set of functions, the remote allows for some interesting design approaches and can carry the weight of the modern TV along with its ever-growing requirements for interactivity. It underwent a handful of overhauls during the seventy years since its inception and was refined and made more ergonomic; however, there is a <strong>40-year-old pattern</strong> so deeply ingrained in its foundation that nothing can change it.</p><p>What if I told you that you could navigate TV interfaces and apps with a basic controller from the 1980s <em>just as well</em> as with the latest remote from Apple? Not only that, but any experience built around the <strong>six core buttons</strong> of a remote will be system-agnostic and will easily translate across platforms.</p><p>This is the main point I will focus on for the rest of this article.</p><h2 id="birth-of-a-pattern">Birth Of A Pattern</h2><p>As television sets were taking over people’s living rooms in the 1950s, manufacturers sought to upgrade and improve the user experience. The effort of walking up to the device to manually adjust some settings was eventually identified as an area for improvement, and as a result, the first television remote controllers were introduced to the market.</p><h3 id="early-developments">Early Developments</h3><p>Preliminary iterations of the remotes were rather unique, and it took some divergence before we finally settled on a rectangular shape and sprinkled buttons on top.</p><p>Take a look at the <a href="https://en.wikipedia.org/wiki/Zenith_Flash-matic">Zenith Flash-Matic</a>, for example. Designed in the mid-1950s, this standout device featured a single button that triggered a directional lamp; by pointing it at specific corners of the TV set, viewers could control various functions, such as changing channels or adjusting the volume.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/2-flash-matic.jpg"><img alt="The Zenith Flash-Matic remote, a vintage green and gold device resembling a ray gun, with a trigger-style red button." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/2-flash-matic.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/2-flash-matic.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/2-flash-matic.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/2-flash-matic.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/2-flash-matic.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/2-flash-matic.jpg 2000w" width="800"></img></a><figcaption>Zenith Flash-Matic remote, one of the earliest predecessors of modern TV remotes. (Photo by the <a href="https://collection.sciencemuseumgroup.org.uk/objects/co8676884/zenith-flash-matic-remote-control">Science Museum Group</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/2-flash-matic.jpg">Large preview</a>)</figcaption></figure><p>While they were a far cry compared to their modern counterparts, devices like the Flash-Matic set the scene for further developments, and we were off to the races!</p><p>As the designs evolved, the core functionality of the remote solidified. Gradually, remote controls became more than just simple channel changers, evolving into command centers for the expanding territory of home entertainment.</p><p><strong>Note</strong>: I will not go too much into history here — aside from some specific points that are of importance to the matter at hand — but if you have some time to spare, do look into the developmental history of television sets and remotes, it’s quite a fascinating topic.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/3-space-command.jpg"><img alt="The Zenith Space Command remote, a sleek, metallic device with a number pad, volume, and channel controls. Its refined design closely resembles modern TV remotes." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/3-space-command.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/3-space-command.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/3-space-command.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/3-space-command.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/3-space-command.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/3-space-command.jpg 2000w" width="800"></img></a><figcaption>After two decades of iteration, Zenith Space Command’s form-factor is a lot more in line with contemporary remotes. (Photo by <a href="https://www.flickr.com/photos/oskay/297852961/in/photostream/">Windell Oskay</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/3-space-command.jpg">Large preview</a>)</figcaption></figure><p>However, practical as they may have been, they were still considered a luxury, significantly increasing the prices of TV sets. As the 1970s were coming to a close, only around <a href="https://www.grunge.com/826329/the-history-of-the-tv-remote/">17% of United States households</a> had a remote controller for their TVs. Yet, things would change as the new decade rolled in.</p><h3 id="button-mania-of-the-1980s">Button Mania Of The 1980s</h3><p>The eighties brought with them the Apple Macintosh, MTV, and Star Wars. It was a time of cultural shifts and technological innovation. <a href="https://en.wikipedia.org/wiki/Videocassette_recorder">Videocassette recorders</a> (VCRs) and a multitude of other consumer electronics found their place in the living rooms of the world, along with TVs.</p><p>These new devices, while enriching our media experiences, also introduced a few new design problems. Where there was once a single remote, now there were <em>multiple</em> remotes, and things were getting slowly out of hand.</p><p>This marked the advent of <strong>universal remotes</strong>.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/4-universal-remote.jpg"><img alt="A Sony universal remote control with a metallic faceplate and a black body. It features a large number of small, uniform buttons, all the same shape and size, arranged in a dense grid. The buttons are labeled for various functions, including playback controls, numeric input, and device selection. This design allows the remote to control multiple devices, consolidating numerous functions into a single unit but means that the remote will have a significantly larger number of buttons than a standard TV remote." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/4-universal-remote.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/4-universal-remote.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/4-universal-remote.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/4-universal-remote.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/4-universal-remote.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/4-universal-remote.jpg 2000w" width="800"></img></a><figcaption>A universal remote by Sony, programmable for up to three different devices. (Image source: <a href="https://www.ebay.com/itm/116233118261">ebay.com</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/4-universal-remote.jpg">Large preview</a>)</figcaption></figure><p>Trying to hit many targets with one stone, the unwieldy universal remotes were humanity’s best solution for controlling a wider array of devices. And they did solve some of these problems, albeit in an awkward way. The complexity of universal remotes was a trade-off for versatility, allowing them to be programmed and used as a command center for controlling multiple devices. This meant transforming the relatively simple design of their predecessors into a beehive of buttons, prioritizing broader compatibility over elegance.</p><p>On the other hand, almost as a response to the inconvenience of the universal remote, a different type of controller was conceived in the 1980s — one with a very basic layout and set of buttons, and which would leave its mark in both <em>how</em> we interact with the TV, and how our remotes are laid out. A device that would, knowingly or not, give birth to a navigational pattern that is yet to be broken — the <a href="https://nintendo.fandom.com/wiki/Nintendo_Entertainment_System_controller">NES controller</a>.</p><h3 id="d-pad-dominance">D-pad Dominance</h3><p>Released in 1985, the <strong>Nintendo Entertainment System (NES)</strong> was an instant hit. Having sold sixty million units around the world, it left an undeniable mark on the gaming console industry.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/5-nes-control.jpg"><img alt="A classic Nintendo Entertainment System (NES) controller with a rectangular design, featuring a black directional pad (D-pad) on the left, two red circular action buttons labeled 'A' and 'B' on the right, and two small rectangular 'Select' and 'Start' buttons in the center." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/5-nes-control.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/5-nes-control.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/5-nes-control.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/5-nes-control.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/5-nes-control.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/5-nes-control.jpg 2000w" width="800"></img></a><figcaption>The Nintendo NES controller with its iconic D-pad and two action buttons. (Photo by <a href="https://commons.wikimedia.org/wiki/File:NES-Controller-Flat.jpg">Evan Amos</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/5-nes-control.jpg">Large preview</a>)</figcaption></figure><p>The NES controller (which was not truly remote, as it ran a cable to the central unit) introduced the world to a deceptively simple control scheme. Consisting of six primary actions, it gave us the directional pad (the D-pad), along with two action buttons (<code>A</code> and <code>B</code>). Made in response to the bulky joystick, the cross-shaped cluster allowed for easy movement along two axes (<code>up</code>, <code>down</code>, <code>left</code>, and <code>right</code>).</p><p>Charmingly intuitive, this navigational pattern would produce countless hours of gaming fun, but more importantly, its elementary design would “seep over” into the <em>wider industry</em> — the D-pad, along with the two action buttons, would become the very basis on which future remotes would be constructed.</p><p>The world continued spinning madly on, and what was once a luxury became commonplace. By the end of the decade, TV remotes were more integral to the standard television experience, and more than <a href="https://www.grunge.com/826329/the-history-of-the-tv-remote/">two-thirds of American TV owners</a> had some sort of a remote.</p><p>The nineties rolled in with further technological advancements. TV sets became more robust, allowing for finer tuning of their settings. This meant creating interfaces through which such tasks could be accomplished, and along with their master sets, remotes got updated as well.</p><p>Gone were the bulky rectangular behemoths of the eighties. As ergonomics took precedence, they got replaced by comfortably contoured devices that better fit their users’ hands. Once conglomerations of dozens of uniform buttons, these contemporary remotes introduced different shapes and sizes, allowing for recognition simply through touch. Commands were being clustered into sensible groups along the body of the remote, and within those button groups, a familiar shape started to emerge.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/6-magnavox-remote.jpg"><img alt="A Magnavox remote control from the 1990s, featuring a black plastic body with a slightly curved shape. At the top, a cluster of playback buttons is arranged in a circular layout, resembling a D-pad, and includes 'Play,' 'Rewind,' 'Fast Forward,' and 'Stop.' Below, there are additional buttons for number input, recording, and other TV functions." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/6-magnavox-remote.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/6-magnavox-remote.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/6-magnavox-remote.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/6-magnavox-remote.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/6-magnavox-remote.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/6-magnavox-remote.jpg 2000w" width="800"></img></a><figcaption>A remote controller from the 1990s, with a prominent button cluster resembling a D-pad. (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/6-magnavox-remote.jpg">Large preview</a>)</figcaption></figure><p>Gradually, the D-pad found its spot on our TV remotes. As the evolution of these devices progressed, it became even more deeply embedded at the core of their interactivity.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/7-samsung-remote.jpg"><img alt="A Samsung remote from the 2000s, featuring a grey plastic body with a structured button layout. The central section features a prominent D-pad-like cluster with an 'Enter' button at its center, surrounded by directional buttons for navigation. Above, there are numeric keys and function buttons, while the lower section includes additional controls and color-coded buttons for multimedia or menu navigation." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/7-samsung-remote.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/7-samsung-remote.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/7-samsung-remote.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/7-samsung-remote.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/7-samsung-remote.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/7-samsung-remote.jpg 2000w" width="800"></img></a><figcaption>Remote controller from the 2000s with a clearly defined D-pad cluster. (Image source: <a href="https://www.emag.bg/distancionno-za-televizor-syvmestimo-s-samsung-a-sivo-aa59-00332/pd/DD9ZRHMBM/">emag.bg</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/7-samsung-remote.jpg">Large preview</a>)</figcaption></figure><p>Set-top boxes and smart features emerged in the 2000s and 2010s, and TV technology continued to advance. Along the way, many bells and whistles were introduced. TVs got bigger, brighter, thinner, yet their essence remained unchanged.</p><p>In the years since their inception, remotes were innovated upon, but all the undertakings circle back to the <strong>core principles of the NES controller</strong>. Future endeavours never managed to replace, but only to augment and reinforce the pattern.</p><h2 id="the-evergreen-pattern">The Evergreen Pattern</h2><p>In 2013, <a href="https://www.lg.com/nz/about-lg/press-and-media/lg-announces-2013-lg-smart-tv-with-magic-remote/">LG introduced</a> their Magic remote <em>(“So magically simple, the kids will be showing you how to use it!”)</em>. This uniquely shaped device enabled motion controls on LG TV sets, allowing users to point and click similar to a computer mouse. Having a pointer on the screen allowed for much <strong>more flexibility and speed</strong> within the system, and the remote was well-received and praised as one of the best smart TV remotes.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/8-lg-magic-remote.jpg"><img alt="A black LG Magic Remote with a circular D-pad at the top, surrounded by navigation and function buttons. Unlike traditional rectangular remotes, this one has a sleek, tapered oval design that widens at the top and narrows towards the bottom, making it comfortable to hold. This remote supports motion controls, allowing users to point, gesture, and interact with the TV using an on-screen cursor." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/8-lg-magic-remote.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/8-lg-magic-remote.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/8-lg-magic-remote.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/8-lg-magic-remote.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/8-lg-magic-remote.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/8-lg-magic-remote.jpg 2000w" width="800"></img></a><figcaption>The LG Magic remote. This device allowed for innovative ways of interacting with the TV, but kept the D-pad as one of its central elements. (Image source: <a href="https://www.bhphotovideo.com/c/product/965478-REG/lg_electronics_an_mr400_magic_remote_with_receiver.html">bhphotovideo.com</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/8-lg-magic-remote.jpg">Large preview</a>)</figcaption></figure><p>Innovating on tradition, this device introduced new features and fresh perspectives to the world of TV. But if we look at the device itself, we’ll see that, despite its differences, it still retains the D-pad as a means of interaction. It may be argued that LG never set out to replace the directional pad, and as it stands, regardless of their intent, they only managed to <em>augment</em> it.</p><p>For an even better example, let’s examine Apple TV’s second-generation remotes (the first-generation Siri remote). Being the industry disruptors, Apple introduced a touchpad to the top half of the remote. The glass surface provided briskness and precision to the experience, enabling <strong>multi-touch gestures</strong>, <strong>swipe navigation</strong>, and <strong>quick scrolling</strong>. This quality of life upgrade was most noticeable when typing with the horizontal on-screen keyboards, as it allowed for smoother and quicker scrolling from A to Z, making for a more refined experience.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/9-apple-tv-gen-2.jpg"><img alt="Apple TV second-generation remote (first-generation Siri remote) with a slim, rectangular aluminum body. The top half features a touchpad that replaces a traditional D-pad while maintaining the same four-directional movement, allowing for swipe gestures and precise navigation. Below the touchpad are a few essential buttons, including 'Menu,' 'TV/Home,' a microphone button for Siri voice commands, and volume controls." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/9-apple-tv-gen-2.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/9-apple-tv-gen-2.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/9-apple-tv-gen-2.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/9-apple-tv-gen-2.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/9-apple-tv-gen-2.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/9-apple-tv-gen-2.jpg 2000w" width="800"></img></a><figcaption>The Apple TV second-generation remote control (first-generation Siri remote), known for removing the familiar shape of the D-pad and augmenting it with a touchpad. (Image source: <a href="https://support.apple.com/en-is/103233">Apple</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/9-apple-tv-gen-2.jpg">Large preview</a>)</figcaption></figure><p>While at first glance it may seem Apple removed the directional buttons, the fact is that the touchpad is simply a modernised take on the pattern, still abiding by the same four directions a classic D-pad does. You could say it’s a D-pad with an extra layer of gimmick.</p><p>Furthermore, the touchpad didn’t really sit well with the user base, along with the fact that the remote’s ergonomics were a bit iffy. So instead of pushing the boundaries even further with their third generation of remotes, Apple did a complete 180, <a href="https://support.apple.com/en-us/111844">re-introducing the classic D-pad</a> cluster while keeping the touch capabilities from the previous generation (the touch-enabled clickpad lets you select titles, swipe through playlists, and use a circular gesture on the outer ring to find just the scene you’re looking for).</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/10-apple-tv-gen-3.jpg"><img alt="The Apple TV third-generation remote (second-generation Siri remote) featuring a slim, rectangular aluminum body with a silver finish. At the top, a circular black D-pad with a touch-sensitive surface allows both directional button presses and swipe gestures. Below it, a set of black buttons includes back, TV/home, play/pause, mute, volume controls, and a power button." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/10-apple-tv-gen-3.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/10-apple-tv-gen-3.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/10-apple-tv-gen-3.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/10-apple-tv-gen-3.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/10-apple-tv-gen-3.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/10-apple-tv-gen-3.jpg 2000w" width="800"></img></a><figcaption>The Apple TV third-generation remote (second-generation Siri remote). Keeping the past generation’s touch capabilities, it reintroduced the D-pad. (Image source: <a href="https://www.apple.com/shop/product/MW5G3AM/A/siri-remote">Apple</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/10-apple-tv-gen-3.jpg">Large preview</a>)</figcaption></figure><p>Now, why can’t we figure out a better way to navigate TVs? Does that mean we shouldn’t try to innovate?</p><p>We can argue that using motion controls and gestures is an obvious upgrade to interacting with a TV. And we’d be right… in principle. These added features are more complex and costly to produce, but more importantly, while it has been upgraded with bits and bobs, the TV is essentially a legacy system. And it’s not only that.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aWhile%20touch%20controls%20are%20a%20staple%20of%20interaction%20these%20days,%20adding%20them%20without%20thorough%20consideration%20can%20reduce%20the%20usability%20of%20a%20remote.%0a&amp;url=https://smashingmagazine.com%2f2025%2f08%2fdesigning-tv-evergreen-pattern-shapes-tv-experiences%2f">While touch controls are a staple of interaction these days, adding them without thorough consideration can reduce the usability of a remote.</a></p></blockquote><h3 id="pitfalls-of-touch-controls">Pitfalls Of Touch Controls</h3><p>Modern car dashboards are increasingly being dominated by touchscreens. While they may impress at auto shows, their <a href="https://uxdesign.cc/why-touchscreens-dont-work-in-cars-69b6ff3d4355">real-world usability is often compromised</a>.</p><p>Driving demands constant focus and the ability to adapt and respond to ever-changing conditions. Any interface that requires taking your eyes off the road for more than a moment increases the risk of accidents. That’s exactly where touch controls fall short. While they may be more practical (and likely cheaper) for manufacturers to implement, they’re often the opposite for the end user.</p><p>Unlike physical buttons, knobs, and levers, which offer tactile landmarks and feedback, touch interfaces lack the ability to be used by <em>feeling</em> alone. Even simple tasks like adjusting the volume of the radio or the climate controls often involve gestures and nested menus, all performed on a smooth glass surface that demands visual attention, especially when fine-tuning.</p><p>Fortunately, the upcoming <a href="https://www.theautopian.com/europe-is-requiring-physical-buttons-for-cars-to-get-top-safety-marks-and-we-should-too/">2026 Euro NCAP regulations</a> will encourage car manufacturers to <strong>reintroduce physical controls for core functions</strong>, reducing driver distraction and promoting safer interaction.</p><p>Similarly (though far less critically), sleek, buttonless TV remote controls may feel modern, but they introduce unnecessary abstraction to a familiar set of controls.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aPhysical%20buttons%20with%20distinct%20shapes%20and%20positioning%20allow%20users%20to%20navigate%20by%20memory%20and%20touch,%20even%20in%20the%20dark.%20That%e2%80%99s%20not%20outdated%20%e2%80%94%20it%e2%80%99s%20a%20deeper%20layer%20of%20usability%20that%20modern%20design%20should%20respect,%20not%20discard.%0a&amp;url=https://smashingmagazine.com%2f2025%2f08%2fdesigning-tv-evergreen-pattern-shapes-tv-experiences%2f">Physical buttons with distinct shapes and positioning allow users to navigate by memory and touch, even in the dark. That’s not outdated — it’s a deeper layer of usability that modern design should respect, not discard.</a></p></blockquote><p>And this is precisely why Apple reworked the Apple TV third-generation remote the way it is now, where the touch area at the top disappeared. Instead, the D-pad again had clearly defined buttons, and at the same time, the D-pad could also be <em>extended</em> (not replaced) to accept some touch gestures.</p><h2 id="the-legacy-of-tv">The Legacy Of TV</h2><p>Let’s take a look at an old on-screen keyboard.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/11-zelda-keyboard.jpg"><img alt="Name registration screen from the 1986 game 'The Legend of Zelda' featuring an early on-screen keyboard. The interface has a black background with white pixelated text and a blue selection box. Three small pixel-art Link characters are displayed, with one highlighted by a red cursor. Below them, an alphabetic and numeric character selection grid is presented, allowing players to input a name." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/11-zelda-keyboard.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/11-zelda-keyboard.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/11-zelda-keyboard.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/11-zelda-keyboard.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/11-zelda-keyboard.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/11-zelda-keyboard.jpg 2000w" width="800"></img></a><figcaption>Name registration screen along with an early iteration of an on-screen keyboard from the game “<a href="https://en.wikipedia.org/wiki/The_Legend_of_Zelda_(video_game)">The Legend of Zelda</a>” (1986). (Image source: <a href="https://www.gameuidatabase.com/gameData.php?id=1869&amp;autoload=76508">Game UI Database</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/11-zelda-keyboard.jpg">Large preview</a>)</figcaption></figure><p>The Legend of Zelda, released in 1986, allowed players to register their names in-game. There are even older games with the same feature, but that’s beside the point. Using the NES controller, the players would move around the keyboard, entering their moniker character by character. Now let’s take a look at a modern iteration of the on-screen keyboard.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/12-google-tv-keyboard.jpg"><img alt="A modern on-screen dark-themed keyboard interface from Google's GBoard for Android TVs. The top of the screen is reserved for user details, with focus on the password field. Below the password field, a virtual keyboard with a QWERTY layout is visible, featuring rounded keys with white lettering on a dark background." decoding="async" fetchpriority="low" height="450" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/12-google-tv-keyboard.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/12-google-tv-keyboard.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/12-google-tv-keyboard.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/12-google-tv-keyboard.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/12-google-tv-keyboard.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/12-google-tv-keyboard.jpg 2000w" width="800"></img></a><figcaption>Google’s GBoard, a modern iteration of the on-screen keyboard for Android TVs. (Image by <a href="https://websiddu.com/work/g-board-for-tv">Siddhartha Gudipati</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/12-google-tv-keyboard.jpg">Large preview</a>)</figcaption></figure><p>Notice the difference? Or, to phrase it better: do you notice the similarities? Throughout the years, we’ve introduced quality of life improvements, but the core is exactly the same as it was forty years ago. And it is not the lack of innovation or bad remotes that keep TV deeply ingrained in its beginnings. It’s simply that it’s the most optimal way to interact given the circumstances.</p><h3 id="laying-it-all-out">Laying It All Out</h3><p>Just like phones and computers, TV layouts are based on a <strong>grid system</strong>. However, this system is a lot more apparent and rudimentary on TV. Taking a look at a standard TV interface, we’ll see that it consists mainly of horizontal and vertical lists, also known as <em>shelves</em>.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/13-youtube-tv-ui.jpg"><img alt="The interface of the YouTube TV app, displaying a dark-themed home screen with recommended videos. The layout is optimized for TV navigation, with large video thumbnails in two horizontal lists, and a sidebar menu on the left for browsing options." decoding="async" fetchpriority="low" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/13-youtube-tv-ui.jpg" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/13-youtube-tv-ui.jpg 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/13-youtube-tv-ui.jpg 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/13-youtube-tv-ui.jpg 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/13-youtube-tv-ui.jpg 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/13-youtube-tv-ui.jpg 2000w" width="800"></img></a><figcaption>The interface of the YouTube TV app. (Image source: <a href="https://play.google.com/store/apps/details?id=com.google.android.youtube.tv">Google Play</a>) (<a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/13-youtube-tv-ui.jpg">Large preview</a>)</figcaption></figure><p>These grids may be populated with cards, characters of the alphabet, or anything else, essentially, and upon closer examination, we’ll notice that our movement is restricted by a few factors:</p><ol><li>There is no pointer for our eyes to follow, like there would be on a computer.</li><li>There is no way to interact directly with the display like we would with a touchscreen.</li></ol><p>For the purposes of navigating with a remote, a <strong>focus state</strong> is introduced. This means that an element will always be highlighted for our eyes to anchor, and it will be the starting point for any subsequent movement within the interface.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/14-focus-state-column-remote.gif"><img alt="Representation of TV user interface showcasing a focus state as the selection moves sequentially from item to item within a vertical column. A remote control is placed in the bottom-right corner with highlights of the button presses. The list moves sequentially in a vertical line from the first item to the fourth item, then back." height="810" src="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/14-focus-state-column-remote.gif" width="1440"></img></a><figcaption>Simplified TV UI demonstrating a focus state along with sequential movement from item to item within a column.</figcaption></figure><p>Moreover, starting from the focused element, we can notice that the movement is restricted to one item at a time, almost like skipping stones. Navigating linearly in such a manner, if we wanted to move within a list of elements from element #1 to element #5, we’d have to press a directional button four times.</p><figure><a href="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/15-focus-state-row-remote.gif"><img alt="Representation of TV user interface showcasing a focus state as the selection moves sequentially from item to item within a horizontal column. A remote control is placed in the bottom-right corner with highlights of the button presses. The list moves sequentially in a horizontal line from the first item to the fifth item, then back." height="810" src="https://files.smashing.media/articles/designing-tv-evergreen-pattern-shapes-tv-experiences/15-focus-state-row-remote.gif" width="1440"></img></a><figcaption>Simplified TV UI demonstrating a focus state along with sequential movement from item to item within a row.</figcaption></figure><p>To successfully navigate such an interface, we need the ability to move <code>left</code>, <code>right</code>, <code>up</code>, and <code>down</code> — we need a D-pad. And once we’ve landed on our desired item, there needs to be a way to select it or make a confirmation, and in the case of a mistake, we need to be able to go back. For the purposes of those two additional interactions, we’d need two more buttons, <code>OK</code> and <code>back</code>, or to make it more abstract, we’d need buttons <code>A</code> and <code>B</code>.</p><blockquote>So, to successfully navigate a TV interface, we need only a NES controller.<p>Yes, we can enhance it with touchpads and motion gestures, augment it with voice controls, but <strong>this unshakeable foundation of interaction</strong> will remain as the very basic level of inherent complexity in a TV interface. Reducing it any further would significantly <strong>impair the experience</strong>, so all we’ve managed to do throughout the years is to only build upon it.</p></blockquote><p>The D-pad and buttons <code>A</code> and <code>B</code> survived decades of innovation and technological shifts, and chances are they’ll survive many more. By understanding and respecting this principle, you can design intuitive, system-agnostic experiences and easily translate them across platforms. Knowing you can’t go simpler than these six buttons, you’ll easily build from the ground up and attach any additional framework-bound functionality to the time-tested core.</p><p>And once you get the grip of these paradigms, you’ll get into mapping and re-mapping buttons depending on context, and understand just how far you can go when designing for TV. You’ll be able to invent new experiences, conduct experiments, and challenge the patterns. But that is a topic for a different article.</p><h2 id="closing-thoughts">Closing Thoughts</h2><p>While designing for TV almost exclusively during the past few years, I was also often educating the stakeholders on the very principles outlined in this article. Trying to address their concerns about different remotes working slightly differently, I found respite in the simplicity of the NES controller and how it got the point across in an understandable way. Eventually, I expanded my knowledge by looking into the developmental history of the remote and was surprised that my analogy had backing in history. This is a fascinating niche, and there’s a lot more to share on the topic. I’m glad we started!</p><p>It’s vital to understand the fundamental “ins” and “outs” of any venture before getting practical, and TV is no different. Now that you understand the basics, go, dig in, and break some ground.</p><p>Having covered the <strong>underlying interaction patterns of TV experiences</strong> in detail, it’s time to get practical.</p><p>In <strong>Part 2</strong>, we’ll explore the building blocks of the 10-foot experience and how to best utilize them in your designs. We’ll review the TV design fundamentals (the screen, layout, typography, color, and focus/focus styles), and the common TV UI components (menus, “shelves,” spotlights, search, and more). I will also show you how to start thinking beyond the basics and to work with — and around — the constraints which we abide by when designing for TV. Stay tuned!</p><h3 id="further-reading">Further Reading</h3><ul><li>“<a href="https://www.edenspiekermann.com/insights/the-10-foot-experience/">The 10 Foot Experience</a>,” by Robert Stulle (Edenspiekermann)<br></br><em>Every user interface should offer effortless navigation and control. For the 10-foot experience, this is twice as important; with only up, down, left, right, OK and back as your input vocabulary, things had better be crystal clear. You want to sit back and enjoy without having to look at your remote — your thumb should fly over the buttons to navigate, select, and activate.</em></li><li>“<a href="https://learn.microsoft.com/en-us/windows/win32/dxtecharts/introduction-to-the-10-foot-experience-for-windows-game-developers">Introduction to the 10-Foot Experience for Windows Game Developers</a>” (Microsoft Learn)<br></br><em>A growing number of people are using their personal computers in a completely new way. When you think of typical interaction with a Windows-based computer, you probably envision sitting at a desk with a monitor, and using a mouse and keyboard (or perhaps a joystick device); this is referred to as the 2-foot experience. But there’s another trend which you’ll probably start hearing more about: the 10-foot experience, which describes using your computer as an entertainment device with output to a TV. This article introduces the 10-foot experience and explores the list of things that you should consider first about this new interaction pattern, even if you aren’t expecting your game to be played this way.</em></li><li>“<a href="https://en.wikipedia.org/wiki/10-foot_user_interface">10-foot user interface</a>” (Wikipedia)<br></br><em>In computing, a 10-foot user interface, or 3-meter UI, is a graphical user interface designed for televisions (TV). Compared to desktop computer and smartphone user interfaces, it uses text and other interface elements that are much larger in order to accommodate a typical television viewing distance of 10 feet (3.0 meters); in reality, this distance varies greatly between households, and additionally, the limitations of a television’s remote control necessitate extra user experience considerations to minimize user effort.</em></li><li>“<a href="https://www.thoughtco.com/history-of-the-television-remote-control-1992384">The Television Remote Control: A Brief History</a>,” by Mary Bellis (ThoughtCo)<br></br><em>The first TV remote, the Lazy Bone, was made in 1950 and used a cable. In 1955, the Flash-matic was the first wireless remote, but it had issues with sunlight. Zenith’s Space Command in 1956 used ultrasound and became the popular choice for over 25 years.</em></li><li>“<a href="https://www.grunge.com/826329/the-history-of-the-tv-remote/">The History of The TV Remote</a>,” by Remy Millisky (Grunge)<br></br><em>The first person to create and patent the remote control was none other than Nikola Tesla, inventor of the Tesla coil and numerous electronic systems. He patented the idea in 1893 to drive boats remotely, far before televisions were invented. Since then, remotes have come a long way, especially for the television, changing from small boxes with long wires to the wireless universal remotes that many people have today. How has the remote evolved over time?</em></li><li>“<a href="https://nintendo.fandom.com/wiki/Nintendo_Entertainment_System_controller">Nintendo Entertainment System controller</a>” (Nintendo Wiki)<br></br><em>The Nintendo Entertainment System controller is the main controller for the NES. While previous systems had used joysticks, the NES controller provided a directional pad (the D-pad was introduced in the Game &amp; Watch version of Donkey Kong).</em></li><li>“<a href="https://uxdesign.cc/why-touchscreens-dont-work-in-cars-69b6ff3d4355">Why Touchscreens In Cars Don’t Work</a>,” by Jacky Li (published in June 2018)<br></br><em>Observing the behaviour of 21 drivers has made me realize what’s wrong with automotive UX. [&amp;mldr;] While I was excited to learn more about the Tesla Model X, it slowly became apparent to me that the driver’s eyes were more glued to the screen than the road. Something about interacting with a touchscreen when driving made me curious to know: just how distracting are they?</em></li><li>“<a href="https://www.theautopian.com/europe-is-requiring-physical-buttons-for-cars-to-get-top-safety-marks-and-we-should-too/">Europe Is Requiring Physical Buttons For Cars To Get Top Safety Marks</a>,” by Jason Torchinsky (published in March 2024)<br></br><em>The overuse of touchscreens is an industry-wide problem, with almost every vehicle-maker moving key controls onto central touchscreens, obliging drivers to take their eyes off the road and raising the risk of distraction crashes. New Euro NCAP tests due in 2026 will encourage manufacturers to use separate, physical controls for basic functions in an intuitive manner, limiting eyes-off-road time and therefore promoting safer driving.</em></li></ul><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(mb, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (Milan Balać) <![CDATA[Optimizing PWAs For Different Display Modes]]> https://smashingmagazine.com/2025/08/optimizing-pwas-different-display-modes/ https://smashingmagazine.com/2025/08/optimizing-pwas-different-display-modes/ Tue, 26 Aug 2025 08:00:00 GMT <img src="https://files.smashing.media/articles/optimizing-pwas-different-display-modes/optimizing-pwas-different-display-modes.jpg" /><h1>Optimizing PWAs For Different Display Modes — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>10 min read</li><li><a href="http://www.smashingmagazine.com/category/apps">Apps</a>, <a href="http://www.smashingmagazine.com/category/pwa">PWA</a>, <a href="http://www.smashingmagazine.com/category/optimization">Optimization</a>, <a href="http://www.smashingmagazine.com/category/techniques">Techniques</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Progressive Web Apps (PWAs) are a great way to make apps built for the web feel native, but in moving away from a browser environment, we can introduce usability issues. Declan covers how we can modify our app depending on what display mode is applied to mitigate these issues.</section></p><p><a href="https://www.smashingmagazine.com/2020/12/progressive-web-apps/">Progressive web apps</a> (PWA) are a fantastic way to turn web applications into native-like, standalone experiences. They bridge the gap between websites and native apps, but this transformation can be prone to introducing design challenges that require thoughtful consideration.</p><p>We define our PWAs <a href="https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Manifest">with a manifest file</a>. In our PWA’s manifest, we can select from a collection of display modes, each offering different levels of browser interface visibility:</p><ul><li><code>fullscreen</code>: Hides all browser UI, using the entire display.</li><li><code>standalone</code>: Looks like a native app, hiding browser controls but keeping system UI.</li><li><code>minimal-ui</code>: Shows minimal browser UI elements.</li><li><code>browser</code>: Standard web browser experience with full browser interface.</li></ul><p>Oftentimes, we want our PWAs to feel like apps rather than a website in a browser, so we set the display manifest member to one of the options that hides the browser’s interface, such as <code>fullscreen</code> or <code>standalone</code>. This is fantastic for helping make our applications feel more at home, but it can introduce some issues we wouldn’t usually consider when building for the web.</p><p>It’s easy to forget just how much functionality the browser provides to us. Things like forward/back buttons, the ability to refresh a page, search within pages, or even manipulate, share, or copy a page’s URL are all browser-provided features that users can lose access to when the browser’s UI is hidden. There is also the case of things that we display on websites that don’t necessarily translate to app experiences.</p><figure><a href="https://files.smashing.media/articles/optimizing-pwas-different-display-modes/progressive-web-app-examples.png"><img alt="The different PWA display modes as seen on an Android phone running Chrome 138." decoding="async" fetchpriority="low" height="407" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/optimizing-pwas-different-display-modes/progressive-web-app-examples.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/optimizing-pwas-different-display-modes/progressive-web-app-examples.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/optimizing-pwas-different-display-modes/progressive-web-app-examples.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/optimizing-pwas-different-display-modes/progressive-web-app-examples.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/optimizing-pwas-different-display-modes/progressive-web-app-examples.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/optimizing-pwas-different-display-modes/progressive-web-app-examples.png 2000w" width="800"></img></a><figcaption>The different PWA display modes as seen on an Android phone running Chrome 138. (<a href="https://files.smashing.media/articles/optimizing-pwas-different-display-modes/progressive-web-app-examples.png">Large preview</a>)</figcaption></figure><p>Imagine a user deep into a form with no back button, trying to share a product page without the ability to copy a URL, or hitting a bug with no refresh button to bail them out!</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aMuch%20like%20how%20we%20make%20different%20considerations%20when%20designing%20for%20the%20web%20versus%20designing%20for%20print,%20we%20need%20to%20make%20considerations%20when%20designing%20for%20independent%20experiences%20rather%20than%20browser-based%20experiences%20by%20tailoring%20the%20content%20and%20user%20experience%20to%20the%20medium.%0a&amp;url=https://smashingmagazine.com%2f2025%2f08%2foptimizing-pwas-different-display-modes%2f">Much like how we make different considerations when designing for the web versus designing for print, we need to make considerations when designing for independent experiences rather than browser-based experiences by tailoring the content and user experience to the medium.</a></p></blockquote><p>Thankfully, we’re provided with plenty of ways to customise the web.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="http://www.smashingmagazine.com/printed-books/typescript-in-50-lessons/"><div><picture><source srcset="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2732dfe9-e1ee-41c3-871a-6252aeda741c/typescript-panel.avif" type="image/avif"><img alt="Feature Panel" decoding="async" height="698" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c2f2c6d6-4e85-449a-99f5-58bd053bc846/typescript-shop-cover-opt.png" width="481"></img></source></picture></div></a></div></aside></div><p>We use media queries all the time when writing CSS. Whether it’s switching up styles for print or setting breakpoints for responsive design, they’re commonplace in the web developer’s toolkit. Each of the display modes discussed previously can be used as a media query to alter the appearance of documents depending.</p><p>Media queries such as <code>@media (min-width: 1000px)</code> tend to get the most use for setting breakpoints based on the viewport size, but they’re capable of so much more. They can handle <a href="https://www.smashingmagazine.com/2018/05/print-stylesheets-in-2018/">print styles</a>, device orientation, contrast preferences, and a whole ton more. In our case, we’re interested in the <code>display-mode</code> media feature.</p><p>Display mode media queries correspond to the current display mode.</p><p><strong>Note</strong>: <em>While we may set display modes in our manifest, the actual display mode may differ depending on browser support.</em></p><p>These media queries directly reference the current mode:</p><ul><li><code>@media (display-mode: standalone)</code> will only apply to pages set to standalone mode.</li><li><code>@media (display-mode: fullscreen)</code> applies to fullscreen mode. It is worth noting that this also applies when using the Fullscreen API.</li><li><code>@media (display-mode: minimal-ui)</code> applies to minimal UI mode.</li><li><code>@media (display-mode: browser)</code> applies to standard browser mode.</li></ul><p>It is also worth keeping an eye out for the <code>window-controls-overlay</code> and <code>tabbed</code> display modes. At the time of writing, these two display modes are experimental and can be used with <code>display_override</code>. <code>display-override</code> is a member of our PWA’s manifest, like <code>display</code>, but provides some extra options and power.</p><p><code>display</code> has a predetermined fallback chain (<code>fullscreen</code> -> <code>standalone</code> -> <code>minimal-ui</code> -> <code>browser</code>) that we can’t change, but <code>display-override</code> allows setting a fallback order of our choosing, like the following:</p><pre><code>"display_override": ["fullscreen", "minimal-ui"] </code></pre><p><a href="https://developer.mozilla.org/en-US/docs/Web/API/Window_Controls_Overlay_API"><code>window-controls-overlay</code></a> can only apply to PWAs running on a desktop operating system. It makes the PWA take up the entire window, with window control buttons appearing as an overlay. Meanwhile, <code>tabbed</code> is relevant when there are multiple applications within a single window.</p><p>In addition to these, there is also the <code>picture-in-picture</code> display mode that applies to (you guessed it) picture-in-picture modes.</p><p>We use these media queries exactly as we would any other media query. To show an element with the class <code>.pwa-only</code> when the display mode is standalone, we could do this:</p><pre><code>.pwa-only { display: none; } @media (display-mode: standalone) { .pwa-only { display: block; } } </code></pre><p>If we wanted to show the element when the display mode is standalone <em>or</em> <code>minimal-ui</code>, we could do this:</p><div><pre><code>@media (display-mode: standalone), (display-mode: minimal-ui) { .pwa-only { display: block; } } </code></pre></div><p>As great as it is, sometimes CSS isn’t enough. In those cases, we can also reference the display mode and make necessary adjustments with JavaScript:</p><div><pre><code>const isStandalone = window.matchMedia("(display-mode: standalone)").matches; // Listen for display mode changes window.matchMedia("(display-mode: standalone)").addEventListener("change", (e) => { if (e.matches) { // App is now in standalone mode console.log("Running as PWA"); } }); </code></pre></div><h2 id="practical-applications">Practical Applications</h2><p>Now that we know how to make display modifications depending on whether users are using our web app as a PWA or in a browser, we can have a look at how we might put these newly learnt skills to use.</p><h3 id="tailoring-content-for-pwa-users">Tailoring Content For PWA Users</h3><p>Users who have an app installed as a PWA are already converted, so you can tweak your app to tone down the marketing speak and focus on the user experience. Since these users have demonstrated commitment by installing your app, they likely don’t need promotional content or installation prompts.</p><h3 id="display-more-options-and-features">Display More Options And Features</h3><p>You might need to directly expose more things in PWA mode, as people won’t be able to access the browser’s settings as easily when the browser UI is hidden. Features like changing font sizing, switching between light and dark mode, bookmarks, sharing, tabs, etc., might need an in-app alternative.</p><h3 id="platform-appropriate-features">Platform-Appropriate Features</h3><p>There are features you might not want on your web app because they feel out of place, but that you might want on your PWA. A good example is the bottom navigation bar, which is common in native mobile apps thanks to the easier reachability it provides, but uncommon on websites.</p><p>People sometimes print websites, but they very rarely print apps. Consider whether features like print buttons should be hidden in PWA mode.</p><h3 id="install-prompts">Install Prompts</h3><p>A common annoyance is a prompt to install a site as a PWA appearing when the user has already installed the site. Ideally, the browser will provide an install prompt of its own if our PWA is configured correctly, but not all browsers do, and it can be finicky. MDN has a fantastic guide on <a href="https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/How_to/Trigger_install_prompt">creating a custom button to trigger the installation of a PWA</a>, but it might not fit our needs.</p><p>We can improve things by hiding install prompts with our media query or detecting the current display mode with JavaScript and forgoing triggering popups in the first place.</p><p>We could even set this up as a reusable utility class so that anything we don’t want to be displayed when the app is installed as a PWA can be hidden with ease.</p><pre><code>/* Utility class to hide elements in PWA mode */ .hide-in-pwa { display: block; } @media (display-mode: standalone), (display-mode: minimal-ui) { .hide-in-pwa { display: none !important; } } </code></pre><p>Then in your HTML:</p><pre><code><div class="install-prompt hide-in-pwa"> <button>Install Our App</button> </div> <div class="browser-notice hide-in-pwa"> <p>For the best experience, install this as an app!</p> </div> </code></pre><p>We could also do the opposite and create a utility class to make elements only show when in a PWA, as we discussed earlier.</p><h3 id="strategic-use-of-scope-and-start-url">Strategic Use Of Scope And Start URL</h3><p>Another way to hide content from your site is to set the <code>scope</code> and <code>start_url</code> properties. These aren’t using media queries as we’ve discussed, but should be considered as ways to present different content depending on whether a site is installed as a PWA.</p><p>Here is an example of a manifest using these properties:</p><pre><code>{ "name": "Example PWA",</code> <code>"scope": "/dashboard/",</code> <code>"start_url": "/dashboard/index.html",</code> <code>"display": "standalone", "icons": [ { "src": "icon.png", "sizes": "192x192", "type": "image/png" } ] } </code></pre><p><code>scope</code> here defines the top level of the PWA. When users leave the scope of your PWA, they’ll still have an app-like interface but gain access to browser UI elements. This can be useful if you’ve got certain parts of your app that you still want to be part of the PWA but which aren’t necessarily optimised or making the necessary considerations.</p><p><code>start_url</code> defines the URL a user will be presented with when they open the application. This is useful if, for example, your app has marketing content at <code>example.com</code> and a dashboard at <code>example.com/dashboard/index.html</code>. It is likely that people who have installed the app as a PWA don’t need the marketing content, so you can set the <code>start_url</code> to <code>/dashboard/index.html</code> so the app starts on that page when they open the PWA.</p><h3 id="enhanced-transitions">Enhanced Transitions</h3><p><a href="https://www.smashingmagazine.com/2023/12/view-transitions-api-ui-animations-part1/">View transitions</a> can feel unfamiliar, out of place, and a tad gaudy on the web, but are a common feature of native applications. We can set up PWA-only view transitions by wrapping the relevant CSS appropriately:</p><pre><code>@media (display-mode: standalone) { @view-transition { navigation: auto; } } </code></pre><p>If you’re <em>really</em> ambitious, you could also tweak the design of a site entirely to fit more closely with native design systems when running as a PWA by pairing a check for the display mode with a check for the device and/or browser in use as needed.</p><h2 id="browser-support-and-testing">Browser Support And Testing</h2><p>Browser support for display mode media queries is <a href="https://caniuse.com/mdn-css_at-rules_media_display-mode">good and extensive</a>. However, it’s worth noting that <strong>Firefox doesn’t have PWA support</strong>, and Firefox for Android only displays PWAs in <code>browser</code> mode, so you should make the necessary considerations. Thankfully, <a href="https://www.smashingmagazine.com/2013/09/progressive-enhancement-is-faster/">progressive enhancement</a> is on our side. If we’re dealing with a browser lacking support for PWAs or these media queries, we’ll be treated to <strong>graceful degradation</strong>.</p><p>Testing PWAs can be challenging because every device and browser handles them differently. Each display mode behaves slightly differently in every browser and OS combination.</p><p>Unfortunately, I don’t have a silver bullet to offer you with regard to this. Browsers don’t have a convenient way to simulate display modes for testing, so you’ll have to test out your PWA on different devices, browsers, and operating systems to be sure everything works everywhere it should, as it should.</p><h2 id="recap">Recap</h2><p>Using a PWA is a fundamentally different experience from using a web app in the browser, so considerations should be made. <code>display-mode</code> media queries provide a powerful way to create truly adaptive Progressive Web Apps that respond intelligently to their installation and display context. By leveraging these queries, we can do the following:</p><ul><li><strong>Hide redundant installation prompts</strong> for users who have already installed the app,</li><li><strong>Provide appropriate navigation aids</strong> when making browser controls unavailable,</li><li><strong>Tailor content and functionality</strong> to match user expectations in different contexts,</li><li><strong>Create more native-feeling experiences</strong> that respect platform conventions, and</li><li><strong>Progressively enhance the experience</strong> for committed users.</li></ul><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aThe%20key%20is%20remembering%20that%20PWA%20users%20in%20standalone%20mode%20have%20different%20needs%20and%20expectations%20than%20standard%20website%20visitors.%20By%20detecting%20and%20responding%20to%20display%20modes,%20we%20can%20create%20experiences%20that%20feel%20more%20polished,%20purposeful,%20and%20genuinely%20app-like.%0a&amp;url=https://smashingmagazine.com%2f2025%2f08%2foptimizing-pwas-different-display-modes%2f">The key is remembering that PWA users in standalone mode have different needs and expectations than standard website visitors. By detecting and responding to display modes, we can create experiences that feel more polished, purposeful, and genuinely app-like.</a></p></blockquote><p>As PWAs continue to mature, thoughtful implementations and tailoring will become increasingly important for creating truly compelling app experiences on the web. If you’re itching for even more information and PWA tips and tricks, check out Ankita Masand’s “<a href="https://www.smashingmagazine.com/2018/11/guide-pwa-progressive-web-applications/">Extensive Guide To Progressive Web Applications</a>”.</p><h3 id="further-reading-on-smashingmag">Further Reading On SmashingMag</h3><ul><li>“<a href="https://www.smashingmagazine.com/2021/11/magento-pwa-customizing-themes-coding/">Creating A Magento PWA: Customizing Themes vs. Coding From Scratch</a>”, Alex Husar</li><li>“<a href="https://www.smashingmagazine.com/2020/12/progressive-web-apps/">How To Optimize Progressive Web Apps: Going Beyond The Basics</a>”, Gert Svaiko</li><li>“<a href="https://www.smashingmagazine.com/2020/01/mobile-pwa-sticky-bars-elements/">How To Decide Which PWA Elements Should Stick</a>”, Suzanne Scacca</li><li>“<a href="https://www.smashingmagazine.com/2024/06/uniting-web-native-apps-unknown-javascript-apis/">Uniting Web And Native Apps With 4 Unknown JavaScript APIs</a>”, Juan Diego Rodríguez</li></ul><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/optimizing-pwas-different-display-modes/optimizing-pwas-different-display-modes.jpg" /><h1>Optimizing PWAs For Different Display Modes — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>10 min read</li><li><a href="http://www.smashingmagazine.com/category/apps">Apps</a>, <a href="http://www.smashingmagazine.com/category/pwa">PWA</a>, <a href="http://www.smashingmagazine.com/category/optimization">Optimization</a>, <a href="http://www.smashingmagazine.com/category/techniques">Techniques</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>Progressive Web Apps (PWAs) are a great way to make apps built for the web feel native, but in moving away from a browser environment, we can introduce usability issues. Declan covers how we can modify our app depending on what display mode is applied to mitigate these issues.</section></p><p><a href="https://www.smashingmagazine.com/2020/12/progressive-web-apps/">Progressive web apps</a> (PWA) are a fantastic way to turn web applications into native-like, standalone experiences. They bridge the gap between websites and native apps, but this transformation can be prone to introducing design challenges that require thoughtful consideration.</p><p>We define our PWAs <a href="https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Manifest">with a manifest file</a>. In our PWA’s manifest, we can select from a collection of display modes, each offering different levels of browser interface visibility:</p><ul><li><code>fullscreen</code>: Hides all browser UI, using the entire display.</li><li><code>standalone</code>: Looks like a native app, hiding browser controls but keeping system UI.</li><li><code>minimal-ui</code>: Shows minimal browser UI elements.</li><li><code>browser</code>: Standard web browser experience with full browser interface.</li></ul><p>Oftentimes, we want our PWAs to feel like apps rather than a website in a browser, so we set the display manifest member to one of the options that hides the browser’s interface, such as <code>fullscreen</code> or <code>standalone</code>. This is fantastic for helping make our applications feel more at home, but it can introduce some issues we wouldn’t usually consider when building for the web.</p><p>It’s easy to forget just how much functionality the browser provides to us. Things like forward/back buttons, the ability to refresh a page, search within pages, or even manipulate, share, or copy a page’s URL are all browser-provided features that users can lose access to when the browser’s UI is hidden. There is also the case of things that we display on websites that don’t necessarily translate to app experiences.</p><figure><a href="https://files.smashing.media/articles/optimizing-pwas-different-display-modes/progressive-web-app-examples.png"><img alt="The different PWA display modes as seen on an Android phone running Chrome 138." decoding="async" fetchpriority="low" height="407" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/optimizing-pwas-different-display-modes/progressive-web-app-examples.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/optimizing-pwas-different-display-modes/progressive-web-app-examples.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/optimizing-pwas-different-display-modes/progressive-web-app-examples.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/optimizing-pwas-different-display-modes/progressive-web-app-examples.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/optimizing-pwas-different-display-modes/progressive-web-app-examples.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/optimizing-pwas-different-display-modes/progressive-web-app-examples.png 2000w" width="800"></img></a><figcaption>The different PWA display modes as seen on an Android phone running Chrome 138. (<a href="https://files.smashing.media/articles/optimizing-pwas-different-display-modes/progressive-web-app-examples.png">Large preview</a>)</figcaption></figure><p>Imagine a user deep into a form with no back button, trying to share a product page without the ability to copy a URL, or hitting a bug with no refresh button to bail them out!</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aMuch%20like%20how%20we%20make%20different%20considerations%20when%20designing%20for%20the%20web%20versus%20designing%20for%20print,%20we%20need%20to%20make%20considerations%20when%20designing%20for%20independent%20experiences%20rather%20than%20browser-based%20experiences%20by%20tailoring%20the%20content%20and%20user%20experience%20to%20the%20medium.%0a&amp;url=https://smashingmagazine.com%2f2025%2f08%2foptimizing-pwas-different-display-modes%2f">Much like how we make different considerations when designing for the web versus designing for print, we need to make considerations when designing for independent experiences rather than browser-based experiences by tailoring the content and user experience to the medium.</a></p></blockquote><p>Thankfully, we’re provided with plenty of ways to customise the web.</p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="http://www.smashingmagazine.com/printed-books/typescript-in-50-lessons/"><div><picture><source srcset="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2732dfe9-e1ee-41c3-871a-6252aeda741c/typescript-panel.avif" type="image/avif"><img alt="Feature Panel" decoding="async" height="698" loading="lazy" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c2f2c6d6-4e85-449a-99f5-58bd053bc846/typescript-shop-cover-opt.png" width="481"></img></source></picture></div></a></div></aside></div><p>We use media queries all the time when writing CSS. Whether it’s switching up styles for print or setting breakpoints for responsive design, they’re commonplace in the web developer’s toolkit. Each of the display modes discussed previously can be used as a media query to alter the appearance of documents depending.</p><p>Media queries such as <code>@media (min-width: 1000px)</code> tend to get the most use for setting breakpoints based on the viewport size, but they’re capable of so much more. They can handle <a href="https://www.smashingmagazine.com/2018/05/print-stylesheets-in-2018/">print styles</a>, device orientation, contrast preferences, and a whole ton more. In our case, we’re interested in the <code>display-mode</code> media feature.</p><p>Display mode media queries correspond to the current display mode.</p><p><strong>Note</strong>: <em>While we may set display modes in our manifest, the actual display mode may differ depending on browser support.</em></p><p>These media queries directly reference the current mode:</p><ul><li><code>@media (display-mode: standalone)</code> will only apply to pages set to standalone mode.</li><li><code>@media (display-mode: fullscreen)</code> applies to fullscreen mode. It is worth noting that this also applies when using the Fullscreen API.</li><li><code>@media (display-mode: minimal-ui)</code> applies to minimal UI mode.</li><li><code>@media (display-mode: browser)</code> applies to standard browser mode.</li></ul><p>It is also worth keeping an eye out for the <code>window-controls-overlay</code> and <code>tabbed</code> display modes. At the time of writing, these two display modes are experimental and can be used with <code>display_override</code>. <code>display-override</code> is a member of our PWA’s manifest, like <code>display</code>, but provides some extra options and power.</p><p><code>display</code> has a predetermined fallback chain (<code>fullscreen</code> -> <code>standalone</code> -> <code>minimal-ui</code> -> <code>browser</code>) that we can’t change, but <code>display-override</code> allows setting a fallback order of our choosing, like the following:</p><pre><code>"display_override": ["fullscreen", "minimal-ui"] </code></pre><p><a href="https://developer.mozilla.org/en-US/docs/Web/API/Window_Controls_Overlay_API"><code>window-controls-overlay</code></a> can only apply to PWAs running on a desktop operating system. It makes the PWA take up the entire window, with window control buttons appearing as an overlay. Meanwhile, <code>tabbed</code> is relevant when there are multiple applications within a single window.</p><p>In addition to these, there is also the <code>picture-in-picture</code> display mode that applies to (you guessed it) picture-in-picture modes.</p><p>We use these media queries exactly as we would any other media query. To show an element with the class <code>.pwa-only</code> when the display mode is standalone, we could do this:</p><pre><code>.pwa-only { display: none; } @media (display-mode: standalone) { .pwa-only { display: block; } } </code></pre><p>If we wanted to show the element when the display mode is standalone <em>or</em> <code>minimal-ui</code>, we could do this:</p><div><pre><code>@media (display-mode: standalone), (display-mode: minimal-ui) { .pwa-only { display: block; } } </code></pre></div><p>As great as it is, sometimes CSS isn’t enough. In those cases, we can also reference the display mode and make necessary adjustments with JavaScript:</p><div><pre><code>const isStandalone = window.matchMedia("(display-mode: standalone)").matches; // Listen for display mode changes window.matchMedia("(display-mode: standalone)").addEventListener("change", (e) => { if (e.matches) { // App is now in standalone mode console.log("Running as PWA"); } }); </code></pre></div><h2 id="practical-applications">Practical Applications</h2><p>Now that we know how to make display modifications depending on whether users are using our web app as a PWA or in a browser, we can have a look at how we might put these newly learnt skills to use.</p><h3 id="tailoring-content-for-pwa-users">Tailoring Content For PWA Users</h3><p>Users who have an app installed as a PWA are already converted, so you can tweak your app to tone down the marketing speak and focus on the user experience. Since these users have demonstrated commitment by installing your app, they likely don’t need promotional content or installation prompts.</p><h3 id="display-more-options-and-features">Display More Options And Features</h3><p>You might need to directly expose more things in PWA mode, as people won’t be able to access the browser’s settings as easily when the browser UI is hidden. Features like changing font sizing, switching between light and dark mode, bookmarks, sharing, tabs, etc., might need an in-app alternative.</p><h3 id="platform-appropriate-features">Platform-Appropriate Features</h3><p>There are features you might not want on your web app because they feel out of place, but that you might want on your PWA. A good example is the bottom navigation bar, which is common in native mobile apps thanks to the easier reachability it provides, but uncommon on websites.</p><p>People sometimes print websites, but they very rarely print apps. Consider whether features like print buttons should be hidden in PWA mode.</p><h3 id="install-prompts">Install Prompts</h3><p>A common annoyance is a prompt to install a site as a PWA appearing when the user has already installed the site. Ideally, the browser will provide an install prompt of its own if our PWA is configured correctly, but not all browsers do, and it can be finicky. MDN has a fantastic guide on <a href="https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/How_to/Trigger_install_prompt">creating a custom button to trigger the installation of a PWA</a>, but it might not fit our needs.</p><p>We can improve things by hiding install prompts with our media query or detecting the current display mode with JavaScript and forgoing triggering popups in the first place.</p><p>We could even set this up as a reusable utility class so that anything we don’t want to be displayed when the app is installed as a PWA can be hidden with ease.</p><pre><code>/* Utility class to hide elements in PWA mode */ .hide-in-pwa { display: block; } @media (display-mode: standalone), (display-mode: minimal-ui) { .hide-in-pwa { display: none !important; } } </code></pre><p>Then in your HTML:</p><pre><code><div class="install-prompt hide-in-pwa"> <button>Install Our App</button> </div> <div class="browser-notice hide-in-pwa"> <p>For the best experience, install this as an app!</p> </div> </code></pre><p>We could also do the opposite and create a utility class to make elements only show when in a PWA, as we discussed earlier.</p><h3 id="strategic-use-of-scope-and-start-url">Strategic Use Of Scope And Start URL</h3><p>Another way to hide content from your site is to set the <code>scope</code> and <code>start_url</code> properties. These aren’t using media queries as we’ve discussed, but should be considered as ways to present different content depending on whether a site is installed as a PWA.</p><p>Here is an example of a manifest using these properties:</p><pre><code>{ "name": "Example PWA",</code> <code>"scope": "/dashboard/",</code> <code>"start_url": "/dashboard/index.html",</code> <code>"display": "standalone", "icons": [ { "src": "icon.png", "sizes": "192x192", "type": "image/png" } ] } </code></pre><p><code>scope</code> here defines the top level of the PWA. When users leave the scope of your PWA, they’ll still have an app-like interface but gain access to browser UI elements. This can be useful if you’ve got certain parts of your app that you still want to be part of the PWA but which aren’t necessarily optimised or making the necessary considerations.</p><p><code>start_url</code> defines the URL a user will be presented with when they open the application. This is useful if, for example, your app has marketing content at <code>example.com</code> and a dashboard at <code>example.com/dashboard/index.html</code>. It is likely that people who have installed the app as a PWA don’t need the marketing content, so you can set the <code>start_url</code> to <code>/dashboard/index.html</code> so the app starts on that page when they open the PWA.</p><h3 id="enhanced-transitions">Enhanced Transitions</h3><p><a href="https://www.smashingmagazine.com/2023/12/view-transitions-api-ui-animations-part1/">View transitions</a> can feel unfamiliar, out of place, and a tad gaudy on the web, but are a common feature of native applications. We can set up PWA-only view transitions by wrapping the relevant CSS appropriately:</p><pre><code>@media (display-mode: standalone) { @view-transition { navigation: auto; } } </code></pre><p>If you’re <em>really</em> ambitious, you could also tweak the design of a site entirely to fit more closely with native design systems when running as a PWA by pairing a check for the display mode with a check for the device and/or browser in use as needed.</p><h2 id="browser-support-and-testing">Browser Support And Testing</h2><p>Browser support for display mode media queries is <a href="https://caniuse.com/mdn-css_at-rules_media_display-mode">good and extensive</a>. However, it’s worth noting that <strong>Firefox doesn’t have PWA support</strong>, and Firefox for Android only displays PWAs in <code>browser</code> mode, so you should make the necessary considerations. Thankfully, <a href="https://www.smashingmagazine.com/2013/09/progressive-enhancement-is-faster/">progressive enhancement</a> is on our side. If we’re dealing with a browser lacking support for PWAs or these media queries, we’ll be treated to <strong>graceful degradation</strong>.</p><p>Testing PWAs can be challenging because every device and browser handles them differently. Each display mode behaves slightly differently in every browser and OS combination.</p><p>Unfortunately, I don’t have a silver bullet to offer you with regard to this. Browsers don’t have a convenient way to simulate display modes for testing, so you’ll have to test out your PWA on different devices, browsers, and operating systems to be sure everything works everywhere it should, as it should.</p><h2 id="recap">Recap</h2><p>Using a PWA is a fundamentally different experience from using a web app in the browser, so considerations should be made. <code>display-mode</code> media queries provide a powerful way to create truly adaptive Progressive Web Apps that respond intelligently to their installation and display context. By leveraging these queries, we can do the following:</p><ul><li><strong>Hide redundant installation prompts</strong> for users who have already installed the app,</li><li><strong>Provide appropriate navigation aids</strong> when making browser controls unavailable,</li><li><strong>Tailor content and functionality</strong> to match user expectations in different contexts,</li><li><strong>Create more native-feeling experiences</strong> that respect platform conventions, and</li><li><strong>Progressively enhance the experience</strong> for committed users.</li></ul><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aThe%20key%20is%20remembering%20that%20PWA%20users%20in%20standalone%20mode%20have%20different%20needs%20and%20expectations%20than%20standard%20website%20visitors.%20By%20detecting%20and%20responding%20to%20display%20modes,%20we%20can%20create%20experiences%20that%20feel%20more%20polished,%20purposeful,%20and%20genuinely%20app-like.%0a&amp;url=https://smashingmagazine.com%2f2025%2f08%2foptimizing-pwas-different-display-modes%2f">The key is remembering that PWA users in standalone mode have different needs and expectations than standard website visitors. By detecting and responding to display modes, we can create experiences that feel more polished, purposeful, and genuinely app-like.</a></p></blockquote><p>As PWAs continue to mature, thoughtful implementations and tailoring will become increasingly important for creating truly compelling app experiences on the web. If you’re itching for even more information and PWA tips and tricks, check out Ankita Masand’s “<a href="https://www.smashingmagazine.com/2018/11/guide-pwa-progressive-web-applications/">Extensive Guide To Progressive Web Applications</a>”.</p><h3 id="further-reading-on-smashingmag">Further Reading On SmashingMag</h3><ul><li>“<a href="https://www.smashingmagazine.com/2021/11/magento-pwa-customizing-themes-coding/">Creating A Magento PWA: Customizing Themes vs. Coding From Scratch</a>”, Alex Husar</li><li>“<a href="https://www.smashingmagazine.com/2020/12/progressive-web-apps/">How To Optimize Progressive Web Apps: Going Beyond The Basics</a>”, Gert Svaiko</li><li>“<a href="https://www.smashingmagazine.com/2020/01/mobile-pwa-sticky-bars-elements/">How To Decide Which PWA Elements Should Stick</a>”, Suzanne Scacca</li><li>“<a href="https://www.smashingmagazine.com/2024/06/uniting-web-native-apps-unknown-javascript-apis/">Uniting Web And Native Apps With 4 Unknown JavaScript APIs</a>”, Juan Diego Rodríguez</li></ul><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(gg, yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (Declan Chidlow) <![CDATA[A Week In The Life Of An AI-Augmented Designer]]> https://smashingmagazine.com/2025/08/week-in-life-ai-augmented-designer/ https://smashingmagazine.com/2025/08/week-in-life-ai-augmented-designer/ Fri, 22 Aug 2025 08:00:00 GMT <img src="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/week-in-life-ai-augmented-designer.jpg" /><h1>A Week In The Life Of An AI-Augmented Designer — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>24 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/ai">AI</a>, <a href="http://www.smashingmagazine.com/category/workflow">Workflow</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>If you are new to using AI in design or curious about integrating AI into your UX process without losing your human touch, this article offers a grounded, day-by-day look at introducing AI into your design workflow.</section></p><p>Artificial Intelligence isn’t new, but in November 2022, something changed. The launch of ChatGPT brought AI out of the background and into everyday life. Suddenly, interacting with a machine didn’t feel technical — it felt <strong>conversational</strong>.</p><p>Just this March, ChatGPT overtook Instagram and TikTok as the most downloaded app in the world. That level of adoption shows that millions of everyday users, not just developers or early adopters, are comfortable using AI in casual, conversational ways. People are using AI not just to get answers, but to <a href="https://hbr.org/2025/04/how-people-are-really-using-gen-ai-in-2025">think, create, plan, and even to help with mental health and loneliness</a>.</p><p>In the past two and a half years, people have moved through the <a href="https://www.ekrfoundation.org/5-stages-of-grief/change-curve/">Kübler-Ross Change Curve</a> — only instead of grief, it’s AI-induced uncertainty. UX designers, like Kate (who you’ll meet shortly), have experienced something like this:</p><ul><li><strong>Denial</strong>: “AI can’t design like a human; it won’t affect my workflow.”</li><li><strong>Anger</strong>: “AI will ruin creativity. It’s a threat to our craft.”</li><li><strong>Bargaining</strong>: “Okay, maybe just for the boring tasks.”</li><li><strong>Depression</strong>: “I can’t keep up. What’s the future of my skills?”</li><li><strong>Acceptance</strong>: “Alright, AI can free me up for more strategic, human work.”</li></ul><p>As designers move into experimentation, they’re not asking, <em>Can I use AI?</em> but <em>How might I use it well?</em>.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aUsing%20AI%20isn%e2%80%99t%20about%20chasing%20the%20latest%20shiny%20object%20but%20about%20learning%20how%20to%20stay%20human%20in%20a%20world%20of%20machines,%20and%20use%20AI%20not%20as%20a%20shortcut,%20but%20as%20a%20creative%20collaborator.%0a&amp;url=https://smashingmagazine.com%2f2025%2f08%2fweek-in-life-ai-augmented-designer%2f">Using AI isn’t about chasing the latest shiny object but about learning how to stay human in a world of machines, and use AI not as a shortcut, but as a creative collaborator.</a></p></blockquote><p>It isn’t about finding, bookmarking, downloading, or hoarding prompts, but <strong>experimenting</strong> and writing your own prompts.</p><p>To bring this to life, we’ll follow Kate, a mid-level designer at a FinTech company, navigating her first AI-augmented design sprint. You’ll see her ups and downs as she experiments with AI, tries to balance human-centered skills with AI tools, when she relies on intuition over automation, and how she reflects critically on the role of AI at each stage of the sprint.</p><p>The next two planned articles in this series will explore how to design prompts (Part 2) and guide you through building your own AI assistant (aka CustomGPT; Part 3). Along the way, we’ll spotlight the <a href="https://www.smashingmagazine.com/2023/04/skills-designers-ai-cant-replicate/">designerly skills AI can’t replicate</a> like curiosity, empathy, critical thinking, and experimentation that will set you apart in a world where <strong>automation is easy, but people and human-centered design matter even more</strong>.</p><p><strong>Note</strong>: <em>This article was written by a human (with feelings, snacks, and deadlines). The prompts are real, the AI replies are straight from the source, and no language models were overworked — just politely bossed around. All em dashes are the handiwork of MS Word’s autocorrect — not AI. Kate is fictional, but her week is stitched together from real tools, real prompts, real design activities, and real challenges designers everywhere are navigating right now. She will primarily be using ChatGPT, reflecting the popularity of this jack-of-all-trades AI as the place many start their AI journeys before branching out. If you stick around to the end, you’ll find other AI tools that may be better suited for different design sprint activities. Due to the pace of AI advances, your outputs may vary (YOMV), possibly by the time you finish reading this sentence.</em></p><p><strong>Cautionary Note</strong>: <em>AI is helpful, but not always private or secure. Never share sensitive, confidential, or personal information with AI tools — even the helpful-sounding ones. When in doubt, treat it like a coworker who remembers everything and may not be particularly good at keeping secrets.</em></p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="prologue-meet-kate-as-she-preps-for-the-upcoming-week">Prologue: Meet Kate (As She Preps For The Upcoming Week)</h2><p>Kate stared at the digital mountain of feedback on her screen: transcripts, app reviews, survey snippets, all waiting to be synthesized. Deadlines loomed. Her calendar was a nightmare. Meanwhile, LinkedIn was ablaze with AI hot takes and success stories. Everyone seemed to have found their “AI groove” — except her. She wasn’t anti-AI. She just hadn’t figured out how it actually fit into her work. She had tried some of the prompts she saw online, played with some AI plugins and extensions, but it felt like an add-on, not a core part of her design workflow.</p><p>Her team was focusing on improving financial confidence for Gen Z users of their FinTech app, and Kate planned to use one of her favorite frameworks: <a href="https://www.gv.com/sprint/">the Design Sprint</a>, a five-day, high-focus process that condenses months of product thinking into a single week. Each day tackles a distinct phase: Understand, Sketch, Decide, Prototype, and Test. All designed to move fast, make ideas tangible, and learn from real users before making big bets.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/1-stages-design-sprint.png"><img alt="Stages of a 5-Day Design Sprint" decoding="async" fetchpriority="low" height="265" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/1-stages-design-sprint.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/1-stages-design-sprint.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/1-stages-design-sprint.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/1-stages-design-sprint.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/1-stages-design-sprint.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/1-stages-design-sprint.png 2000w" width="800"></img></a><figcaption>Stages of a 5-Day Design Sprint. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/1-stages-design-sprint.png">Large preview</a>)</figcaption></figure><p>This time, she planned to experiment with a very lightweight version of the design sprint, almost <em>“solo-ish”</em> since her PM and engineer were available for check-ins and decisions, but not present every day. That gave her both space and a constraint, and made it the perfect opportunity to explore how AI could augment each phase of the sprint.</p><p>She decided to lean on her designerly behavior of experimentation and learning and integrate AI intentionally into her sprint prep, using it as both a <strong>creative partner</strong> and a <strong>thinking aid</strong>. Not with a rigid plan, but with a working hypothesis that AI would at the very least speed her up, if nothing else.</p><p>She wouldn’t just be designing and testing a prototype, but prototyping and testing what it means to design with AI, while still staying in the driver’s seat.</p><p>Follow Kate along her journey through her first AI-powered design sprint: from curiosity to friction and from skepticism to insight.</p><h2 id="monday-understanding-the-problem-aka-kate-vs-digital-pile-of-notes">Monday: Understanding the Problem (aka: Kate Vs. Digital Pile Of Notes)</h2><p><em>The first day of a design sprint is spent understanding the user, their problems, business priorities, and technical constraints, and narrowing down the problem to solve that week.</em></p><p>This morning, Kate had transcripts from recent user interviews and customer feedback from the past year from app stores, surveys, and their customer support center. Typically, she would set aside a few days to process everything, coming out with glazed eyes and a few new insights. This time, she decided to use ChatGPT to summarize that data: <em>“Read this customer feedback and tell me how we can improve financial literacy for Gen Z in our app.”</em></p><p>ChatGPT’s outputs were underwhelming to say the least. Disappointed, she was about to give up when she remembered an infographic about good prompting that she had emailed herself. She updated her prompt based on those recommendations:</p><ul><li>Defined a role for the AI (“product strategist”),</li><li>Provided context (user group and design sprint objectives), and</li><li>Clearly outlined what she was looking for (financial literacy related patterns in pain points, blockers, confusion, lack of confidence; synthesis to identify top opportunity areas).</li></ul><p>By the time she Aero-pressed her next cup of coffee, ChatGPT had completed its analysis, highlighting blockers like jargon, lack of control, fear of making the wrong choice, and need for blockchain wallets. Wait, what? That last one felt off.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/2-ai-results-hallucinations.png"><img alt="AI results may sometimes include hallucinations – don’t trust; always verify." decoding="async" fetchpriority="low" height="501" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/2-ai-results-hallucinations.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/2-ai-results-hallucinations.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/2-ai-results-hallucinations.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/2-ai-results-hallucinations.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/2-ai-results-hallucinations.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/2-ai-results-hallucinations.png 2000w" width="800"></img></a><figcaption>AI results may sometimes include hallucinations: don’t trust, always verify. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/2-ai-results-hallucinations.png">Large preview</a>)</figcaption></figure><p>Kate searched her sources and confirmed her hunch: AI hallucination! Despite the best of prompts, AI sometimes makes things up based on trendy concepts from its training data rather than actual data. Kate updated her prompt with <strong>constraints</strong> to make ChatGPT only use data she had uploaded, and to cite examples from that data in its results. 18 seconds later, the updated results did not mention blockchain or other unexpected results.</p><p>By lunch, Kate had the makings of a research summary that would have taken much, much longer, and a whole lot of caffeine.</p><p>That afternoon, Kate and her product partner plotted the pain points on the Gen Z app journey. The emotional mapping highlighted the most critical moment: the first step of a financial decision, like setting a savings goal or choosing an investment option. That was when fear, confusion, and lack of confidence held people back.</p><p>AI synthesis combined with human insight helped them define the <strong>problem statement</strong> as: <em>“How might we help Gen Z users confidently take their first financial action in our app, in a way that feels simple, safe, and puts them in control?”</em></p><h3 id="kate-s-reflection">Kate’s Reflection</h3><p>As she wrapped up for the day, Kate jotted down her reflections on her first day as an AI-augmented designer:</p><blockquote>There’s nothing like learning by doing. I’ve been reading about AI and tinkering around, but took the plunge today. Turns out AI is much more than a tool, but I wouldn’t call it a co-pilot. Yet. I think it’s like a sharp intern: it has a lot of information, is fast, eager to help, but it lacks context, needs supervision, and can surprise you. You have to give it clear instructions, double-check its work, and guide and supervise it. Oh, and maintain boundaries by not sharing anything I wouldn’t want others to know.<p>Today was about listening — to users, to patterns, to my own instincts. AI helped me sift through interviews fast, but I had to stay <strong>curious</strong> to catch what it missed. Some quotes felt too clean, like the edges had been smoothed over. That’s where <strong>observation</strong> and <strong>empathy</strong> kicked in. I had to ask myself: what’s underneath this summary?</p><p><strong>Critical thinking</strong> was the designerly skill I had to exercise most today. It was tempting to take the AI’s synthesis at face value, but I had to push back by re-reading transcripts, questioning assumptions, and making sure I wasn’t outsourcing my judgment. Turns out, the thinking part still belongs to me.</p></blockquote><h2 id="tuesday-sketching-aka-kate-and-the-sea-of-okish-ideas">Tuesday: Sketching (aka: Kate And The Sea of OKish Ideas)</h2><p><em>Day 2 of a design sprint focuses on solutions, starting by remixing and improving existing ideas, followed by people sketching potential solutions.</em></p><p>Optimistic, yet cautious after her experience yesterday, Kate started thinking about ways she could use AI today, while brewing her first cup of coffee. By cup two, she was wondering if AI could be a creative teammate. Or a creative intern at least. She decided to ask AI for a list of relevant UX patterns across industries. Unlike yesterday’s complex analysis, Kate was asking for inspiration, not insight, which meant she could use a simpler prompt: <em>“Give me 10 unique examples of how top-rated apps reduce decision anxiety for first-time users — from FinTech, health, learning, or ecommerce.”</em></p><p>She received her results in a few seconds, but there were only 6, not the 10 she asked for. She expanded her prompt for examples from a wider range of industries. While reviewing the AI examples, Kate realized that one had accessibility issues. To be fair, the results met Kate’s ask since she had not specified accessibility considerations. She then went pre-AI and brainstormed examples with her product partner, coming up with a few unique local examples.</p><p>Later that afternoon, Kate went full human during Crazy 8s by putting a marker to paper and sketching 8 ideas in 8 minutes to rapidly explore different directions. Wondering if AI could live up to its generative nature, she uploaded pictures of her top 3 sketches and prompted AI to act as <em>“a product design strategist experienced in Gen Z behavior, digital UX, and behavioral science”</em>, gave it context about the problem statement, stage in the design sprint, and explicitly asked AI the following:</p><ol><li>Analyze the 3 sketch concepts and identify core elements or features that resonated with the goal.</li><li>Generate 5 new concept directions, each of which should:<ul><li>Address the original design sprint challenge.</li><li>Reflect Gen Z design language, tone, and digital behaviors.</li><li>Introduce a unique twist, remix, or conceptual inversion of the ideas in the sketches.</li></ul></li><li>For each concept, provide:<ul><li>Name (e.g., “Monopoly Mode,” “Smart Start”);</li><li>1–2 sentence concept summary;</li><li>Key differentiator from the original sketches;</li><li>Design tone and/or behavioral psychology technique used.</li></ul></li></ol><p>The results included ideas that Kate and her product partner hadn’t considered, including a progress bar that started at 20% (to build confidence), and a sports-like “stock bracket” for first-time investors.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/3-ai-generated-remixed-concepts.png"><img alt="AI-generated remixed concepts after sharing three of the Crazy 8’s concepts" decoding="async" fetchpriority="low" height="559" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/3-ai-generated-remixed-concepts.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/3-ai-generated-remixed-concepts.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/3-ai-generated-remixed-concepts.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/3-ai-generated-remixed-concepts.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/3-ai-generated-remixed-concepts.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/3-ai-generated-remixed-concepts.png 2000w" width="800"></img></a><figcaption>AI-generated remixed concepts after sharing three of the Crazy 8’s concepts. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/3-ai-generated-remixed-concepts.png">Large preview</a>)</figcaption></figure><p>Not bad, thought Kate, as she cherry-picked elements, combined and built on these ideas in her next round of sketches. By the end of the day, they had a diverse set of sketched solutions — some original, some AI-augmented, but all exploring how to reduce fear, simplify choices, and build confidence for Gen Z users taking their first financial step. With five concept variations and a few rough storyboards, Kate was ready to start converging on day 3.</p><h3 id="kate-s-reflection-1">Kate’s Reflection</h3><blockquote>Today was creatively energizing yet a little overwhelming! I leaned hard on AI to act as a creative teammate. It delivered a few unexpected ideas and remixed my Crazy 8s into variations I never would’ve thought of!<p>It also reinforced the need to stay grounded in the human side of design. AI was fast — too fast, sometimes. It spit out polished-sounding ideas that sounded right, but I had to slow down, observe carefully, and ask: Does this feel right for our users? Would a first-time user feel safe or intimidated here?</p><p><strong>Critical thinking</strong> helped me separate what mattered from what didn’t. <strong>Empathy</strong> pulled me back to what Gen Z users actually said, and kept their voices in mind as I sketched. <strong>Curiosity</strong> and <strong>experimentation</strong> were my fuel. I kept tweaking prompts, remixing inputs, and seeing how far I could stretch a concept before it broke. <strong>Visual communication</strong> helped translate fuzzy AI ideas into something I could react to — and more importantly, test.</p></blockquote><h2 id="wednesday-deciding-aka-kate-tries-to-get-ai-to-pick-a-side">Wednesday: Deciding (aka Kate Tries to Get AI to Pick a Side)</h2><p><em>Design sprint teams spend Day 3 critiquing each of their potential solutions to shortlist those that have the best chance of achieving their long-term goal. The winning scenes from the sketches are then woven into a prototype storyboard.</em></p><p>Design sprint Wednesdays were Kate’s least favorite day. After all the generative energy during Sketching Tuesday, today, she would have to decide on one clear solution to prototype and test. She was unsure if AI would be much help with judging tradeoffs or narrowing down options, and it wouldn’t be able to critique like a team. Or could it?</p><p>Kate reviewed each of the five concepts, noting strengths, open questions, and potential risks. Curious about how AI would respond, she uploaded images of three different design concepts and prompted ChatGPT for strengths and weaknesses. AI’s critique was helpful in summarizing the pros and cons of different concepts, including a few points she had not considered — like potential privacy concerns.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/4-speed-critique-uploaded-concept.png"><img alt="Speed Critique (Strengths and Weaknesses) of an uploaded concept" decoding="async" fetchpriority="low" height="538" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/4-speed-critique-uploaded-concept.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/4-speed-critique-uploaded-concept.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/4-speed-critique-uploaded-concept.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/4-speed-critique-uploaded-concept.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/4-speed-critique-uploaded-concept.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/4-speed-critique-uploaded-concept.png 2000w" width="800"></img></a><figcaption>Speed Critique (Strengths and Weaknesses) of an uploaded concept. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/4-speed-critique-uploaded-concept.png">Large preview</a>)</figcaption></figure><p>She asked a few follow-up questions to confirm the actual reasoning. Wondering if she could simulate a team critique by prompting ChatGPT differently, Kate asked it to use the <a href="https://www.debonogroup.com/services/core-programs/six-thinking-hats/">6 thinking hats technique</a>. The results came back dense, overwhelming, and unfocused. The AI couldn’t prioritize, and it couldn’t see the gaps Kate instinctively noticed: friction in onboarding, misaligned tone, unclear next steps.</p><p>In that moment, the promise of AI felt overhyped. Kate stood up, stretched, and seriously considered ending her experiments with the AI-driven process. But she paused. Maybe the problem wasn’t the tool. Maybe it was <em>how</em> she was using it. She made a note to experiment when she wasn’t on a design sprint clock.</p><p>She returned to her sketches, this time laying them out on the wall. No screens, no prompts. Just markers, sticky notes, and Sharpie scribbles. Human judgment took over. Kate worked with her product partner to finalize the solution to test on Friday and spent the next hour storyboarding the experience in Figma.</p><p>Kate re-engaged with AI as a reviewer, not a decider. She prompted it for feedback on the storyboard and was surprised to see it spit out detailed design, content, and micro-interaction suggestions for each of the steps of the storyboarded experience. A lot of food for thought, but she’d have to judge what mattered when she created her prototype. But that wasn’t until tomorrow!</p><h3 id="kate-s-reflection-2">Kate’s Reflection</h3><blockquote>AI exposed a few of my blind spots in the critique, which was good, but it basically pointed out that multiple options “could work”. I had to rely on my <strong>critical thinking</strong> and instincts to weigh options logically, emotionally, and contextually in order to choose a direction that was the most testable and aligned with the user feedback from Day 1.<p>I was also surprised by the suggestions it came up with while reviewing my final storyboard, but I will need a fresh pair of eyes and all the human judgement I can muster tomorrow.</p><p><strong>Empathy</strong> helped me walk through the flow like I was a new user. <strong>Visual communication</strong> helped pull it all together by turning abstract steps into a real storyboard for the team to see instead of imagining.</p><p><strong>TO DO</strong>: Experiment prompting around the 6 Thinking Hats for different perspectives.</p></blockquote><h2 id="thursday-prototype-aka-kate-and-faking-it">Thursday: Prototype (aka Kate And Faking It)</h2><p><em>On Day 4, the team usually turns the storyboard from the previous day into a prototype that can be tested with users on Day 5. The prototype doesn’t need to be fully functional; a simulated experience is sufficient to gather user feedback.</em></p><p>Kate’s prototype day often consisted of marathon Figma Design sessions and late-night pizza dinners. She was hoping AI would change that today. She fed yesterday’s storyboard to ChatGPT and asked it for screens. It took a while to generate, but she was excited to see a screen flow gradually appear on her screen, except that it had 3 ¾ screens, instead of the 6 frames from her storyboard, as you can see in the image below.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/5-chat-gpt-half-baked-screens.png"><img alt="ChatGPT’s half-baked (actually, 3 ¾th baked) screens." decoding="async" fetchpriority="low" height="533" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/5-chat-gpt-half-baked-screens.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/5-chat-gpt-half-baked-screens.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/5-chat-gpt-half-baked-screens.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/5-chat-gpt-half-baked-screens.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/5-chat-gpt-half-baked-screens.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/5-chat-gpt-half-baked-screens.png 2000w" width="800"></img></a><figcaption>ChatGPT’s half-baked (actually, 3 ¾<sup>th</sup> baked) screens. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/5-chat-gpt-half-baked-screens.png">Large preview</a>)</figcaption></figure><p>She tried different prompts but couldn’t get a complete flow. She was excited when it offered to create a Figma file. She waited. And waited. And reminded it that she was right there waiting. It finally gave her a link — a link that didn’t work. That made her question why she needed prototype screens in Figma at all. Could one of those no-code tools do the job? Kate remembered that she had just received beta access to <a href="https://www.figma.com/make/">Figma Make</a> (Figma’s AI prompt-to-prototype tool) and decided to put it to the test.</p><p>She shared her storyboard, added context about the prototype for a design sprint, the problem, and a brief description of the audience. In a few seconds, she saw code being generated and a running description on the left. It seemed like it would take some time, so she headed to the cafeteria for lunch.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/6-initial-prototype-figma-make.png"><img alt="Initial prototype created by Figma Make based on a prompt with the storyboard" decoding="async" fetchpriority="low" height="559" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/6-initial-prototype-figma-make.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/6-initial-prototype-figma-make.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/6-initial-prototype-figma-make.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/6-initial-prototype-figma-make.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/6-initial-prototype-figma-make.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/6-initial-prototype-figma-make.png 2000w" width="800"></img></a><figcaption>Initial prototype created by Figma Make based on a prompt with the storyboard. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/6-initial-prototype-figma-make.png">Large preview</a>)</figcaption></figure><p>When Kate returned, she was surprised to see Figma Make had created an app along with a detailed explanation:</p><blockquote>“I’ve created a complete finance app prototype with five key screens that guide users through setting financial goals in a friendly, low-pressure way. The app features smooth animations with Framer Motion, a progress indicator to show users where they are in the journey, and emotionally supportive visuals and copy throughout the experience. Each screen serves a specific purpose: welcoming users, helping them define relatable goals, building their plan with visual feedback, presenting a simple summary, and offering next steps without pressure.<p>You might want to:<ul><li>Add personalization options like user profiles or avatars.</li><li>Implement a dark mode toggle for accessibility.</li><li>Create additional goal templates and saving strategies.”</li></ul></p></blockquote><p>Since Figma Make had built the prototype, not her, Kate felt like she was User 0, and clicked her way through the interactive prototype, making a mental note of what worked, what didn’t. She was impressed to see that she could not only select a common goal (buy a home, save for education, and so on) but she could also create her own goal (<em>hello De’Longhi Coffee Maker</em>) and it carried over for the rest of the experience. This was something she had never been able to do in Figma Design!</p><p>Despite some obvious misses like a missing header and navigation, and some buttons not working, she was impressed! Kate tried the option to ‘Publish’ and it gave her a link that she immediately shared with her product and engineering partners. A few minutes later, they joined her in the conference room, exploring it together. The engineer scanned the code, didn’t seem impressed, but said it would work as a disposable prototype.</p><p>Kate prompted Figma Make to add an orange header and app navigation, and this time the trio kept their eyes peeled as they saw the progress in code and in English. The results were pretty good. They spent the next hour making changes to get it ready for testing. Even though he didn’t admit it, the engineer seemed impressed with the result, if not the code.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/7-finalized-prototype-screenshots-figma-make.png"><img alt="Finalized prototype screenshots from the interactive Figma Make prototype" decoding="async" fetchpriority="low" height="302" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/7-finalized-prototype-screenshots-figma-make.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/7-finalized-prototype-screenshots-figma-make.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/7-finalized-prototype-screenshots-figma-make.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/7-finalized-prototype-screenshots-figma-make.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/7-finalized-prototype-screenshots-figma-make.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/7-finalized-prototype-screenshots-figma-make.png 2000w" width="800"></img></a><figcaption>Finalized prototype screenshots from the interactive <a href="https://zone-crush-76141775.figma.site/">Figma Make prototype</a>. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/7-finalized-prototype-screenshots-figma-make.png">Large preview</a>)</figcaption></figure><p>By late afternoon, they had a <a href="https://zone-crush-76141775.figma.site">functioning interactive prototype</a>. Kate fed ChatGPT the prototype link and asked it to create a usability testing script. It came up with a basic, but complete test script, including a checklist for observers to take notes.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/8-initial-usability-testing-script-ai.png"><img alt="Initial usability testing script generated by AI" decoding="async" fetchpriority="low" height="506" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/8-initial-usability-testing-script-ai.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/8-initial-usability-testing-script-ai.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/8-initial-usability-testing-script-ai.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/8-initial-usability-testing-script-ai.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/8-initial-usability-testing-script-ai.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/8-initial-usability-testing-script-ai.png 2000w" width="800"></img></a><figcaption>Initial usability testing script generated by AI. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/8-initial-usability-testing-script-ai.png">Large preview</a>)</figcaption></figure><p>Kate went through the script carefully and updated it to add probing questions about AI transparency, emotional check-ins, more specific task scenarios, and a post-test debrief that looped back to the sprint goal.</p><p>Kate did a dry run with her product partner, who teased her: <em>“Did you really need me? Couldn’t your AI do it?”</em> It hadn’t occurred to her, but she was now curious!</p><blockquote>“Act as a Gen Z user seeing this interactive prototype for the first time. How would you react to the language, steps, and tone? What would make you feel more confident or in control?”</blockquote><p>It worked! ChatGPT simulated user feedback for the first screen and asked if she wanted it to continue. <em>“Yes, please,”</em> she typed. A few seconds later, she was reading what could have very well been a screen-by-screen transcript from a test.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/9-ai-generated-feedback-prototype.png"><img alt="AI-generated feedback about the prototype" decoding="async" fetchpriority="low" height="467" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/9-ai-generated-feedback-prototype.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/9-ai-generated-feedback-prototype.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/9-ai-generated-feedback-prototype.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/9-ai-generated-feedback-prototype.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/9-ai-generated-feedback-prototype.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/9-ai-generated-feedback-prototype.png 2000w" width="800"></img></a><figcaption>AI-generated feedback about the prototype. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/9-ai-generated-feedback-prototype.png">Large preview</a>)</figcaption></figure><p>Kate was still processing what she had seen as she drove home, happy she didn’t have to stay late. The simulated test using AI appeared impressive at first glance. But the more she thought about it, the more disturbing it became. The output didn’t mention what the simulated user clicked, and if she had asked, she probably would have received an answer. But how useful would that be? After almost missing her exit, she forced herself to think about eating a relaxed meal at home instead of her usual Prototype-Thursday-Multitasking-Pizza-Dinner.</p><h3 id="kate-s-reflection-3">Kate’s Reflection</h3><blockquote>Today was the most meta I’ve felt all week: building a prototype about AI, with AI, while being coached by AI. And it didn’t all go the way I expected.<p>While ChatGPT didn’t deliver prototype screens, Figma Make coded a working, interactive prototype with interactions I couldn’t have built in Figma Design. I used <strong>curiosity</strong> and <strong>experimentation</strong> today, by asking: What if I reworded this? What if I flipped that flow?</p><p>AI moved fast, but I had to keep steering. But I have to admit that tweaking the prototype by changing the words, not code, felt like magic!</p><p><strong>Critical thinking</strong> isn’t optional anymore — it is table stakes.</p><p>My impromptu ask of ChatGPT to simulate a Gen Z user testing my flow? That part both impressed and unsettled me. I’m going to need time to process this. But that can wait until next week. Tomorrow, I test with 5 Gen Zs — real people.</p></blockquote><h2 id="friday-test-aka-prototype-meets-user">Friday: Test (aka Prototype Meets User)</h2><p><em>Day 5 in a design sprint is a culmination of the week’s work from understanding the problem, exploring solutions, choosing the best, and building a prototype. It’s when teams interview users and learn by watching them react to the prototype and seeing if it really matters to them.</em></p><p>As Kate prepped for the tests, she grounded herself in the sprint problem statement and the users: “<em>How might we help Gen Z users confidently take their first financial action in our app — in a way that feels simple, safe, and puts them in control?”</em></p><p>She clicked through the prototype one last time — the link still worked! And just in case, she also had screenshots saved.</p><p>Kate moderated the five tests while her product and engineering partners observed. The prototype may have been AI-generated, but the reactions were human. She observed where people hesitated, what made them feel safe and in control. Based on the participant, she would pivot, go off-script, and ask clarifying questions, getting deeper insights.</p><p>After each session, she dropped the transcripts and their notes into ChatGPT, asking it to summarize that user’s feedback into pain points, positive signals, and any relevant quotes. At the end of the five rounds, Kate prompted them for recurring themes to use as input for their reflection and synthesis.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/10-ai-generated-synthesis-usability-testing.png"><img alt="AI-generated synthesis of the Day 5 usability testing" decoding="async" fetchpriority="low" height="499" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/10-ai-generated-synthesis-usability-testing.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/10-ai-generated-synthesis-usability-testing.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/10-ai-generated-synthesis-usability-testing.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/10-ai-generated-synthesis-usability-testing.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/10-ai-generated-synthesis-usability-testing.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/10-ai-generated-synthesis-usability-testing.png 2000w" width="800"></img></a><figcaption>AI-generated synthesis of the Day 5 usability testing. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/10-ai-generated-synthesis-usability-testing.png">Large preview</a>)</figcaption></figure><p>The trio combed through the results, with an eye out for any suspicious AI-generated results. They ran into one: <em>“Users Trust AI”</em>. Not one user mentioned or clicked the ‘Why this?’ link, but AI possibly assumed transparency features worked because they were available in the prototype.</p><p>They agreed that the prototype resonated with users, allowing all to easily set their financial goals, and identified a couple of opportunities for improvement: better explaining AI-generated plans and celebrating “win” moments after creating a plan. Both were fairly easy to address during their product build process.</p><p>That was a nice end to the week: another design sprint wrapped, and Kate’s first AI-augmented design sprint! She started Monday anxious about falling behind, overwhelmed by options. She closed Friday confident in a validated concept, grounded in real user needs, and empowered by tools she now knew how to steer.</p><h3 id="kate-s-reflection-4">Kate’s Reflection</h3><blockquote>Test driving my prototype with AI yesterday left me impressed and unsettled. But today’s tests with people reminded me why we test with real users, not proxies or people who interact with users, but actual end users. And GenAI is not the user. Five tests put my designerly skill of <strong>observation</strong> to the test.<p>GenAI helped summarize the test transcripts quickly but snuck in one last hallucination this week — about AI! With AI, don’t trust — always verify! <strong>Critical thinking</strong> is not going anywhere.</p><p>AI can move fast with words, but only people can use <strong>empathy</strong> to move beyond words to truly understand human emotions.</p><p>My next goal is to learn to talk to AI better, so I can get better results.</p></blockquote><h2 id="conclusion">Conclusion</h2><p>Over the course of five days, Kate explored how AI could fit into her UX work, not by reading articles or LinkedIn posts, but by doing. Through daily experiments, iterations, and missteps, she got comfortable with AI as a collaborator to support a design sprint. It accelerated every stage: synthesizing user feedback, generating divergent ideas, giving feedback, and even spinning up a working prototype, as shown below.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/11-design-sprint-ai.png"><img alt="Design Sprint with AI" decoding="async" fetchpriority="low" height="284" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/11-design-sprint-ai.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/11-design-sprint-ai.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/11-design-sprint-ai.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/11-design-sprint-ai.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/11-design-sprint-ai.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/11-design-sprint-ai.png 2000w" width="800"></img></a><figcaption>Design Sprint with AI. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/11-design-sprint-ai.png">Large preview</a>)</figcaption></figure><p>What was clear by Friday was that speed isn’t insight. While AI produced outputs fast, it was Kate’s designerly skills — <strong>curiosity</strong>, <strong>empathy</strong>, <strong>observation</strong>, <strong>visual communication</strong>, <strong>experimentation</strong>, and most importantly, <strong>critical thinking</strong> and a <strong>growth mindset</strong> — that turned data and patterns into meaningful insights. She stayed in the driver’s seat, verifying claims, adjusting prompts, and applying judgment where automation fell short.</p><p>She started the week on Monday, overwhelmed, her confidence dimmed by uncertainty and the noise of AI hype. She questioned her relevance in a rapidly shifting landscape. By Friday, she not only had a validated concept but had also reshaped her entire approach to design. She had evolved: from AI-curious to AI-confident, from reactive to proactive, from unsure to empowered. Her mindset had shifted: AI was no longer a threat or trend; it was like a smart intern she could direct, critique, and collaborate with. She didn’t just adapt to AI. She redefined what it meant to be a designer in the age of AI.</p><p>The experience raised deeper questions: How do we make sure AI-augmented outputs are not made up? How should we treat AI-generated user feedback? Where do ethics and human responsibility intersect?</p><p>Besides a validated solution to their design sprint problem, Kate had prototyped a new way of working as an AI-augmented designer.</p><p>The question now isn’t just <em>“Should designers use AI?”</em>. It’s <em>“How do we work with AI responsibly, creatively, and consciously?”</em>. That’s what the next article will explore: designing your interactions with AI using a repeatable framework.</p><p><strong>Poll</strong>: If you could design your own AI assistant, what would it do?</p><ul><li>Assist with ideation?</li><li>Research synthesis?</li><li>Identify customer pain points?</li><li>Or something else entirely?</li></ul><p><a href="https://forms.gle/tSsZzy92VVrjuPQX8">Share your idea</a>, and in the spirit of learning by doing, we’ll build one together from scratch in the third article of this series: Building your own CustomGPT.</p><h3 id="resources">Resources</h3><ul><li><a href="https://www.amazon.com/Sprint-Solve-Problems-Test-Ideas/dp/150112174X">Sprint: How to Solve Big Problems and Test New Ideas in Just Five Days</a>, by Jake Knapp</li><li><a href="https://www.gv.com/sprint/">The Design Sprint</a></li><li><a href="https://www.figma.com/make/">Figma Make</a></li><li>“<a href="https://gizmodo.com/openai-appeals-sweeping-unprecedented-order-requiring-it-maintain-all-chatgpt-logs-2000612405">OpenAI Appeals ‘Sweeping, Unprecedented Order’ Requiring It Maintain All ChatGPT Logs</a>”, Vanessa Taylor</li></ul><p><strong>Tools</strong></p><p>As mentioned earlier, ChatGPT was the general-purpose LLM Kate leaned on, but you could swap it out for Claude, Gemini, Copilot, or other competitors and likely get similar results (or at least similarly weird surprises). Here are some alternate AI tools that might suit each sprint stage even better. Note that with dozens of new AI tools popping up every week, this list is far from exhaustive.</p><table><thead><tr><th>Stage</th><th>Tools</th><th>Capability</th></tr></thead><tbody><tr><td><strong>Understand</strong></td><td>Dovetail, UserTesting’s Insights Hub, <a href="http://heymarvin.com">Marvin</a></td><td>Summarize &amp; Synthesize data</td></tr><tr><td><strong>Sketch</strong></td><td>Any LLM, <a href="https://musely.ai/tools/ideation-tool">Musely</a></td><td>Brainstorm concepts and ideas</td></tr><tr><td><strong>Decide</strong></td><td>Any LLM</td><td>Critique/provide feedback</td></tr><tr><td><strong>Prototype</strong></td><td><a href="http://uizard.io">UIzard</a>, <a href="http://uxpilot.ai">UXPilot</a>, <a href="http://visily.ai">Visily</a>, <a href="http://krisspy.ai">Krisspy</a>, Figma Make, Lovable, Bolt</td><td>Create wireframes and prototypes</td></tr><tr><td><strong>Test</strong></td><td>UserTesting, UserInterviews, PlaybookUX, <a href="http://maze.co">Maze</a>, plus tools from the Understand stage</td><td>Moderated and unmoderated user tests/synthesis</td></tr></tbody></table><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> <img src="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/week-in-life-ai-augmented-designer.jpg" /><h1>A Week In The Life Of An AI-Augmented Designer — Smashing Magazine</h1><h2>By About The Author</h2><div><div id="article__content"><div><ul><li>24 min read</li><li><a href="http://www.smashingmagazine.com/category/ux">UX</a>, <a href="http://www.smashingmagazine.com/category/ai">AI</a>, <a href="http://www.smashingmagazine.com/category/workflow">Workflow</a></li></ul><p><section aria-label="Quick summary"><span aria-hidden="true" id="article__start"></span>If you are new to using AI in design or curious about integrating AI into your UX process without losing your human touch, this article offers a grounded, day-by-day look at introducing AI into your design workflow.</section></p><p>Artificial Intelligence isn’t new, but in November 2022, something changed. The launch of ChatGPT brought AI out of the background and into everyday life. Suddenly, interacting with a machine didn’t feel technical — it felt <strong>conversational</strong>.</p><p>Just this March, ChatGPT overtook Instagram and TikTok as the most downloaded app in the world. That level of adoption shows that millions of everyday users, not just developers or early adopters, are comfortable using AI in casual, conversational ways. People are using AI not just to get answers, but to <a href="https://hbr.org/2025/04/how-people-are-really-using-gen-ai-in-2025">think, create, plan, and even to help with mental health and loneliness</a>.</p><p>In the past two and a half years, people have moved through the <a href="https://www.ekrfoundation.org/5-stages-of-grief/change-curve/">Kübler-Ross Change Curve</a> — only instead of grief, it’s AI-induced uncertainty. UX designers, like Kate (who you’ll meet shortly), have experienced something like this:</p><ul><li><strong>Denial</strong>: “AI can’t design like a human; it won’t affect my workflow.”</li><li><strong>Anger</strong>: “AI will ruin creativity. It’s a threat to our craft.”</li><li><strong>Bargaining</strong>: “Okay, maybe just for the boring tasks.”</li><li><strong>Depression</strong>: “I can’t keep up. What’s the future of my skills?”</li><li><strong>Acceptance</strong>: “Alright, AI can free me up for more strategic, human work.”</li></ul><p>As designers move into experimentation, they’re not asking, <em>Can I use AI?</em> but <em>How might I use it well?</em>.</p><blockquote><p><a aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aUsing%20AI%20isn%e2%80%99t%20about%20chasing%20the%20latest%20shiny%20object%20but%20about%20learning%20how%20to%20stay%20human%20in%20a%20world%20of%20machines,%20and%20use%20AI%20not%20as%20a%20shortcut,%20but%20as%20a%20creative%20collaborator.%0a&amp;url=https://smashingmagazine.com%2f2025%2f08%2fweek-in-life-ai-augmented-designer%2f">Using AI isn’t about chasing the latest shiny object but about learning how to stay human in a world of machines, and use AI not as a shortcut, but as a creative collaborator.</a></p></blockquote><p>It isn’t about finding, bookmarking, downloading, or hoarding prompts, but <strong>experimenting</strong> and writing your own prompts.</p><p>To bring this to life, we’ll follow Kate, a mid-level designer at a FinTech company, navigating her first AI-augmented design sprint. You’ll see her ups and downs as she experiments with AI, tries to balance human-centered skills with AI tools, when she relies on intuition over automation, and how she reflects critically on the role of AI at each stage of the sprint.</p><p>The next two planned articles in this series will explore how to design prompts (Part 2) and guide you through building your own AI assistant (aka CustomGPT; Part 3). Along the way, we’ll spotlight the <a href="https://www.smashingmagazine.com/2023/04/skills-designers-ai-cant-replicate/">designerly skills AI can’t replicate</a> like curiosity, empathy, critical thinking, and experimentation that will set you apart in a world where <strong>automation is easy, but people and human-centered design matter even more</strong>.</p><p><strong>Note</strong>: <em>This article was written by a human (with feelings, snacks, and deadlines). The prompts are real, the AI replies are straight from the source, and no language models were overworked — just politely bossed around. All em dashes are the handiwork of MS Word’s autocorrect — not AI. Kate is fictional, but her week is stitched together from real tools, real prompts, real design activities, and real challenges designers everywhere are navigating right now. She will primarily be using ChatGPT, reflecting the popularity of this jack-of-all-trades AI as the place many start their AI journeys before branching out. If you stick around to the end, you’ll find other AI tools that may be better suited for different design sprint activities. Due to the pace of AI advances, your outputs may vary (YOMV), possibly by the time you finish reading this sentence.</em></p><p><strong>Cautionary Note</strong>: <em>AI is helpful, but not always private or secure. Never share sensitive, confidential, or personal information with AI tools — even the helpful-sounding ones. When in doubt, treat it like a coworker who remembers everything and may not be particularly good at keeping secrets.</em></p><div data-audience="non-subscriber" data-remove="true"><aside><div><a data-instant="" href="https://smashed.by/smashing-workshops"><div><img alt="Feature Panel" decoding="async" height="355" loading="lazy" src="http://www.smashingmagazine.com/images/smashing-cat/cat-scubadiving-panel.svg" width="257"></img></div></a></div></aside></div><h2 id="prologue-meet-kate-as-she-preps-for-the-upcoming-week">Prologue: Meet Kate (As She Preps For The Upcoming Week)</h2><p>Kate stared at the digital mountain of feedback on her screen: transcripts, app reviews, survey snippets, all waiting to be synthesized. Deadlines loomed. Her calendar was a nightmare. Meanwhile, LinkedIn was ablaze with AI hot takes and success stories. Everyone seemed to have found their “AI groove” — except her. She wasn’t anti-AI. She just hadn’t figured out how it actually fit into her work. She had tried some of the prompts she saw online, played with some AI plugins and extensions, but it felt like an add-on, not a core part of her design workflow.</p><p>Her team was focusing on improving financial confidence for Gen Z users of their FinTech app, and Kate planned to use one of her favorite frameworks: <a href="https://www.gv.com/sprint/">the Design Sprint</a>, a five-day, high-focus process that condenses months of product thinking into a single week. Each day tackles a distinct phase: Understand, Sketch, Decide, Prototype, and Test. All designed to move fast, make ideas tangible, and learn from real users before making big bets.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/1-stages-design-sprint.png"><img alt="Stages of a 5-Day Design Sprint" decoding="async" fetchpriority="low" height="265" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/1-stages-design-sprint.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/1-stages-design-sprint.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/1-stages-design-sprint.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/1-stages-design-sprint.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/1-stages-design-sprint.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/1-stages-design-sprint.png 2000w" width="800"></img></a><figcaption>Stages of a 5-Day Design Sprint. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/1-stages-design-sprint.png">Large preview</a>)</figcaption></figure><p>This time, she planned to experiment with a very lightweight version of the design sprint, almost <em>“solo-ish”</em> since her PM and engineer were available for check-ins and decisions, but not present every day. That gave her both space and a constraint, and made it the perfect opportunity to explore how AI could augment each phase of the sprint.</p><p>She decided to lean on her designerly behavior of experimentation and learning and integrate AI intentionally into her sprint prep, using it as both a <strong>creative partner</strong> and a <strong>thinking aid</strong>. Not with a rigid plan, but with a working hypothesis that AI would at the very least speed her up, if nothing else.</p><p>She wouldn’t just be designing and testing a prototype, but prototyping and testing what it means to design with AI, while still staying in the driver’s seat.</p><p>Follow Kate along her journey through her first AI-powered design sprint: from curiosity to friction and from skepticism to insight.</p><h2 id="monday-understanding-the-problem-aka-kate-vs-digital-pile-of-notes">Monday: Understanding the Problem (aka: Kate Vs. Digital Pile Of Notes)</h2><p><em>The first day of a design sprint is spent understanding the user, their problems, business priorities, and technical constraints, and narrowing down the problem to solve that week.</em></p><p>This morning, Kate had transcripts from recent user interviews and customer feedback from the past year from app stores, surveys, and their customer support center. Typically, she would set aside a few days to process everything, coming out with glazed eyes and a few new insights. This time, she decided to use ChatGPT to summarize that data: <em>“Read this customer feedback and tell me how we can improve financial literacy for Gen Z in our app.”</em></p><p>ChatGPT’s outputs were underwhelming to say the least. Disappointed, she was about to give up when she remembered an infographic about good prompting that she had emailed herself. She updated her prompt based on those recommendations:</p><ul><li>Defined a role for the AI (“product strategist”),</li><li>Provided context (user group and design sprint objectives), and</li><li>Clearly outlined what she was looking for (financial literacy related patterns in pain points, blockers, confusion, lack of confidence; synthesis to identify top opportunity areas).</li></ul><p>By the time she Aero-pressed her next cup of coffee, ChatGPT had completed its analysis, highlighting blockers like jargon, lack of control, fear of making the wrong choice, and need for blockchain wallets. Wait, what? That last one felt off.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/2-ai-results-hallucinations.png"><img alt="AI results may sometimes include hallucinations – don’t trust; always verify." decoding="async" fetchpriority="low" height="501" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/2-ai-results-hallucinations.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/2-ai-results-hallucinations.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/2-ai-results-hallucinations.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/2-ai-results-hallucinations.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/2-ai-results-hallucinations.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/2-ai-results-hallucinations.png 2000w" width="800"></img></a><figcaption>AI results may sometimes include hallucinations: don’t trust, always verify. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/2-ai-results-hallucinations.png">Large preview</a>)</figcaption></figure><p>Kate searched her sources and confirmed her hunch: AI hallucination! Despite the best of prompts, AI sometimes makes things up based on trendy concepts from its training data rather than actual data. Kate updated her prompt with <strong>constraints</strong> to make ChatGPT only use data she had uploaded, and to cite examples from that data in its results. 18 seconds later, the updated results did not mention blockchain or other unexpected results.</p><p>By lunch, Kate had the makings of a research summary that would have taken much, much longer, and a whole lot of caffeine.</p><p>That afternoon, Kate and her product partner plotted the pain points on the Gen Z app journey. The emotional mapping highlighted the most critical moment: the first step of a financial decision, like setting a savings goal or choosing an investment option. That was when fear, confusion, and lack of confidence held people back.</p><p>AI synthesis combined with human insight helped them define the <strong>problem statement</strong> as: <em>“How might we help Gen Z users confidently take their first financial action in our app, in a way that feels simple, safe, and puts them in control?”</em></p><h3 id="kate-s-reflection">Kate’s Reflection</h3><p>As she wrapped up for the day, Kate jotted down her reflections on her first day as an AI-augmented designer:</p><blockquote>There’s nothing like learning by doing. I’ve been reading about AI and tinkering around, but took the plunge today. Turns out AI is much more than a tool, but I wouldn’t call it a co-pilot. Yet. I think it’s like a sharp intern: it has a lot of information, is fast, eager to help, but it lacks context, needs supervision, and can surprise you. You have to give it clear instructions, double-check its work, and guide and supervise it. Oh, and maintain boundaries by not sharing anything I wouldn’t want others to know.<p>Today was about listening — to users, to patterns, to my own instincts. AI helped me sift through interviews fast, but I had to stay <strong>curious</strong> to catch what it missed. Some quotes felt too clean, like the edges had been smoothed over. That’s where <strong>observation</strong> and <strong>empathy</strong> kicked in. I had to ask myself: what’s underneath this summary?</p><p><strong>Critical thinking</strong> was the designerly skill I had to exercise most today. It was tempting to take the AI’s synthesis at face value, but I had to push back by re-reading transcripts, questioning assumptions, and making sure I wasn’t outsourcing my judgment. Turns out, the thinking part still belongs to me.</p></blockquote><h2 id="tuesday-sketching-aka-kate-and-the-sea-of-okish-ideas">Tuesday: Sketching (aka: Kate And The Sea of OKish Ideas)</h2><p><em>Day 2 of a design sprint focuses on solutions, starting by remixing and improving existing ideas, followed by people sketching potential solutions.</em></p><p>Optimistic, yet cautious after her experience yesterday, Kate started thinking about ways she could use AI today, while brewing her first cup of coffee. By cup two, she was wondering if AI could be a creative teammate. Or a creative intern at least. She decided to ask AI for a list of relevant UX patterns across industries. Unlike yesterday’s complex analysis, Kate was asking for inspiration, not insight, which meant she could use a simpler prompt: <em>“Give me 10 unique examples of how top-rated apps reduce decision anxiety for first-time users — from FinTech, health, learning, or ecommerce.”</em></p><p>She received her results in a few seconds, but there were only 6, not the 10 she asked for. She expanded her prompt for examples from a wider range of industries. While reviewing the AI examples, Kate realized that one had accessibility issues. To be fair, the results met Kate’s ask since she had not specified accessibility considerations. She then went pre-AI and brainstormed examples with her product partner, coming up with a few unique local examples.</p><p>Later that afternoon, Kate went full human during Crazy 8s by putting a marker to paper and sketching 8 ideas in 8 minutes to rapidly explore different directions. Wondering if AI could live up to its generative nature, she uploaded pictures of her top 3 sketches and prompted AI to act as <em>“a product design strategist experienced in Gen Z behavior, digital UX, and behavioral science”</em>, gave it context about the problem statement, stage in the design sprint, and explicitly asked AI the following:</p><ol><li>Analyze the 3 sketch concepts and identify core elements or features that resonated with the goal.</li><li>Generate 5 new concept directions, each of which should:<ul><li>Address the original design sprint challenge.</li><li>Reflect Gen Z design language, tone, and digital behaviors.</li><li>Introduce a unique twist, remix, or conceptual inversion of the ideas in the sketches.</li></ul></li><li>For each concept, provide:<ul><li>Name (e.g., “Monopoly Mode,” “Smart Start”);</li><li>1–2 sentence concept summary;</li><li>Key differentiator from the original sketches;</li><li>Design tone and/or behavioral psychology technique used.</li></ul></li></ol><p>The results included ideas that Kate and her product partner hadn’t considered, including a progress bar that started at 20% (to build confidence), and a sports-like “stock bracket” for first-time investors.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/3-ai-generated-remixed-concepts.png"><img alt="AI-generated remixed concepts after sharing three of the Crazy 8’s concepts" decoding="async" fetchpriority="low" height="559" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/3-ai-generated-remixed-concepts.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/3-ai-generated-remixed-concepts.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/3-ai-generated-remixed-concepts.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/3-ai-generated-remixed-concepts.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/3-ai-generated-remixed-concepts.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/3-ai-generated-remixed-concepts.png 2000w" width="800"></img></a><figcaption>AI-generated remixed concepts after sharing three of the Crazy 8’s concepts. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/3-ai-generated-remixed-concepts.png">Large preview</a>)</figcaption></figure><p>Not bad, thought Kate, as she cherry-picked elements, combined and built on these ideas in her next round of sketches. By the end of the day, they had a diverse set of sketched solutions — some original, some AI-augmented, but all exploring how to reduce fear, simplify choices, and build confidence for Gen Z users taking their first financial step. With five concept variations and a few rough storyboards, Kate was ready to start converging on day 3.</p><h3 id="kate-s-reflection-1">Kate’s Reflection</h3><blockquote>Today was creatively energizing yet a little overwhelming! I leaned hard on AI to act as a creative teammate. It delivered a few unexpected ideas and remixed my Crazy 8s into variations I never would’ve thought of!<p>It also reinforced the need to stay grounded in the human side of design. AI was fast — too fast, sometimes. It spit out polished-sounding ideas that sounded right, but I had to slow down, observe carefully, and ask: Does this feel right for our users? Would a first-time user feel safe or intimidated here?</p><p><strong>Critical thinking</strong> helped me separate what mattered from what didn’t. <strong>Empathy</strong> pulled me back to what Gen Z users actually said, and kept their voices in mind as I sketched. <strong>Curiosity</strong> and <strong>experimentation</strong> were my fuel. I kept tweaking prompts, remixing inputs, and seeing how far I could stretch a concept before it broke. <strong>Visual communication</strong> helped translate fuzzy AI ideas into something I could react to — and more importantly, test.</p></blockquote><h2 id="wednesday-deciding-aka-kate-tries-to-get-ai-to-pick-a-side">Wednesday: Deciding (aka Kate Tries to Get AI to Pick a Side)</h2><p><em>Design sprint teams spend Day 3 critiquing each of their potential solutions to shortlist those that have the best chance of achieving their long-term goal. The winning scenes from the sketches are then woven into a prototype storyboard.</em></p><p>Design sprint Wednesdays were Kate’s least favorite day. After all the generative energy during Sketching Tuesday, today, she would have to decide on one clear solution to prototype and test. She was unsure if AI would be much help with judging tradeoffs or narrowing down options, and it wouldn’t be able to critique like a team. Or could it?</p><p>Kate reviewed each of the five concepts, noting strengths, open questions, and potential risks. Curious about how AI would respond, she uploaded images of three different design concepts and prompted ChatGPT for strengths and weaknesses. AI’s critique was helpful in summarizing the pros and cons of different concepts, including a few points she had not considered — like potential privacy concerns.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/4-speed-critique-uploaded-concept.png"><img alt="Speed Critique (Strengths and Weaknesses) of an uploaded concept" decoding="async" fetchpriority="low" height="538" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/4-speed-critique-uploaded-concept.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/4-speed-critique-uploaded-concept.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/4-speed-critique-uploaded-concept.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/4-speed-critique-uploaded-concept.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/4-speed-critique-uploaded-concept.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/4-speed-critique-uploaded-concept.png 2000w" width="800"></img></a><figcaption>Speed Critique (Strengths and Weaknesses) of an uploaded concept. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/4-speed-critique-uploaded-concept.png">Large preview</a>)</figcaption></figure><p>She asked a few follow-up questions to confirm the actual reasoning. Wondering if she could simulate a team critique by prompting ChatGPT differently, Kate asked it to use the <a href="https://www.debonogroup.com/services/core-programs/six-thinking-hats/">6 thinking hats technique</a>. The results came back dense, overwhelming, and unfocused. The AI couldn’t prioritize, and it couldn’t see the gaps Kate instinctively noticed: friction in onboarding, misaligned tone, unclear next steps.</p><p>In that moment, the promise of AI felt overhyped. Kate stood up, stretched, and seriously considered ending her experiments with the AI-driven process. But she paused. Maybe the problem wasn’t the tool. Maybe it was <em>how</em> she was using it. She made a note to experiment when she wasn’t on a design sprint clock.</p><p>She returned to her sketches, this time laying them out on the wall. No screens, no prompts. Just markers, sticky notes, and Sharpie scribbles. Human judgment took over. Kate worked with her product partner to finalize the solution to test on Friday and spent the next hour storyboarding the experience in Figma.</p><p>Kate re-engaged with AI as a reviewer, not a decider. She prompted it for feedback on the storyboard and was surprised to see it spit out detailed design, content, and micro-interaction suggestions for each of the steps of the storyboarded experience. A lot of food for thought, but she’d have to judge what mattered when she created her prototype. But that wasn’t until tomorrow!</p><h3 id="kate-s-reflection-2">Kate’s Reflection</h3><blockquote>AI exposed a few of my blind spots in the critique, which was good, but it basically pointed out that multiple options “could work”. I had to rely on my <strong>critical thinking</strong> and instincts to weigh options logically, emotionally, and contextually in order to choose a direction that was the most testable and aligned with the user feedback from Day 1.<p>I was also surprised by the suggestions it came up with while reviewing my final storyboard, but I will need a fresh pair of eyes and all the human judgement I can muster tomorrow.</p><p><strong>Empathy</strong> helped me walk through the flow like I was a new user. <strong>Visual communication</strong> helped pull it all together by turning abstract steps into a real storyboard for the team to see instead of imagining.</p><p><strong>TO DO</strong>: Experiment prompting around the 6 Thinking Hats for different perspectives.</p></blockquote><h2 id="thursday-prototype-aka-kate-and-faking-it">Thursday: Prototype (aka Kate And Faking It)</h2><p><em>On Day 4, the team usually turns the storyboard from the previous day into a prototype that can be tested with users on Day 5. The prototype doesn’t need to be fully functional; a simulated experience is sufficient to gather user feedback.</em></p><p>Kate’s prototype day often consisted of marathon Figma Design sessions and late-night pizza dinners. She was hoping AI would change that today. She fed yesterday’s storyboard to ChatGPT and asked it for screens. It took a while to generate, but she was excited to see a screen flow gradually appear on her screen, except that it had 3 ¾ screens, instead of the 6 frames from her storyboard, as you can see in the image below.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/5-chat-gpt-half-baked-screens.png"><img alt="ChatGPT’s half-baked (actually, 3 ¾th baked) screens." decoding="async" fetchpriority="low" height="533" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/5-chat-gpt-half-baked-screens.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/5-chat-gpt-half-baked-screens.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/5-chat-gpt-half-baked-screens.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/5-chat-gpt-half-baked-screens.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/5-chat-gpt-half-baked-screens.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/5-chat-gpt-half-baked-screens.png 2000w" width="800"></img></a><figcaption>ChatGPT’s half-baked (actually, 3 ¾<sup>th</sup> baked) screens. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/5-chat-gpt-half-baked-screens.png">Large preview</a>)</figcaption></figure><p>She tried different prompts but couldn’t get a complete flow. She was excited when it offered to create a Figma file. She waited. And waited. And reminded it that she was right there waiting. It finally gave her a link — a link that didn’t work. That made her question why she needed prototype screens in Figma at all. Could one of those no-code tools do the job? Kate remembered that she had just received beta access to <a href="https://www.figma.com/make/">Figma Make</a> (Figma’s AI prompt-to-prototype tool) and decided to put it to the test.</p><p>She shared her storyboard, added context about the prototype for a design sprint, the problem, and a brief description of the audience. In a few seconds, she saw code being generated and a running description on the left. It seemed like it would take some time, so she headed to the cafeteria for lunch.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/6-initial-prototype-figma-make.png"><img alt="Initial prototype created by Figma Make based on a prompt with the storyboard" decoding="async" fetchpriority="low" height="559" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/6-initial-prototype-figma-make.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/6-initial-prototype-figma-make.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/6-initial-prototype-figma-make.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/6-initial-prototype-figma-make.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/6-initial-prototype-figma-make.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/6-initial-prototype-figma-make.png 2000w" width="800"></img></a><figcaption>Initial prototype created by Figma Make based on a prompt with the storyboard. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/6-initial-prototype-figma-make.png">Large preview</a>)</figcaption></figure><p>When Kate returned, she was surprised to see Figma Make had created an app along with a detailed explanation:</p><blockquote>“I’ve created a complete finance app prototype with five key screens that guide users through setting financial goals in a friendly, low-pressure way. The app features smooth animations with Framer Motion, a progress indicator to show users where they are in the journey, and emotionally supportive visuals and copy throughout the experience. Each screen serves a specific purpose: welcoming users, helping them define relatable goals, building their plan with visual feedback, presenting a simple summary, and offering next steps without pressure.<p>You might want to:<ul><li>Add personalization options like user profiles or avatars.</li><li>Implement a dark mode toggle for accessibility.</li><li>Create additional goal templates and saving strategies.”</li></ul></p></blockquote><p>Since Figma Make had built the prototype, not her, Kate felt like she was User 0, and clicked her way through the interactive prototype, making a mental note of what worked, what didn’t. She was impressed to see that she could not only select a common goal (buy a home, save for education, and so on) but she could also create her own goal (<em>hello De’Longhi Coffee Maker</em>) and it carried over for the rest of the experience. This was something she had never been able to do in Figma Design!</p><p>Despite some obvious misses like a missing header and navigation, and some buttons not working, she was impressed! Kate tried the option to ‘Publish’ and it gave her a link that she immediately shared with her product and engineering partners. A few minutes later, they joined her in the conference room, exploring it together. The engineer scanned the code, didn’t seem impressed, but said it would work as a disposable prototype.</p><p>Kate prompted Figma Make to add an orange header and app navigation, and this time the trio kept their eyes peeled as they saw the progress in code and in English. The results were pretty good. They spent the next hour making changes to get it ready for testing. Even though he didn’t admit it, the engineer seemed impressed with the result, if not the code.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/7-finalized-prototype-screenshots-figma-make.png"><img alt="Finalized prototype screenshots from the interactive Figma Make prototype" decoding="async" fetchpriority="low" height="302" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/7-finalized-prototype-screenshots-figma-make.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/7-finalized-prototype-screenshots-figma-make.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/7-finalized-prototype-screenshots-figma-make.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/7-finalized-prototype-screenshots-figma-make.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/7-finalized-prototype-screenshots-figma-make.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/7-finalized-prototype-screenshots-figma-make.png 2000w" width="800"></img></a><figcaption>Finalized prototype screenshots from the interactive <a href="https://zone-crush-76141775.figma.site/">Figma Make prototype</a>. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/7-finalized-prototype-screenshots-figma-make.png">Large preview</a>)</figcaption></figure><p>By late afternoon, they had a <a href="https://zone-crush-76141775.figma.site">functioning interactive prototype</a>. Kate fed ChatGPT the prototype link and asked it to create a usability testing script. It came up with a basic, but complete test script, including a checklist for observers to take notes.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/8-initial-usability-testing-script-ai.png"><img alt="Initial usability testing script generated by AI" decoding="async" fetchpriority="low" height="506" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/8-initial-usability-testing-script-ai.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/8-initial-usability-testing-script-ai.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/8-initial-usability-testing-script-ai.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/8-initial-usability-testing-script-ai.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/8-initial-usability-testing-script-ai.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/8-initial-usability-testing-script-ai.png 2000w" width="800"></img></a><figcaption>Initial usability testing script generated by AI. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/8-initial-usability-testing-script-ai.png">Large preview</a>)</figcaption></figure><p>Kate went through the script carefully and updated it to add probing questions about AI transparency, emotional check-ins, more specific task scenarios, and a post-test debrief that looped back to the sprint goal.</p><p>Kate did a dry run with her product partner, who teased her: <em>“Did you really need me? Couldn’t your AI do it?”</em> It hadn’t occurred to her, but she was now curious!</p><blockquote>“Act as a Gen Z user seeing this interactive prototype for the first time. How would you react to the language, steps, and tone? What would make you feel more confident or in control?”</blockquote><p>It worked! ChatGPT simulated user feedback for the first screen and asked if she wanted it to continue. <em>“Yes, please,”</em> she typed. A few seconds later, she was reading what could have very well been a screen-by-screen transcript from a test.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/9-ai-generated-feedback-prototype.png"><img alt="AI-generated feedback about the prototype" decoding="async" fetchpriority="low" height="467" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/9-ai-generated-feedback-prototype.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/9-ai-generated-feedback-prototype.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/9-ai-generated-feedback-prototype.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/9-ai-generated-feedback-prototype.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/9-ai-generated-feedback-prototype.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/9-ai-generated-feedback-prototype.png 2000w" width="800"></img></a><figcaption>AI-generated feedback about the prototype. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/9-ai-generated-feedback-prototype.png">Large preview</a>)</figcaption></figure><p>Kate was still processing what she had seen as she drove home, happy she didn’t have to stay late. The simulated test using AI appeared impressive at first glance. But the more she thought about it, the more disturbing it became. The output didn’t mention what the simulated user clicked, and if she had asked, she probably would have received an answer. But how useful would that be? After almost missing her exit, she forced herself to think about eating a relaxed meal at home instead of her usual Prototype-Thursday-Multitasking-Pizza-Dinner.</p><h3 id="kate-s-reflection-3">Kate’s Reflection</h3><blockquote>Today was the most meta I’ve felt all week: building a prototype about AI, with AI, while being coached by AI. And it didn’t all go the way I expected.<p>While ChatGPT didn’t deliver prototype screens, Figma Make coded a working, interactive prototype with interactions I couldn’t have built in Figma Design. I used <strong>curiosity</strong> and <strong>experimentation</strong> today, by asking: What if I reworded this? What if I flipped that flow?</p><p>AI moved fast, but I had to keep steering. But I have to admit that tweaking the prototype by changing the words, not code, felt like magic!</p><p><strong>Critical thinking</strong> isn’t optional anymore — it is table stakes.</p><p>My impromptu ask of ChatGPT to simulate a Gen Z user testing my flow? That part both impressed and unsettled me. I’m going to need time to process this. But that can wait until next week. Tomorrow, I test with 5 Gen Zs — real people.</p></blockquote><h2 id="friday-test-aka-prototype-meets-user">Friday: Test (aka Prototype Meets User)</h2><p><em>Day 5 in a design sprint is a culmination of the week’s work from understanding the problem, exploring solutions, choosing the best, and building a prototype. It’s when teams interview users and learn by watching them react to the prototype and seeing if it really matters to them.</em></p><p>As Kate prepped for the tests, she grounded herself in the sprint problem statement and the users: “<em>How might we help Gen Z users confidently take their first financial action in our app — in a way that feels simple, safe, and puts them in control?”</em></p><p>She clicked through the prototype one last time — the link still worked! And just in case, she also had screenshots saved.</p><p>Kate moderated the five tests while her product and engineering partners observed. The prototype may have been AI-generated, but the reactions were human. She observed where people hesitated, what made them feel safe and in control. Based on the participant, she would pivot, go off-script, and ask clarifying questions, getting deeper insights.</p><p>After each session, she dropped the transcripts and their notes into ChatGPT, asking it to summarize that user’s feedback into pain points, positive signals, and any relevant quotes. At the end of the five rounds, Kate prompted them for recurring themes to use as input for their reflection and synthesis.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/10-ai-generated-synthesis-usability-testing.png"><img alt="AI-generated synthesis of the Day 5 usability testing" decoding="async" fetchpriority="low" height="499" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/10-ai-generated-synthesis-usability-testing.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/10-ai-generated-synthesis-usability-testing.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/10-ai-generated-synthesis-usability-testing.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/10-ai-generated-synthesis-usability-testing.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/10-ai-generated-synthesis-usability-testing.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/10-ai-generated-synthesis-usability-testing.png 2000w" width="800"></img></a><figcaption>AI-generated synthesis of the Day 5 usability testing. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/10-ai-generated-synthesis-usability-testing.png">Large preview</a>)</figcaption></figure><p>The trio combed through the results, with an eye out for any suspicious AI-generated results. They ran into one: <em>“Users Trust AI”</em>. Not one user mentioned or clicked the ‘Why this?’ link, but AI possibly assumed transparency features worked because they were available in the prototype.</p><p>They agreed that the prototype resonated with users, allowing all to easily set their financial goals, and identified a couple of opportunities for improvement: better explaining AI-generated plans and celebrating “win” moments after creating a plan. Both were fairly easy to address during their product build process.</p><p>That was a nice end to the week: another design sprint wrapped, and Kate’s first AI-augmented design sprint! She started Monday anxious about falling behind, overwhelmed by options. She closed Friday confident in a validated concept, grounded in real user needs, and empowered by tools she now knew how to steer.</p><h3 id="kate-s-reflection-4">Kate’s Reflection</h3><blockquote>Test driving my prototype with AI yesterday left me impressed and unsettled. But today’s tests with people reminded me why we test with real users, not proxies or people who interact with users, but actual end users. And GenAI is not the user. Five tests put my designerly skill of <strong>observation</strong> to the test.<p>GenAI helped summarize the test transcripts quickly but snuck in one last hallucination this week — about AI! With AI, don’t trust — always verify! <strong>Critical thinking</strong> is not going anywhere.</p><p>AI can move fast with words, but only people can use <strong>empathy</strong> to move beyond words to truly understand human emotions.</p><p>My next goal is to learn to talk to AI better, so I can get better results.</p></blockquote><h2 id="conclusion">Conclusion</h2><p>Over the course of five days, Kate explored how AI could fit into her UX work, not by reading articles or LinkedIn posts, but by doing. Through daily experiments, iterations, and missteps, she got comfortable with AI as a collaborator to support a design sprint. It accelerated every stage: synthesizing user feedback, generating divergent ideas, giving feedback, and even spinning up a working prototype, as shown below.</p><figure><a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/11-design-sprint-ai.png"><img alt="Design Sprint with AI" decoding="async" fetchpriority="low" height="284" loading="lazy" sizes="100vw" src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/11-design-sprint-ai.png" srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/11-design-sprint-ai.png 400w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/11-design-sprint-ai.png 800w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/11-design-sprint-ai.png 1200w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/11-design-sprint-ai.png 1600w,&#xA;https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/week-in-life-ai-augmented-designer/11-design-sprint-ai.png 2000w" width="800"></img></a><figcaption>Design Sprint with AI. (<a href="https://files.smashing.media/articles/week-in-life-ai-augmented-designer/11-design-sprint-ai.png">Large preview</a>)</figcaption></figure><p>What was clear by Friday was that speed isn’t insight. While AI produced outputs fast, it was Kate’s designerly skills — <strong>curiosity</strong>, <strong>empathy</strong>, <strong>observation</strong>, <strong>visual communication</strong>, <strong>experimentation</strong>, and most importantly, <strong>critical thinking</strong> and a <strong>growth mindset</strong> — that turned data and patterns into meaningful insights. She stayed in the driver’s seat, verifying claims, adjusting prompts, and applying judgment where automation fell short.</p><p>She started the week on Monday, overwhelmed, her confidence dimmed by uncertainty and the noise of AI hype. She questioned her relevance in a rapidly shifting landscape. By Friday, she not only had a validated concept but had also reshaped her entire approach to design. She had evolved: from AI-curious to AI-confident, from reactive to proactive, from unsure to empowered. Her mindset had shifted: AI was no longer a threat or trend; it was like a smart intern she could direct, critique, and collaborate with. She didn’t just adapt to AI. She redefined what it meant to be a designer in the age of AI.</p><p>The experience raised deeper questions: How do we make sure AI-augmented outputs are not made up? How should we treat AI-generated user feedback? Where do ethics and human responsibility intersect?</p><p>Besides a validated solution to their design sprint problem, Kate had prototyped a new way of working as an AI-augmented designer.</p><p>The question now isn’t just <em>“Should designers use AI?”</em>. It’s <em>“How do we work with AI responsibly, creatively, and consciously?”</em>. That’s what the next article will explore: designing your interactions with AI using a repeatable framework.</p><p><strong>Poll</strong>: If you could design your own AI assistant, what would it do?</p><ul><li>Assist with ideation?</li><li>Research synthesis?</li><li>Identify customer pain points?</li><li>Or something else entirely?</li></ul><p><a href="https://forms.gle/tSsZzy92VVrjuPQX8">Share your idea</a>, and in the spirit of learning by doing, we’ll build one together from scratch in the third article of this series: Building your own CustomGPT.</p><h3 id="resources">Resources</h3><ul><li><a href="https://www.amazon.com/Sprint-Solve-Problems-Test-Ideas/dp/150112174X">Sprint: How to Solve Big Problems and Test New Ideas in Just Five Days</a>, by Jake Knapp</li><li><a href="https://www.gv.com/sprint/">The Design Sprint</a></li><li><a href="https://www.figma.com/make/">Figma Make</a></li><li>“<a href="https://gizmodo.com/openai-appeals-sweeping-unprecedented-order-requiring-it-maintain-all-chatgpt-logs-2000612405">OpenAI Appeals ‘Sweeping, Unprecedented Order’ Requiring It Maintain All ChatGPT Logs</a>”, Vanessa Taylor</li></ul><p><strong>Tools</strong></p><p>As mentioned earlier, ChatGPT was the general-purpose LLM Kate leaned on, but you could swap it out for Claude, Gemini, Copilot, or other competitors and likely get similar results (or at least similarly weird surprises). Here are some alternate AI tools that might suit each sprint stage even better. Note that with dozens of new AI tools popping up every week, this list is far from exhaustive.</p><table><thead><tr><th>Stage</th><th>Tools</th><th>Capability</th></tr></thead><tbody><tr><td><strong>Understand</strong></td><td>Dovetail, UserTesting’s Insights Hub, <a href="http://heymarvin.com">Marvin</a></td><td>Summarize &amp; Synthesize data</td></tr><tr><td><strong>Sketch</strong></td><td>Any LLM, <a href="https://musely.ai/tools/ideation-tool">Musely</a></td><td>Brainstorm concepts and ideas</td></tr><tr><td><strong>Decide</strong></td><td>Any LLM</td><td>Critique/provide feedback</td></tr><tr><td><strong>Prototype</strong></td><td><a href="http://uizard.io">UIzard</a>, <a href="http://uxpilot.ai">UXPilot</a>, <a href="http://visily.ai">Visily</a>, <a href="http://krisspy.ai">Krisspy</a>, Figma Make, Lovable, Bolt</td><td>Create wireframes and prototypes</td></tr><tr><td><strong>Test</strong></td><td>UserTesting, UserInterviews, PlaybookUX, <a href="http://maze.co">Maze</a>, plus tools from the Understand stage</td><td>Moderated and unmoderated user tests/synthesis</td></tr></tbody></table><div><img alt="Smashing Editorial" decoding="async" height="46" loading="lazy" src="https://www.smashingmagazine.com/images/logo/logo--red.png" width="35"></img> <span>(yk)</span></div></div></div></div><br><span style='font: #ff0000'>Generated by <a href='https://github.com/andreskrey/readability.php'>Readability.php</a>.</span> hello@smashingmagazine.com (Lyndon Cerejo)