{"@attributes":{"version":"2.0"},"channel":{"title":"CSS Wizardry","description":"\u2013 Web Performance and Site Speed Consultant","link":"https:\/\/csswizardry.com\/","item":[{"title":"font-family Doesn\u2019t Fall Back the Way You Think","description":"A quick but important reminder that font-family declarations don\u2019t inherit fallback stacks the way many developers assume.","pubDate":"Fri, 10 Apr 2026 11:30:00 +0000","link":"https:\/\/csswizardry.com\/2026\/04\/font-family-doesnt-fall-back-the-way-you-think\/","guid":"https:\/\/csswizardry.com\/2026\/04\/font-family-doesnt-fall-back-the-way-you-think\/"},{"title":"What Is CSS Containment and How Can I Use It?","description":"CSS containment lets you isolate layout and paint work to self-contained \u2018islands\u2019. Here\u2019s what each contain value does and how to use it safely.","pubDate":"Thu, 02 Apr 2026 11:30:00 +0000","link":"https:\/\/csswizardry.com\/2026\/04\/what-is-css-containment-and-how-can-i-use-it\/","guid":"https:\/\/csswizardry.com\/2026\/04\/what-is-css-containment-and-how-can-i-use-it\/"},{"title":"When All You Can Do Is All or Nothing, Do Nothing","description":"If your design system can only apply `loading=lazy` or `fetchpriority=high` blindly, it may be safer not to apply them at all.","pubDate":"Mon, 30 Mar 2026 11:30:00 +0000","link":"https:\/\/csswizardry.com\/2026\/03\/when-all-you-can-do-is-all-or-nothing-do-nothing\/","guid":"https:\/\/csswizardry.com\/2026\/03\/when-all-you-can-do-is-all-or-nothing-do-nothing\/"},{"title":"Low- and Mid-Tier Mobile for the Real World (2025)","description":"Discover the most representative low- and mid-tier mobile devices for web performance testing in 2025.","pubDate":"Mon, 18 Aug 2025 11:23:19 +0000","link":"https:\/\/csswizardry.com\/2025\/08\/low-and-mid-tier-mobile-for-the-real-world-2025\/","guid":"https:\/\/csswizardry.com\/2025\/08\/low-and-mid-tier-mobile-for-the-real-world-2025\/"},{"title":"The Fastest Site in the Tour de France","description":"How fast are pro cycling teams\u2019 and manufacturers\u2019 websites? A CrRRUX-powered deep dive into bike brand performance, visibility, and missed opportunities.","pubDate":"Sun, 27 Jul 2025 11:17:41 +0000","link":"https:\/\/csswizardry.com\/2025\/07\/the-fastest-site-in-the-tour-de-france\/","guid":"https:\/\/csswizardry.com\/2025\/07\/the-fastest-site-in-the-tour-de-france\/"},{"title":"Making Sense of the Performance Extensibility API","description":"Making sense\u2014and use!\u2014of the new Performance Extensibility API in Chrome DevTools.","pubDate":"Fri, 25 Jul 2025 15:15:11 +0000","link":"https:\/\/csswizardry.com\/2025\/07\/the-extensibility-api\/","guid":"https:\/\/csswizardry.com\/2025\/07\/the-extensibility-api\/"},{"title":"Why Do We Have a Cache-Control Request Header?","description":"Learn how the Cache-Control request header works, how browsers handle refresh and hard refresh caching, and when developers should use it themselves.","pubDate":"Fri, 07 Mar 2025 15:55:04 +0000","link":"https:\/\/csswizardry.com\/2025\/03\/why-do-we-have-a-cache-control-request-header\/","guid":"https:\/\/csswizardry.com\/2025\/03\/why-do-we-have-a-cache-control-request-header\/"},{"title":"HTML Is Not a Programming Language\u2026","description":"Is HTML a programming language? In this short post, I explore why HTML is powerful, fundamental, and essential\u2014but not a programming language.","pubDate":"Mon, 10 Feb 2025 18:09:04 +0000","link":"https:\/\/csswizardry.com\/2025\/02\/html-is-not-a-programming-language\/","guid":"https:\/\/csswizardry.com\/2025\/02\/html-is-not-a-programming-language\/"},{"title":"Build for the Web, Build on the Web, Build with the Web","description":"What is the real, long-term cost of adopting a JavaScript framework?","pubDate":"Thu, 23 Jan 2025 13:01:19 +0000","link":"https:\/\/csswizardry.com\/2025\/01\/build-for-the-web-build-on-the-web-build-with-the-web\/","guid":"https:\/\/csswizardry.com\/2025\/01\/build-for-the-web-build-on-the-web-build-with-the-web\/"},{"title":"Licensing Code on CSS Wizardry","description":"I\u2019ve recently decided to apply the permissive MIT License to all content on CSS Wizardry by default. How does this affect you?","pubDate":"Wed, 04 Dec 2024 10:32:12 +0000","link":"https:\/\/csswizardry.com\/2024\/12\/licensing-code-on-css-wizardry\/","guid":"https:\/\/csswizardry.com\/2024\/12\/licensing-code-on-css-wizardry\/"},{"title":"A Layered Approach to Speculation Rules","description":"The new Speculation Rules API is incredibly powerful, but we can do so much more! By taking a layered approach, we can add more progressive functionality.","pubDate":"Mon, 02 Dec 2024 00:01:56 +0000","link":"https:\/\/csswizardry.com\/2024\/12\/a-layered-approach-to-speculation-rules\/","guid":"https:\/\/csswizardry.com\/2024\/12\/a-layered-approach-to-speculation-rules\/"},{"title":"Designing (and Evolving) a New Web Performance Score","description":"Why design another new performance score?! Good question\u2026","pubDate":"Tue, 26 Nov 2024 16:36:16 +0000","link":"https:\/\/csswizardry.com\/2024\/11\/designing-and-evolving-a-new-performance-score\/","guid":"https:\/\/csswizardry.com\/2024\/11\/designing-and-evolving-a-new-performance-score\/"},{"title":"Core Web Vitals Colours","description":"If, like me, you frequently require the Core Web Vitals colour palete, here it is!","pubDate":"Mon, 18 Nov 2024 15:04:11 +0000","link":"https:\/\/csswizardry.com\/2024\/11\/core-web-vitals-colours\/","guid":"https:\/\/csswizardry.com\/2024\/11\/core-web-vitals-colours\/"},{"title":"The Ultimate Contract Templates for Tech Consultants: Protect Your Business and Get Paid","description":"If you want to start consulting, you\u2019re gonna need some paperwork!","pubDate":"Tue, 01 Oct 2024 19:25:46 +0000","link":"https:\/\/csswizardry.com\/2024\/10\/the-ultimate-contract-templates-for-tech-consultants\/","guid":"https:\/\/csswizardry.com\/2024\/10\/the-ultimate-contract-templates-for-tech-consultants\/"},{"title":"Optimising for High Latency Environments","description":"We can\u2019t do much to change latency, so how can we work around it?","pubDate":"Mon, 16 Sep 2024 11:01:48 +0000","link":"https:\/\/csswizardry.com\/2024\/09\/optimising-for-high-latency-environments\/","guid":"https:\/\/csswizardry.com\/2024\/09\/optimising-for-high-latency-environments\/"},{"title":"Cache Grab: How Much Are You Leaving on the Table?","description":"Quantifying the importance of caching just got a lot easier","pubDate":"Mon, 19 Aug 2024 13:17:11 +0000","link":"https:\/\/csswizardry.com\/2024\/08\/cache-grab-how-much-are-you-leaving-on-the-table\/","guid":"https:\/\/csswizardry.com\/2024\/08\/cache-grab-how-much-are-you-leaving-on-the-table\/"},{"title":"blocking=render: Why would you do that?!","description":"Why on earth would you make something render-blocking?!","pubDate":"Wed, 14 Aug 2024 12:45:11 +0000","link":"https:\/\/csswizardry.com\/2024\/08\/blocking-render-why-whould-you-do-that\/","guid":"https:\/\/csswizardry.com\/2024\/08\/blocking-render-why-whould-you-do-that\/"},{"title":"Correctly Configure (Pre) Connections","description":"We\u2019re probably familiar with preconnect, but are we getting it right?","pubDate":"Sat, 09 Dec 2023 19:17:04 +0000","link":"https:\/\/csswizardry.com\/2023\/12\/correctly-configure-preconnections\/","guid":"https:\/\/csswizardry.com\/2023\/12\/correctly-configure-preconnections\/"},{"title":"The Three Cs: \ud83e\udd1d\u00a0Concatenate, \ud83d\udddc\ufe0f\u00a0Compress, \ud83d\uddf3\ufe0f\u00a0Cache","description":"We know we should do it, but do we know how?","pubDate":"Tue, 17 Oct 2023 00:00:00 +0000","link":"https:\/\/csswizardry.com\/2023\/10\/the-three-c-concatenate-compress-cache\/","guid":"https:\/\/csswizardry.com\/2023\/10\/the-three-c-concatenate-compress-cache\/"},{"title":"What Is the Maximum max-age?","description":"How long?! RFC9111 lets max-age reach 68 years\u2014far beyond the usual one that developers set. Here are the raw numbers, the spec, and when to use it.","pubDate":"Mon, 16 Oct 2023 14:18:39 +0000","link":"https:\/\/csswizardry.com\/2023\/10\/what-is-the-maximum-max-age\/","guid":"https:\/\/csswizardry.com\/2023\/10\/what-is-the-maximum-max-age\/"},{"title":"How to Clear Cache and Cookies on a Customer\u2019s Device","description":"There\u2019s a super quick and easy way to clear cache on your customers\u2019 devices. Are you using it yet?","pubDate":"Mon, 02 Oct 2023 15:30:49 +0000","link":"https:\/\/csswizardry.com\/2023\/10\/clear-cache-on-customer-device\/","guid":"https:\/\/csswizardry.com\/2023\/10\/clear-cache-on-customer-device\/"},{"title":"The Ultimate Low-Quality Image Placeholder Technique","description":"Can Low-Quality Image Placeholders and LCP play nicely together?","pubDate":"Thu, 28 Sep 2023 18:59:20 +0000","link":"https:\/\/csswizardry.com\/2023\/09\/the-ultimate-lqip-lcp-technique\/","guid":"https:\/\/csswizardry.com\/2023\/09\/the-ultimate-lqip-lcp-technique\/"},{"title":"Core Web Vitals for Search Engine Optimisation: What Do We Need to Know?","description":"There\u2019s still a lot of misunderstanding about CWV for SEO. Let\u2019s work it out together.","pubDate":"Mon, 24 Jul 2023 00:00:00 +0000","link":"https:\/\/csswizardry.com\/2023\/07\/core-web-vitals-for-search-engine-optimisation\/","guid":"https:\/\/csswizardry.com\/2023\/07\/core-web-vitals-for-search-engine-optimisation\/"},{"title":"The HTTP\/1-liness of HTTP\/2","description":"If HTTP\/2 is so much better, why does it look so similar to HTTP\/1?!","pubDate":"Tue, 11 Jul 2023 20:30:54 +0000","link":"https:\/\/csswizardry.com\/2023\/07\/the-http1liness-of-http2\/","guid":"https:\/\/csswizardry.com\/2023\/07\/the-http1liness-of-http2\/"},{"title":"In Defence of DOM\u00adContent\u00adLoaded","description":"Is there any reason to still measure the DOMContentLoaded event? Perhaps\u2026","pubDate":"Sat, 01 Jul 2023 00:01:19 +0000","link":"https:\/\/csswizardry.com\/2023\/07\/in-defence-of-domcontentloaded\/","guid":"https:\/\/csswizardry.com\/2023\/07\/in-defence-of-domcontentloaded\/"},{"title":"Site-Speed Topography Remapped","description":"Revisiting and remapping my Site-Speed Topography technique for assessing web performance at large","pubDate":"Wed, 07 Jun 2023 17:11:58 +0000","link":"https:\/\/csswizardry.com\/2023\/06\/site-speed-topography-remapped\/","guid":"https:\/\/csswizardry.com\/2023\/06\/site-speed-topography-remapped\/"},{"title":"Why Not document.write()?","description":"We\u2019re often told not to use document.write(), but\u2026 why?!","pubDate":"Tue, 10 Jan 2023 16:17:11 +0000","link":"https:\/\/csswizardry.com\/2023\/01\/why-not-document-write\/","guid":"https:\/\/csswizardry.com\/2023\/01\/why-not-document-write\/"},{"title":"Speeding Up Async Snippets","description":"Async snippets used to improve performance, but now they\u2019re a legacy anti-pattern. How do we handle them now?","pubDate":"Wed, 12 Oct 2022 20:48:12 +0000","link":"https:\/\/csswizardry.com\/2022\/10\/speeding-up-async-snippets\/","guid":"https:\/\/csswizardry.com\/2022\/10\/speeding-up-async-snippets\/"},{"title":"Critical CSS? Not So Fast!","description":"Critical CSS promises faster loading, but is it worth the complexity? Learn when Critical CSS actually boosts performance or when it might slow you down.","pubDate":"Tue, 06 Sep 2022 16:00:00 +0000","link":"https:\/\/csswizardry.com\/2022\/09\/critical-css-not-so-fast\/","guid":"https:\/\/csswizardry.com\/2022\/09\/critical-css-not-so-fast\/"},{"title":"Measure What You Impact, Not What You Influence","description":"When implementing performance fixes, it\u2019s imperative that you measure the right thing\u2014but what is \u2018right\u2019?","pubDate":"Wed, 24 Aug 2022 12:41:16 +0000","link":"https:\/\/csswizardry.com\/2022\/08\/measure-what-you-impact-not-what-you-influence\/","guid":"https:\/\/csswizardry.com\/2022\/08\/measure-what-you-impact-not-what-you-influence\/"},{"title":"Optimising Largest Contentful Paint","description":"Let\u2019s look at some more technical and non-obvious aspects of optimising Largest Contentful Paint","pubDate":"Mon, 28 Mar 2022 23:02:11 +0000","link":"https:\/\/csswizardry.com\/2022\/03\/optimising-largest-contentful-paint\/","guid":"https:\/\/csswizardry.com\/2022\/03\/optimising-largest-contentful-paint\/"},{"title":"Measuring Web Performance in Mobile Safari","description":"How often do you test your site in iOS Safari? Do you even know how?!","pubDate":"Fri, 26 Feb 2021 01:41:12 +0000","link":"https:\/\/csswizardry.com\/2021\/02\/measuring-network-performance-in-mobile-safari\/","guid":"https:\/\/csswizardry.com\/2021\/02\/measuring-network-performance-in-mobile-safari\/"},{"title":"Site-Speed Topography","description":"Learning the lay of the land","pubDate":"Tue, 03 Nov 2020 23:04:10 +0000","link":"https:\/\/csswizardry.com\/2020\/11\/site-speed-topography\/","guid":"https:\/\/csswizardry.com\/2020\/11\/site-speed-topography\/"},{"title":"Speed Up Google Fonts","description":"Google Fonts is fast. Now it\u2019s faster. Much faster.","pubDate":"Tue, 19 May 2020 17:35:04 +0000","link":"https:\/\/csswizardry.com\/2020\/05\/the-fastest-google-fonts\/","guid":"https:\/\/csswizardry.com\/2020\/05\/the-fastest-google-fonts\/"},{"title":"Real-World Effectiveness of Brotli","description":"How effective is Brotli, really?","pubDate":"Wed, 22 Apr 2020 10:28:20 +0000","link":"https:\/\/csswizardry.com\/2020\/04\/real-world-effectiveness-of-brotli\/","guid":"https:\/\/csswizardry.com\/2020\/04\/real-world-effectiveness-of-brotli\/"},{"title":"Performance Budgets, Pragmatically","description":"If you\u2019ve ever struggled to define performance budgets, this off-the-shelf trick is what you\u2019re looking for.","pubDate":"Wed, 08 Jan 2020 18:19:10 +0000","link":"https:\/\/csswizardry.com\/2020\/01\/performance-budgets-pragmatically\/","guid":"https:\/\/csswizardry.com\/2020\/01\/performance-budgets-pragmatically\/"},{"title":"Lazy Pre-Browsing with Prefetch","description":"Using prefetch for fun and profit","pubDate":"Thu, 15 Aug 2019 14:47:28 +0000","link":"https:\/\/csswizardry.com\/2019\/08\/lazy-pre-browsing-with-prefetch\/","guid":"https:\/\/csswizardry.com\/2019\/08\/lazy-pre-browsing-with-prefetch\/"},{"title":"Making Cloud.typography Fast(er)","description":"What issues does Hoefler&Co\u2019s Cloud.typography introduce, and how can we mitigate them?","pubDate":"Tue, 13 Aug 2019 09:51:11 +0000","link":"https:\/\/csswizardry.com\/2019\/08\/making-cloud-typography-faster\/","guid":"https:\/\/csswizardry.com\/2019\/08\/making-cloud-typography-faster\/"},{"title":"Time to First Byte: What It Is and How to Improve It","description":"Just how much does TTFB matter when it comes to front-end performance?","pubDate":"Thu, 08 Aug 2019 02:06:56 +0000","link":"https:\/\/csswizardry.com\/2019\/08\/time-to-first-byte-what-it-is-and-why-it-matters\/","guid":"https:\/\/csswizardry.com\/2019\/08\/time-to-first-byte-what-it-is-and-why-it-matters\/"},{"title":"Self-Host Your Static Assets","description":"Why is it so much better to self-host your static assets?","pubDate":"Fri, 31 May 2019 21:10:11 +0000","link":"https:\/\/csswizardry.com\/2019\/05\/self-host-your-static-assets\/","guid":"https:\/\/csswizardry.com\/2019\/05\/self-host-your-static-assets\/"},{"title":"Tips for Technical Interviews","description":"How can you prepare for and survive a technical interview?","pubDate":"Thu, 25 Apr 2019 15:19:18 +0000","link":"https:\/\/csswizardry.com\/2019\/04\/tips-for-technical-interviews\/","guid":"https:\/\/csswizardry.com\/2019\/04\/tips-for-technical-interviews\/"},{"title":"Cache-Control for Civilians","description":"What does Cache-Control really do? In basic terms? Let\u2019s find out!","pubDate":"Mon, 04 Mar 2019 01:21:39 +0000","link":"https:\/\/csswizardry.com\/2019\/03\/cache-control-for-civilians\/","guid":"https:\/\/csswizardry.com\/2019\/03\/cache-control-for-civilians\/"},{"title":"Bandwidth or Latency: When to Optimise for Which","description":"How can you tell when bandwidth or latency are your bottlenecks?","pubDate":"Thu, 31 Jan 2019 14:11:15 +0000","link":"https:\/\/csswizardry.com\/2019\/01\/bandwidth-or-latency-when-to-optimise-which\/","guid":"https:\/\/csswizardry.com\/2019\/01\/bandwidth-or-latency-when-to-optimise-which\/"},{"title":"ITCSS \u00d7 Skillshare","description":"The official introduction to ITCSS on Skillshare","pubDate":"Mon, 26 Nov 2018 17:04:10 +0000","link":"https:\/\/csswizardry.com\/2018\/11\/itcss-and-skillshare\/","guid":"https:\/\/csswizardry.com\/2018\/11\/itcss-and-skillshare\/"},{"title":"What If?","description":"How do we so often forget to ask the simple question: what if?","pubDate":"Fri, 23 Nov 2018 17:51:40 +0000","link":"https:\/\/csswizardry.com\/2018\/11\/what-if\/","guid":"https:\/\/csswizardry.com\/2018\/11\/what-if\/"},{"title":"CSS and Network Performance","description":"How can CSS impact network and resource-loading performance? Can things be that serious?","pubDate":"Fri, 09 Nov 2018 19:57:12 +0000","link":"https:\/\/csswizardry.com\/2018\/11\/css-and-network-performance\/","guid":"https:\/\/csswizardry.com\/2018\/11\/css-and-network-performance\/"},{"title":"The Three Types of Performance Testing","description":"How can we make it easier for businesses to understand when and what to measure?","pubDate":"Sat, 27 Oct 2018 10:02:39 +0000","link":"https:\/\/csswizardry.com\/2018\/10\/three-types-of-performance-testing\/","guid":"https:\/\/csswizardry.com\/2018\/10\/three-types-of-performance-testing\/"},{"title":"Getting to Know a Legacy Codebase","description":"What should you do when you first get launched into an old, sprawling CSS codebase?","pubDate":"Sat, 21 Jul 2018 13:02:54 +0000","link":"https:\/\/csswizardry.com\/2018\/07\/getting-to-know-a-legacy-codebase\/","guid":"https:\/\/csswizardry.com\/2018\/07\/getting-to-know-a-legacy-codebase\/"},{"title":"Image Inconsistencies: How and When Browsers Download Images","description":"How and when do browsers download certain types of image? What does that mean for performance?","pubDate":"Mon, 11 Jun 2018 19:02:54 +0000","link":"https:\/\/csswizardry.com\/2018\/06\/image-inconsistencies-how-and-when-browsers-download-images\/","guid":"https:\/\/csswizardry.com\/2018\/06\/image-inconsistencies-how-and-when-browsers-download-images\/"},{"title":"Identifying, Auditing, and Discussing Third Parties","description":"Gathering data about third-parties using free and open-source tooling","pubDate":"Mon, 21 May 2018 10:01:21 +0000","link":"https:\/\/csswizardry.com\/2018\/05\/identifying-auditing-discussing-third-parties\/","guid":"https:\/\/csswizardry.com\/2018\/05\/identifying-auditing-discussing-third-parties\/"},{"title":"My Digital Music Setup","description":"An overview of my hardware and software setup for listening to digital music","pubDate":"Mon, 02 Apr 2018 16:35:19 +0000","link":"https:\/\/csswizardry.com\/2018\/04\/my-digital-music-setup\/","guid":"https:\/\/csswizardry.com\/2018\/04\/my-digital-music-setup\/"},{"title":"Measuring the Hard-to-Measure","description":"How can we gather valuable data about previously hard-to-measure things?","pubDate":"Thu, 01 Mar 2018 13:45:19 +0000","link":"https:\/\/csswizardry.com\/2018\/03\/measuring-the-hard-to-measure\/","guid":"https:\/\/csswizardry.com\/2018\/03\/measuring-the-hard-to-measure\/"},{"title":"Finding Dead CSS","description":"Finding dead or unused CSS on a live website","pubDate":"Wed, 17 Jan 2018 14:25:19 +0000","link":"https:\/\/csswizardry.com\/2018\/01\/finding-dead-css\/","guid":"https:\/\/csswizardry.com\/2018\/01\/finding-dead-css\/"},{"title":"The Fallacies of Distributed Computing (Applied to Front-End Performance)","description":"What can front-end and performance engineers learn from the Fallacies of Distributed Computing?","pubDate":"Tue, 21 Nov 2017 09:51:11 +0000","link":"https:\/\/csswizardry.com\/2017\/11\/the-fallacies-of-distributed-computing-applied-to-front-end-performance\/","guid":"https:\/\/csswizardry.com\/2017\/11\/the-fallacies-of-distributed-computing-applied-to-front-end-performance\/"},{"title":"Ten Years Old","description":"csswizardry.com turns ten today!","pubDate":"Sun, 19 Nov 2017 00:00:00 +0000","link":"https:\/\/csswizardry.com\/2017\/11\/ten-years-old\/","guid":"https:\/\/csswizardry.com\/2017\/11\/ten-years-old\/"},{"title":"Relative Requirements","description":"Define the relative importance of project traits in order to make development smoother","pubDate":"Fri, 10 Nov 2017 18:23:12 +0000","link":"https:\/\/csswizardry.com\/2017\/11\/relative-requirements\/","guid":"https:\/\/csswizardry.com\/2017\/11\/relative-requirements\/"},{"title":"Airplanes and Ashtrays","description":"Sometimes you need to make it possible to do the wrong thing\u2026","pubDate":"Mon, 30 Oct 2017 12:53:49 +0000","link":"https:\/\/csswizardry.com\/2017\/10\/airplanes-and-ashtrays\/","guid":"https:\/\/csswizardry.com\/2017\/10\/airplanes-and-ashtrays\/"},{"title":"Performance and Resilience: Stress-Testing Third Parties","description":"Assessing the fragility and resilience of third party resources","pubDate":"Mon, 31 Jul 2017 16:10:13 +0000","link":"https:\/\/csswizardry.com\/2017\/07\/performance-and-resilience-stress-testing-third-parties\/","guid":"https:\/\/csswizardry.com\/2017\/07\/performance-and-resilience-stress-testing-third-parties\/"},{"title":"Refactoring Tunnels","description":"A metaphor for defining the scope of refactoring tasks","pubDate":"Fri, 02 Jun 2017 12:19:58 +0000","link":"https:\/\/csswizardry.com\/2017\/06\/refactoring-tunnels\/","guid":"https:\/\/csswizardry.com\/2017\/06\/refactoring-tunnels\/"},{"title":"Little Things I Like to Do with Git","description":"Handy Git tricks and aliases: leaderboards, praise, word-diff, branch history, daily recaps, changelog generation, and more in one quick guide.","pubDate":"Tue, 23 May 2017 14:39:29 +0000","link":"https:\/\/csswizardry.com\/2017\/05\/little-things-i-like-to-do-with-git\/","guid":"https:\/\/csswizardry.com\/2017\/05\/little-things-i-like-to-do-with-git\/"},{"title":"Writing Tidy Code","description":"Even the most inexperienced developers can write great looking code","pubDate":"Wed, 10 May 2017 12:45:56 +0000","link":"https:\/\/csswizardry.com\/2017\/05\/writing-tidy-code\/","guid":"https:\/\/csswizardry.com\/2017\/05\/writing-tidy-code\/"},{"title":"Configuring Git and Vim","description":"Both amazing tools in their own rights, how can we get both playing nicely together?","pubDate":"Thu, 16 Mar 2017 21:41:11 +0000","link":"https:\/\/csswizardry.com\/2017\/03\/configuring-git-and-vim\/","guid":"https:\/\/csswizardry.com\/2017\/03\/configuring-git-and-vim\/"},{"title":"Base64 Encoding & Performance, Part 2: Gathering Data","description":"Statistics, tests, and numbers looking at the performance costs of Base64","pubDate":"Sun, 12 Feb 2017 15:47:21 +0000","link":"https:\/\/csswizardry.com\/2017\/02\/base64-encoding-and-performance-part-2\/","guid":"https:\/\/csswizardry.com\/2017\/02\/base64-encoding-and-performance-part-2\/"},{"title":"Base64 Encoding & Performance, Part 1: What\u2019s Up with Base64?","description":"A look at the many huge disadvantages of Base64 encoding assets into your CSS","pubDate":"Sun, 12 Feb 2017 12:11:13 +0000","link":"https:\/\/csswizardry.com\/2017\/02\/base64-encoding-and-performance\/","guid":"https:\/\/csswizardry.com\/2017\/02\/base64-encoding-and-performance\/"},{"title":"Code Smells in CSS Revisited","description":"An update to my 2012 article, Code Smells in CSS","pubDate":"Wed, 08 Feb 2017 12:14:18 +0000","link":"https:\/\/csswizardry.com\/2017\/02\/code-smells-in-css-revisited\/","guid":"https:\/\/csswizardry.com\/2017\/02\/code-smells-in-css-revisited\/"},{"title":"Typography for Developers","description":"A look at the simple differences that developers and engineers can make in order to improve the quality of their typography","pubDate":"Mon, 06 Feb 2017 22:22:34 +0000","link":"https:\/\/csswizardry.com\/2017\/02\/typography-for-developers\/","guid":"https:\/\/csswizardry.com\/2017\/02\/typography-for-developers\/"},{"title":"Moving CSS Wizardry onto HTTPS and HTTP\/2","description":"Improving security and performance on CSS Wizardry","pubDate":"Wed, 25 Jan 2017 11:45:58 +0000","link":"https:\/\/csswizardry.com\/2017\/01\/moving-css-wizardry-onto-https-and-http-2\/","guid":"https:\/\/csswizardry.com\/2017\/01\/moving-css-wizardry-onto-https-and-http-2\/"},{"title":"Ack for CSS Developers","description":"Using the Ack tool to audit and profile your CSS","pubDate":"Tue, 17 Jan 2017 19:07:24 +0000","link":"https:\/\/csswizardry.com\/2017\/01\/ack-for-css-developers\/","guid":"https:\/\/csswizardry.com\/2017\/01\/ack-for-css-developers\/"},{"title":"A New Year, a New Focus","description":"In 2017, I want to begin shifting my focus more toward making things fast","pubDate":"Mon, 09 Jan 2017 21:44:13 +0000","link":"https:\/\/csswizardry.com\/2017\/01\/a-new-year-a-new-focus\/","guid":"https:\/\/csswizardry.com\/2017\/01\/a-new-year-a-new-focus\/"},{"title":"Preparing Vim for Apple\u2019s Touch Bar","description":"Apple are replacing their function row with a Touch Bar; how will this affect Vim?","pubDate":"Sun, 08 Jan 2017 22:30:47 +0000","link":"https:\/\/csswizardry.com\/2017\/01\/preparing-vim-for-apples-touch-bar\/","guid":"https:\/\/csswizardry.com\/2017\/01\/preparing-vim-for-apples-touch-bar\/"},{"title":"Choosing the Correct Average","description":"A look at which average works best for representing certain types of data","pubDate":"Wed, 04 Jan 2017 12:08:54 +0000","link":"https:\/\/csswizardry.com\/2017\/01\/choosing-the-correct-average\/","guid":"https:\/\/csswizardry.com\/2017\/01\/choosing-the-correct-average\/"},{"title":"CSS Shorthand Syntax Considered an Anti-Pattern","description":"Avoid using CSS\u2019 shorthand syntax","pubDate":"Mon, 12 Dec 2016 14:11:38 +0000","link":"https:\/\/csswizardry.com\/2016\/12\/css-shorthand-syntax-considered-an-anti-pattern\/","guid":"https:\/\/csswizardry.com\/2016\/12\/css-shorthand-syntax-considered-an-anti-pattern\/"},{"title":"CSS Wizardry Newsletter","description":"CSS Wizardry has just got itself a newsletter\u2026","pubDate":"Wed, 30 Nov 2016 17:27:11 +0000","link":"https:\/\/csswizardry.com\/2016\/11\/css-wizardry-newsletter\/","guid":"https:\/\/csswizardry.com\/2016\/11\/css-wizardry-newsletter\/"},{"title":"Nesting Your BEM?","description":"A look at the possible benefits of nesting BEM, and mitigating the side effects","pubDate":"Mon, 28 Nov 2016 12:50:39 +0000","link":"https:\/\/csswizardry.com\/2016\/11\/nesting-your-bem\/","guid":"https:\/\/csswizardry.com\/2016\/11\/nesting-your-bem\/"},{"title":"Improving Perceived Performance with Multiple Background Images","description":"Using CSS gradients and multiple backgrounds to improve resilience and perceived performance","pubDate":"Sun, 23 Oct 2016 22:53:18 +0000","link":"https:\/\/csswizardry.com\/2016\/10\/improving-perceived-performance-with-multiple-background-images\/","guid":"https:\/\/csswizardry.com\/2016\/10\/improving-perceived-performance-with-multiple-background-images\/"},{"title":"Continue Normalising Your CSS","description":"Why we should still be using Normalize.css","pubDate":"Wed, 19 Oct 2016 12:40:58 +0000","link":"https:\/\/csswizardry.com\/2016\/10\/continue-normalising-your-css\/","guid":"https:\/\/csswizardry.com\/2016\/10\/continue-normalising-your-css\/"},{"title":"Pure CSS Content Filter","description":"Experiment: Making a content filter using CSS","pubDate":"Sat, 15 Oct 2016 21:13:47 +0000","link":"https:\/\/csswizardry.com\/2016\/10\/pure-css-content-filter\/","guid":"https:\/\/csswizardry.com\/2016\/10\/pure-css-content-filter\/"},{"title":"Pragmatic, Practical, and Progressive Theming with Custom Properties","description":"A low-cost approach for providing user customisation in UI projects","pubDate":"Mon, 10 Oct 2016 19:25:19 +0000","link":"https:\/\/csswizardry.com\/2016\/10\/pragmatic-practical-progressive-theming-with-custom-properties\/","guid":"https:\/\/csswizardry.com\/2016\/10\/pragmatic-practical-progressive-theming-with-custom-properties\/"},{"title":"Refactoring CSS: The Three I\u2019s","description":"Three key steps to help you refactoring legacy code","pubDate":"Tue, 30 Aug 2016 20:11:12 +0000","link":"https:\/\/csswizardry.com\/2016\/08\/refactoring-css-the-three-i-s\/","guid":"https:\/\/csswizardry.com\/2016\/08\/refactoring-css-the-three-i-s\/"},{"title":"Speaker\u2019s Checklist: Before and After Your Talk","description":"Giving talks is stressful. Follow these tips to make the logistics of it a little simpler.","pubDate":"Mon, 20 Jun 2016 19:59:10 +0000","link":"https:\/\/csswizardry.com\/2016\/06\/speakers-checklist-before-and-after-your-talk\/","guid":"https:\/\/csswizardry.com\/2016\/06\/speakers-checklist-before-and-after-your-talk\/"},{"title":"Improving Your CSS with Parker","description":"Using static analysis to learn where to improve your CSS","pubDate":"Wed, 01 Jun 2016 10:23:16 +0000","link":"https:\/\/csswizardry.com\/2016\/06\/improving-your-css-with-parker\/","guid":"https:\/\/csswizardry.com\/2016\/06\/improving-your-css-with-parker\/"},{"title":"The Importance of !important: Forcing Immutability in CSS","description":"Forcing immutability in our utility classes by using !important","pubDate":"Sun, 08 May 2016 23:35:38 +0000","link":"https:\/\/csswizardry.com\/2016\/05\/the-importance-of-important\/","guid":"https:\/\/csswizardry.com\/2016\/05\/the-importance-of-important\/"},{"title":"Mixins Better for Performance","description":"A look at the performance difference between Sass\u2019 mixins and @extend","pubDate":"Thu, 25 Feb 2016 08:55:12 +0000","link":"https:\/\/csswizardry.com\/2016\/02\/mixins-better-for-performance\/","guid":"https:\/\/csswizardry.com\/2016\/02\/mixins-better-for-performance\/"},{"title":"Managing Typography on Large Apps","description":"A look at managing typography more practically on larger sites and apps","pubDate":"Sun, 21 Feb 2016 12:14:48 +0000","link":"https:\/\/csswizardry.com\/2016\/02\/managing-typography-on-large-apps\/","guid":"https:\/\/csswizardry.com\/2016\/02\/managing-typography-on-large-apps\/"},{"title":"White October Events Workshop Partnership","description":"An exciting new partnership to offer public workshops","pubDate":"Mon, 14 Sep 2015 15:34:12 +0000","link":"https:\/\/csswizardry.com\/2015\/09\/white-october-events-workshop-partnership\/","guid":"https:\/\/csswizardry.com\/2015\/09\/white-october-events-workshop-partnership\/"},{"title":"BEMIT: Taking the BEM Naming Convention a Step Further","description":"Adding further meaning and information to the BEM naming convention","pubDate":"Wed, 05 Aug 2015 20:01:58 +0000","link":"https:\/\/csswizardry.com\/2015\/08\/bemit-taking-the-bem-naming-convention-a-step-further\/","guid":"https:\/\/csswizardry.com\/2015\/08\/bemit-taking-the-bem-naming-convention-a-step-further\/"},{"title":"Travelling Like You Want to, When You Have To","description":"My own personal tips and tricks for surviving lots of air travel.","pubDate":"Sun, 21 Jun 2015 15:50:12 +0000","link":"https:\/\/csswizardry.com\/2015\/06\/travelling-like-you-want-to-when-you-have-to\/","guid":"https:\/\/csswizardry.com\/2015\/06\/travelling-like-you-want-to-when-you-have-to\/"},{"title":"Contextual Styling: UI Components, Nesting, and Implementation Detail","description":"How to style specific components when they\u2019re in specific locations","pubDate":"Sat, 13 Jun 2015 16:54:34 +0000","link":"https:\/\/csswizardry.com\/2015\/06\/contextual-styling-ui-components-nesting-and-implementation-detail\/","guid":"https:\/\/csswizardry.com\/2015\/06\/contextual-styling-ui-components-nesting-and-implementation-detail\/"},{"title":"Subtleties with Self-Chained Classes","description":"A brief note on some of the subtleties and oddities when chaining classes with themselves.","pubDate":"Thu, 11 Jun 2015 15:54:28 +0000","link":"https:\/\/csswizardry.com\/2015\/06\/subtleties-with-self-chained-classes\/","guid":"https:\/\/csswizardry.com\/2015\/06\/subtleties-with-self-chained-classes\/"},{"title":"Cyclomatic Complexity: Logic in CSS","description":"A look at how CSS has always contained logic and conditions","pubDate":"Sun, 26 Apr 2015 12:43:45 +0000","link":"https:\/\/csswizardry.com\/2015\/04\/cyclomatic-complexity-logic-in-css\/","guid":"https:\/\/csswizardry.com\/2015\/04\/cyclomatic-complexity-logic-in-css\/"},{"title":"Immutable CSS","description":"Treating CSS rules as being immutable","pubDate":"Wed, 11 Mar 2015 19:40:23 +0000","link":"https:\/\/csswizardry.com\/2015\/03\/immutable-css\/","guid":"https:\/\/csswizardry.com\/2015\/03\/immutable-css\/"},{"title":"Can CSS Be Too Modular?","description":"Looking at the dangers of abstracting CSS too far","pubDate":"Sun, 08 Mar 2015 14:15:41 +0000","link":"https:\/\/csswizardry.com\/2015\/03\/can-css-be-too-modular\/","guid":"https:\/\/csswizardry.com\/2015\/03\/can-css-be-too-modular\/"},{"title":"More Transparent UI Code with Namespaces","description":"Employing a suite of namespaces to make your UI code more readable and transparent","pubDate":"Fri, 06 Mar 2015 14:11:00 +0000","link":"https:\/\/csswizardry.com\/2015\/03\/more-transparent-ui-code-with-namespaces\/","guid":"https:\/\/csswizardry.com\/2015\/03\/more-transparent-ui-code-with-namespaces\/"},{"title":"When to use @extend; when to use a mixin","description":"When is it suitable to use Sass @extend or mixin features, and why?","pubDate":"Thu, 20 Nov 2014 16:15:48 +0000","link":"https:\/\/csswizardry.com\/2014\/11\/when-to-use-extend-when-to-use-a-mixin\/","guid":"https:\/\/csswizardry.com\/2014\/11\/when-to-use-extend-when-to-use-a-mixin\/"},{"title":"The Specificity Graph","description":"The Specificity Graph as a model for visualising specificity issues in your code","pubDate":"Wed, 29 Oct 2014 13:43:33 +0000","link":"https:\/\/csswizardry.com\/2014\/10\/the-specificity-graph\/","guid":"https:\/\/csswizardry.com\/2014\/10\/the-specificity-graph\/"},{"title":"CSS Wizardry Ltd.: Year 1 in review","description":"A look back on my first year of self employment","pubDate":"Fri, 24 Oct 2014 00:00:00 +0000","link":"https:\/\/csswizardry.com\/2014\/10\/css-wizardry-ltd-year-1-in-review\/","guid":"https:\/\/csswizardry.com\/2014\/10\/css-wizardry-ltd-year-1-in-review\/"},{"title":"CSS Guidelines 2.0.0","description":"Announcing the next iteration and business model of my popular CSS Guidelines document","pubDate":"Fri, 15 Aug 2014 13:20:21 +0000","link":"https:\/\/csswizardry.com\/2014\/08\/css-guidelines-2-0-0\/","guid":"https:\/\/csswizardry.com\/2014\/08\/css-guidelines-2-0-0\/"},{"title":"Advice to budding front-end developers","description":"A collation of the advice I regularly give out to new and emerging web developers","pubDate":"Tue, 05 Aug 2014 15:18:12 +0000","link":"https:\/\/csswizardry.com\/2014\/08\/advice-to-budding-front-end-developers\/","guid":"https:\/\/csswizardry.com\/2014\/08\/advice-to-budding-front-end-developers\/"},{"title":"CSS Wizardry referral scheme","description":"A way to say thank you to the individuals responsible for their companies hiring me","pubDate":"Mon, 04 Aug 2014 16:10:31 +0000","link":"https:\/\/csswizardry.com\/2014\/08\/csswizardry-referral-scheme\/","guid":"https:\/\/csswizardry.com\/2014\/08\/csswizardry-referral-scheme\/"},{"title":"Hacks for dealing with specificity","description":"A couple of quick hacks and tricks for manipulating specificity","pubDate":"Thu, 17 Jul 2014 11:50:14 +0000","link":"https:\/\/csswizardry.com\/2014\/07\/hacks-for-dealing-with-specificity\/","guid":"https:\/\/csswizardry.com\/2014\/07\/hacks-for-dealing-with-specificity\/"},{"title":"Vim for People Who Think Things Like Vim Are Weird and Hard","description":"An introduction to the whats and the whys of using Vim as your text editor","pubDate":"Mon, 23 Jun 2014 19:41:12 +0000","link":"https:\/\/csswizardry.com\/2014\/06\/vim-for-people-who-think-things-like-vim-are-weird-and-hard\/","guid":"https:\/\/csswizardry.com\/2014\/06\/vim-for-people-who-think-things-like-vim-are-weird-and-hard\/"},{"title":"Grouping related classes in your markup","description":"An interesting way of visually and \u2018physically\u2019 grouping multiple class attributes","pubDate":"Wed, 21 May 2014 16:40:12 +0000","link":"https:\/\/csswizardry.com\/2014\/05\/grouping-related-classes-in-your-markup\/","guid":"https:\/\/csswizardry.com\/2014\/05\/grouping-related-classes-in-your-markup\/"},{"title":"My Trello workflow","description":"How I manage development projects using Trello","pubDate":"Fri, 02 May 2014 21:34:30 +0000","link":"https:\/\/csswizardry.com\/2014\/05\/my-trello-workflow\/","guid":"https:\/\/csswizardry.com\/2014\/05\/my-trello-workflow\/"},{"title":"Naming UI components in OOCSS","description":"A way of giving complex, OOCSS-built components more meaningful names","pubDate":"Wed, 26 Mar 2014 18:04:31 +0000","link":"https:\/\/csswizardry.com\/2014\/03\/naming-ui-components-in-oocss\/","guid":"https:\/\/csswizardry.com\/2014\/03\/naming-ui-components-in-oocss\/"},{"title":"Use zero-width spaces to stop annoying Twitter users","description":"A little trick to stop mentioning Twitter users when you write @import, etc.","pubDate":"Tue, 21 Jan 2014 09:55:11 +0000","link":"https:\/\/csswizardry.com\/2014\/01\/use-zero-width-spaces-to-stop-annoying-twitter-users\/","guid":"https:\/\/csswizardry.com\/2014\/01\/use-zero-width-spaces-to-stop-annoying-twitter-users\/"},{"title":"Extending silent classes in Sass","description":"A simple trick for controlling the reach of Sass\u2019 `@extend`","pubDate":"Tue, 07 Jan 2014 12:57:05 +0000","link":"https:\/\/csswizardry.com\/2014\/01\/extending-silent-classes-in-sass\/","guid":"https:\/\/csswizardry.com\/2014\/01\/extending-silent-classes-in-sass\/"},{"title":"Workshop: Event Handler, London, February 2014","description":"My first workshop in association with the fine folk at Event Handler","pubDate":"Tue, 17 Dec 2013 12:42:19 +0000","link":"https:\/\/csswizardry.com\/2013\/12\/workshop-event-handler-london-february-2014\/","guid":"https:\/\/csswizardry.com\/2013\/12\/workshop-event-handler-london-february-2014\/"},{"title":"I wrote (part of) a book!","description":"My section in the latest Smashing Book","pubDate":"Mon, 16 Dec 2013 20:42:11 +0000","link":"https:\/\/csswizardry.com\/2013\/12\/i-wrote-part-of-a-book\/","guid":"https:\/\/csswizardry.com\/2013\/12\/i-wrote-part-of-a-book\/"},{"title":"My setup","description":"A brief overview of my tools and software I use for work","pubDate":"Thu, 05 Dec 2013 16:05:43 +0000","link":"https:\/\/csswizardry.com\/2013\/12\/my-setup\/","guid":"https:\/\/csswizardry.com\/2013\/12\/my-setup\/"},{"title":"The problems with \u2018crafting\u2019 code","description":"Some thoughts on our use of the word \u2018craft\u2019 to describe our work","pubDate":"Sun, 24 Nov 2013 13:25:12 +0000","link":"https:\/\/csswizardry.com\/2013\/11\/the-problems-with-crafting-code\/","guid":"https:\/\/csswizardry.com\/2013\/11\/the-problems-with-crafting-code\/"},{"title":"Taming data tables","description":"Laying out data tables in a consistent way, finally!","pubDate":"Fri, 22 Nov 2013 14:45:43 +0000","link":"https:\/\/csswizardry.com\/2013\/11\/taming-data-tables\/","guid":"https:\/\/csswizardry.com\/2013\/11\/taming-data-tables\/"},{"title":"Workshop: Smashing Workshops, Z\u00fcrich, December 2013","description":"Announcing my first workshop in association with Smashing Workshops","pubDate":"Wed, 06 Nov 2013 11:08:03 +0000","link":"https:\/\/csswizardry.com\/2013\/11\/workshop-smashing-workshops-zurich-december-2013\/","guid":"https:\/\/csswizardry.com\/2013\/11\/workshop-smashing-workshops-zurich-december-2013\/"},{"title":"Code reviews as a service","description":"A new service I\u2019m offering: remote code reviews","pubDate":"Mon, 04 Nov 2013 11:18:23 +0000","link":"https:\/\/csswizardry.com\/2013\/11\/code-reviews-as-service\/","guid":"https:\/\/csswizardry.com\/2013\/11\/code-reviews-as-service\/"},{"title":"Workshop: Make Do, Leeds, November 2013","description":"Announcing my first workshop in association with Make Do","pubDate":"Wed, 30 Oct 2013 09:00:00 +0000","link":"https:\/\/csswizardry.com\/2013\/10\/workshop-make-do-leeds-november-2013\/","guid":"https:\/\/csswizardry.com\/2013\/10\/workshop-make-do-leeds-november-2013\/"},{"title":"\u2018It\u2019s because you\u2019re polite.\u2019","description":"A personal post about helpfulness and politeness.","pubDate":"Mon, 28 Oct 2013 11:35:11 +0000","link":"https:\/\/csswizardry.com\/2013\/10\/its-because-youre-polite\/","guid":"https:\/\/csswizardry.com\/2013\/10\/its-because-youre-polite\/"},{"title":"Let\u2019s work together","description":"I\u2019m looking for amazing people to work with on great products.","pubDate":"Thu, 17 Oct 2013 17:35:15 +0000","link":"https:\/\/csswizardry.com\/2013\/10\/lets-work-together\/","guid":"https:\/\/csswizardry.com\/2013\/10\/lets-work-together\/"},{"title":"Make it count","description":"Everything you do, do it for a reason, and make that reason a good one.","pubDate":"Thu, 25 Jul 2013 11:48:19 +0000","link":"https:\/\/csswizardry.com\/2013\/07\/make-it-count\/","guid":"https:\/\/csswizardry.com\/2013\/07\/make-it-count\/"},{"title":"Speak The Web discount code","description":"Amazing events with 25% off!","pubDate":"Fri, 19 Jul 2013 09:59:51 +0000","link":"https:\/\/csswizardry.com\/2013\/07\/speak-the-web-discount-code\/","guid":"https:\/\/csswizardry.com\/2013\/07\/speak-the-web-discount-code\/"},{"title":"Leeds hangout","description":"I have a couple of days off in Leeds around two conferences; let\u2019s meet\u2026?","pubDate":"Wed, 10 Jul 2013 11:49:14 +0000","link":"https:\/\/csswizardry.com\/2013\/07\/leeds-hangout\/","guid":"https:\/\/csswizardry.com\/2013\/07\/leeds-hangout\/"},{"title":"Writing DRYer vanilla CSS","description":"DRYing out our CSS at its most basic level","pubDate":"Fri, 05 Jul 2013 13:41:25 +0000","link":"https:\/\/csswizardry.com\/2013\/07\/writing-dryer-vanilla-css\/","guid":"https:\/\/csswizardry.com\/2013\/07\/writing-dryer-vanilla-css\/"},{"title":"Hashed classes in CSS","description":"Spoofing the uniqueness of IDs by putting hashes in your classes","pubDate":"Tue, 28 May 2013 23:05:07 +0000","link":"https:\/\/csswizardry.com\/2013\/05\/hashed-classes-in-css\/","guid":"https:\/\/csswizardry.com\/2013\/05\/hashed-classes-in-css\/"},{"title":"\u2018Scope\u2019 in CSS","description":"Applying the concept of scope to our CSS","pubDate":"Wed, 22 May 2013 17:44:11 +0000","link":"https:\/\/csswizardry.com\/2013\/05\/scope-in-css\/","guid":"https:\/\/csswizardry.com\/2013\/05\/scope-in-css\/"},{"title":"The flag object","description":"A new OOCSS abstraction","pubDate":"Wed, 08 May 2013 18:07:29 +0000","link":"https:\/\/csswizardry.com\/2013\/05\/the-flag-object\/","guid":"https:\/\/csswizardry.com\/2013\/05\/the-flag-object\/"},{"title":"shame.css \u2013 full .net interview","description":"The full version of the .net magazine shame.css interview","pubDate":"Thu, 25 Apr 2013 18:56:00 +0000","link":"https:\/\/csswizardry.com\/2013\/04\/shame-css-full-net-interview\/","guid":"https:\/\/csswizardry.com\/2013\/04\/shame-css-full-net-interview\/"},{"title":"shame.css","description":"Keeping track of your hacks","pubDate":"Wed, 17 Apr 2013 20:47:02 +0000","link":"https:\/\/csswizardry.com\/2013\/04\/shame-css\/","guid":"https:\/\/csswizardry.com\/2013\/04\/shame-css\/"},{"title":".net award nominee","description":"I\u2019ve been nominated for a .net award!","pubDate":"Mon, 18 Mar 2013 00:22:02 +0000","link":"https:\/\/csswizardry.com\/2013\/03\/net-award-nominee\/","guid":"https:\/\/csswizardry.com\/2013\/03\/net-award-nominee\/"},{"title":"Introducing csswizardry-grids","description":"A responsive, fluid, nestable, Sass-based grid system.","pubDate":"Thu, 07 Feb 2013 00:22:02 +0000","link":"https:\/\/csswizardry.com\/2013\/02\/introducing-csswizardry-grids\/","guid":"https:\/\/csswizardry.com\/2013\/02\/introducing-csswizardry-grids\/"},{"title":"Responsive grid systems; a solution?","description":"A look at building a practical, robust,  flexible, usable responsive grid system.","pubDate":"Wed, 06 Feb 2013 21:41:22 +0000","link":"https:\/\/csswizardry.com\/2013\/02\/responsive-grid-systems-a-solution\/","guid":"https:\/\/csswizardry.com\/2013\/02\/responsive-grid-systems-a-solution\/"},{"title":"You know your context \u2013 on critical thinking and thinking for yourself","description":"About learning to look at things objectively and apply your own context","pubDate":"Tue, 29 Jan 2013 19:54:13 +0000","link":"https:\/\/csswizardry.com\/2013\/01\/you-know-your-context-on-critical-thinking-and-thinking-for-yourself\/","guid":"https:\/\/csswizardry.com\/2013\/01\/you-know-your-context-on-critical-thinking-and-thinking-for-yourself\/"},{"title":"MindBEMding \u2013 getting your head \u2019round BEM syntax","description":"A primer on the oft-confusing BEM notation for CSS","pubDate":"Fri, 25 Jan 2013 18:56:00 +0000","link":"https:\/\/csswizardry.com\/2013\/01\/mindbemding-getting-your-head-round-bem-syntax\/","guid":"https:\/\/csswizardry.com\/2013\/01\/mindbemding-getting-your-head-round-bem-syntax\/"},{"title":"Your logo is still an image\u2026 and so is mine!","description":"Balancing image semantics with performance ideals","pubDate":"Wed, 23 Jan 2013 18:33:00 +0000","link":"https:\/\/csswizardry.com\/2013\/01\/your-logo-is-still-an-image-and-so-is-mine\/","guid":"https:\/\/csswizardry.com\/2013\/01\/your-logo-is-still-an-image-and-so-is-mine\/"},{"title":"Front-end performance for web designers and front-end developers","description":"A comprehensive primer on front-end performance for designers and front-end developers","pubDate":"Sun, 20 Jan 2013 10:33:00 +0000","link":"https:\/\/csswizardry.com\/2013\/01\/front-end-performance-for-web-designers-and-front-end-developers\/","guid":"https:\/\/csswizardry.com\/2013\/01\/front-end-performance-for-web-designers-and-front-end-developers\/"},{"title":"Discussion via Branch","description":"Adding comments though Branch","pubDate":"Tue, 15 Jan 2013 20:40:00 +0000","link":"https:\/\/csswizardry.com\/2013\/01\/discussion-via-branch\/","guid":"https:\/\/csswizardry.com\/2013\/01\/discussion-via-branch\/"},{"title":"A new CSS Wizardry","description":"Big changes for CSS Wizardry","pubDate":"Fri, 21 Dec 2012 13:07:31 +0000","link":"https:\/\/csswizardry.com\/2012\/12\/a-new-css-wizardry\/","guid":"https:\/\/csswizardry.com\/2012\/12\/a-new-css-wizardry\/"},{"title":"My Git workflow for inuit.css","description":"A brief overview of how I use Git, specifically on inuit.css.","pubDate":"Thu, 06 Dec 2012 19:32:35 +0000","link":"https:\/\/csswizardry.com\/2012\/12\/my-git-workflow-for-inuit-css\/","guid":"https:\/\/csswizardry.com\/2012\/12\/my-git-workflow-for-inuit-css\/"},{"title":"Code smells in CSS","description":"The things I look out for when writing or reviewing CSS.","pubDate":"Tue, 20 Nov 2012 23:58:13 +0000","link":"https:\/\/csswizardry.com\/2012\/11\/code-smells-in-css\/","guid":"https:\/\/csswizardry.com\/2012\/11\/code-smells-in-css\/"},{"title":"A classless class\u2014on using more classes in your HTML","description":"An analogy to explain why it <em>is<\/em> a good idea to use more classes.","pubDate":"Tue, 16 Oct 2012 21:04:21 +0000","link":"https:\/\/csswizardry.com\/2012\/10\/a-classless-class-on-using-more-classes-in-your-html\/","guid":"https:\/\/csswizardry.com\/2012\/10\/a-classless-class-on-using-more-classes-in-your-html\/"},{"title":"Announcing pr.ofile.me","description":"A new project!","pubDate":"Sun, 14 Oct 2012 21:07:49 +0000","link":"https:\/\/csswizardry.com\/2012\/10\/announcing-pr-ofile-me\/","guid":"https:\/\/csswizardry.com\/2012\/10\/announcing-pr-ofile-me\/"},{"title":"inuit.css v4.0.0\u2014OOCSS, Sass and more","description":{},"pubDate":"Sun, 30 Sep 2012 14:38:15 +0000","link":"https:\/\/csswizardry.com\/2012\/09\/inuit-css-v4-oocss-sass-and-more\/","guid":"https:\/\/csswizardry.com\/2012\/09\/inuit-css-v4-oocss-sass-and-more\/"},{"title":"Canvas Conf, 2012","description":{},"pubDate":"Mon, 10 Sep 2012 09:06:57 +0000","link":"https:\/\/csswizardry.com\/2012\/09\/canvas-conf-2012\/","guid":"https:\/\/csswizardry.com\/2012\/09\/canvas-conf-2012\/"},{"title":"Tags in CSS files","description":{},"pubDate":"Tue, 07 Aug 2012 19:18:52 +0000","link":"https:\/\/csswizardry.com\/2012\/08\/tags-in-css-files\/","guid":"https:\/\/csswizardry.com\/2012\/08\/tags-in-css-files\/"},{"title":"Shoot to kill; CSS selector intent","description":{},"pubDate":"Tue, 17 Jul 2012 07:28:14 +0000","link":"https:\/\/csswizardry.com\/2012\/07\/shoot-to-kill-css-selector-intent\/","guid":"https:\/\/csswizardry.com\/2012\/07\/shoot-to-kill-css-selector-intent\/"},{"title":"Quasi-qualified CSS selectors","description":{},"pubDate":"Mon, 16 Jul 2012 18:11:31 +0000","link":"https:\/\/csswizardry.com\/2012\/07\/quasi-qualified-css-selectors\/","guid":"https:\/\/csswizardry.com\/2012\/07\/quasi-qualified-css-selectors\/"},{"title":"The open\/closed principle applied to CSS","description":{},"pubDate":"Thu, 21 Jun 2012 20:09:41 +0000","link":"https:\/\/csswizardry.com\/2012\/06\/the-open-closed-principle-applied-to-css\/","guid":"https:\/\/csswizardry.com\/2012\/06\/the-open-closed-principle-applied-to-css\/"},{"title":"Single-direction margin declarations","description":{},"pubDate":"Tue, 12 Jun 2012 18:11:59 +0000","link":"https:\/\/csswizardry.com\/2012\/06\/single-direction-margin-declarations\/","guid":"https:\/\/csswizardry.com\/2012\/06\/single-direction-margin-declarations\/"},{"title":"Keep your CSS selectors short","description":{},"pubDate":"Tue, 15 May 2012 19:35:38 +0000","link":"https:\/\/csswizardry.com\/2012\/05\/keep-your-css-selectors-short\/","guid":"https:\/\/csswizardry.com\/2012\/05\/keep-your-css-selectors-short\/"},{"title":"Front-Trends 2012","description":{},"pubDate":"Sun, 29 Apr 2012 18:25:58 +0000","link":"https:\/\/csswizardry.com\/2012\/04\/front-trends-2012\/","guid":"https:\/\/csswizardry.com\/2012\/04\/front-trends-2012\/"},{"title":"The single responsibility principle applied to CSS","description":{},"pubDate":"Sat, 28 Apr 2012 22:57:37 +0000","link":"https:\/\/csswizardry.com\/2012\/04\/the-single-responsibility-principle-applied-to-css\/","guid":"https:\/\/csswizardry.com\/2012\/04\/the-single-responsibility-principle-applied-to-css\/"},{"title":"My HTML\/CSS coding style","description":{},"pubDate":"Fri, 20 Apr 2012 18:58:53 +0000","link":"https:\/\/csswizardry.com\/2012\/04\/my-html-css-coding-style\/","guid":"https:\/\/csswizardry.com\/2012\/04\/my-html-css-coding-style\/"},{"title":"Comments on CSS Wizardry","description":{},"pubDate":"Mon, 16 Apr 2012 08:08:07 +0000","link":"https:\/\/csswizardry.com\/2012\/04\/comments-on-css-wizardry\/","guid":"https:\/\/csswizardry.com\/2012\/04\/comments-on-css-wizardry\/"},{"title":"Hacker News rebuttal","description":{},"pubDate":"Tue, 13 Mar 2012 01:29:12 +0000","link":"https:\/\/csswizardry.com\/2012\/03\/hacker-news-rebuttal\/","guid":"https:\/\/csswizardry.com\/2012\/03\/hacker-news-rebuttal\/"},{"title":"Pragmatic, practical font sizing in CSS","description":{},"pubDate":"Wed, 29 Feb 2012 23:49:06 +0000","link":"https:\/\/csswizardry.com\/2012\/02\/pragmatic-practical-font-sizing-in-css\/","guid":"https:\/\/csswizardry.com\/2012\/02\/pragmatic-practical-font-sizing-in-css\/"},{"title":"Breaking Good Habits\u2014The Digital Barn","description":{},"pubDate":"Sun, 12 Feb 2012 12:36:11 +0000","link":"https:\/\/csswizardry.com\/2012\/02\/breaking-good-habits-the-digital-barn\/","guid":"https:\/\/csswizardry.com\/2012\/02\/breaking-good-habits-the-digital-barn\/"},{"title":"On HTML and CSS best practices","description":{},"pubDate":"Sun, 11 Dec 2011 12:15:26 +0000","link":"https:\/\/csswizardry.com\/2011\/12\/on-html-and-css-best-practices\/","guid":"https:\/\/csswizardry.com\/2011\/12\/on-html-and-css-best-practices\/"},{"title":"Measuring and sizing UIs, 2011-style (and beyond)","description":{},"pubDate":"Wed, 07 Dec 2011 13:10:21 +0000","link":"https:\/\/csswizardry.com\/2011\/12\/measuring-and-sizing-uis-2011-style\/","guid":"https:\/\/csswizardry.com\/2011\/12\/measuring-and-sizing-uis-2011-style\/"},{"title":"Create a notched current-state nav","description":{},"pubDate":"Tue, 08 Nov 2011 20:00:57 +0000","link":"https:\/\/csswizardry.com\/2011\/11\/create-a-notched-current-state-nav\/","guid":"https:\/\/csswizardry.com\/2011\/11\/create-a-notched-current-state-nav\/"},{"title":"Build-along #1, reflection and reasoning","description":{},"pubDate":"Sat, 05 Nov 2011 16:03:54 +0000","link":"https:\/\/csswizardry.com\/2011\/11\/build-along-1-reflection-and-reasoning\/","guid":"https:\/\/csswizardry.com\/2011\/11\/build-along-1-reflection-and-reasoning\/"},{"title":"CSS Wizardry build-along #1","description":{},"pubDate":"Thu, 03 Nov 2011 19:59:14 +0000","link":"https:\/\/csswizardry.com\/2011\/11\/css-wizardry-build-along-1\/","guid":"https:\/\/csswizardry.com\/2011\/11\/css-wizardry-build-along-1\/"},{"title":"Sam Penrose Design\u2014process and write-up","description":{},"pubDate":"Wed, 02 Nov 2011 22:22:08 +0000","link":"https:\/\/csswizardry.com\/2011\/11\/sam-penrose-design-process-and-write-up\/","guid":"https:\/\/csswizardry.com\/2011\/11\/sam-penrose-design-process-and-write-up\/"},{"title":"Fully fluid, responsive CSS carousel","description":{},"pubDate":"Mon, 31 Oct 2011 22:46:10 +0000","link":"https:\/\/csswizardry.com\/2011\/10\/fully-fluid-responsive-css-carousel\/","guid":"https:\/\/csswizardry.com\/2011\/10\/fully-fluid-responsive-css-carousel\/"},{"title":"The CSS Wizardry build-along is go!","description":{},"pubDate":"Thu, 27 Oct 2011 17:22:22 +0000","link":"https:\/\/csswizardry.com\/2011\/10\/the-css-wizardry-build-along-is-go\/","guid":"https:\/\/csswizardry.com\/2011\/10\/the-css-wizardry-build-along-is-go\/"},{"title":"Build-along (testing the water)","description":{},"pubDate":"Tue, 25 Oct 2011 18:47:50 +0000","link":"https:\/\/csswizardry.com\/2011\/10\/build-along-testing-the-water\/","guid":"https:\/\/csswizardry.com\/2011\/10\/build-along-testing-the-water\/"},{"title":"Reset restarted","description":{},"pubDate":"Tue, 18 Oct 2011 20:17:39 +0000","link":"https:\/\/csswizardry.com\/2011\/10\/reset-restarted\/","guid":"https:\/\/csswizardry.com\/2011\/10\/reset-restarted\/"},{"title":"The \u2018island\u2019 object","description":{},"pubDate":"Sun, 16 Oct 2011 13:03:43 +0000","link":"https:\/\/csswizardry.com\/2011\/10\/the-island-object\/","guid":"https:\/\/csswizardry.com\/2011\/10\/the-island-object\/"},{"title":"The \u2018nav\u2019 abstraction","description":{},"pubDate":"Thu, 22 Sep 2011 17:04:19 +0000","link":"https:\/\/csswizardry.com\/2011\/09\/the-nav-abstraction\/","guid":"https:\/\/csswizardry.com\/2011\/09\/the-nav-abstraction\/"},{"title":"Ordered and numbered lists; the differences","description":{},"pubDate":"Sat, 17 Sep 2011 16:40:36 +0000","link":"https:\/\/csswizardry.com\/2011\/09\/ordered-and-numbered-lists-the-differences\/","guid":"https:\/\/csswizardry.com\/2011\/09\/ordered-and-numbered-lists-the-differences\/"},{"title":"Writing efficient CSS selectors","description":"CSS selectors, and their combinations, can be fast or slow! And while hopefully imperceptible, it\u2019s definitely worth knowing about.","pubDate":"Sat, 17 Sep 2011 10:58:24 +0000","link":"https:\/\/csswizardry.com\/2011\/09\/writing-efficient-css-selectors\/","guid":"https:\/\/csswizardry.com\/2011\/09\/writing-efficient-css-selectors\/"},{"title":"Do designers need to code?","description":{},"pubDate":"Tue, 13 Sep 2011 19:23:28 +0000","link":"https:\/\/csswizardry.com\/2011\/09\/do-designers-need-to-code\/","guid":"https:\/\/csswizardry.com\/2011\/09\/do-designers-need-to-code\/"},{"title":"When using IDs can be a pain in the class...","description":{},"pubDate":"Sun, 11 Sep 2011 18:16:00 +0000","link":"https:\/\/csswizardry.com\/2011\/09\/when-using-ids-can-be-a-pain-in-the-class\/","guid":"https:\/\/csswizardry.com\/2011\/09\/when-using-ids-can-be-a-pain-in-the-class\/"},{"title":"Two titillating table tips","description":{},"pubDate":"Wed, 24 Aug 2011 18:59:46 +0000","link":"https:\/\/csswizardry.com\/2011\/08\/two-titillating-table-tips\/","guid":"https:\/\/csswizardry.com\/2011\/08\/two-titillating-table-tips\/"},{"title":"Building better grid systems","description":{},"pubDate":"Tue, 23 Aug 2011 19:41:31 +0000","link":"https:\/\/csswizardry.com\/2011\/08\/building-better-grid-systems\/","guid":"https:\/\/csswizardry.com\/2011\/08\/building-better-grid-systems\/"},{"title":"Good developers are illusionists","description":{},"pubDate":"Thu, 18 Aug 2011 12:50:27 +0000","link":"https:\/\/csswizardry.com\/2011\/08\/good-developers-are-illusionists\/","guid":"https:\/\/csswizardry.com\/2011\/08\/good-developers-are-illusionists\/"},{"title":"Updated CV","description":{},"pubDate":"Mon, 08 Aug 2011 11:00:38 +0000","link":"https:\/\/csswizardry.com\/2011\/08\/updated-cv\/","guid":"https:\/\/csswizardry.com\/2011\/08\/updated-cv\/"},{"title":"More logo markup tips","description":{},"pubDate":"Tue, 02 Aug 2011 20:31:49 +0000","link":"https:\/\/csswizardry.com\/2011\/08\/more-logo-markup-tips\/","guid":"https:\/\/csswizardry.com\/2011\/08\/more-logo-markup-tips\/"},{"title":"Borders on responsive images","description":{},"pubDate":"Sun, 31 Jul 2011 14:28:08 +0000","link":"https:\/\/csswizardry.com\/2011\/07\/borders-on-responsive-images\/","guid":"https:\/\/csswizardry.com\/2011\/07\/borders-on-responsive-images\/"},{"title":".net magazine awards nominee","description":{},"pubDate":"Mon, 25 Jul 2011 18:30:21 +0000","link":"https:\/\/csswizardry.com\/2011\/07\/net-magazine-awards-nominee\/","guid":"https:\/\/csswizardry.com\/2011\/07\/net-magazine-awards-nominee\/"},{"title":"Responsive images right now","description":{},"pubDate":"Sat, 16 Jul 2011 11:36:28 +0000","link":"https:\/\/csswizardry.com\/2011\/07\/responsive-images-right-now\/","guid":"https:\/\/csswizardry.com\/2011\/07\/responsive-images-right-now\/"},{"title":"Fluid grid calculator","description":{},"pubDate":"Tue, 28 Jun 2011 18:30:03 +0000","link":"https:\/\/csswizardry.com\/2011\/06\/fluid-grid-calculator\/","guid":"https:\/\/csswizardry.com\/2011\/06\/fluid-grid-calculator\/"},{"title":"Namespacing fragment identifiers","description":{},"pubDate":"Mon, 20 Jun 2011 18:28:14 +0000","link":"https:\/\/csswizardry.com\/2011\/06\/namespacing-fragment-identifiers\/","guid":"https:\/\/csswizardry.com\/2011\/06\/namespacing-fragment-identifiers\/"},{"title":"What is inuit.css?","description":{},"pubDate":"Sun, 19 Jun 2011 13:01:39 +0000","link":"https:\/\/csswizardry.com\/2011\/06\/what-is-inuit-css\/","guid":"https:\/\/csswizardry.com\/2011\/06\/what-is-inuit-css\/"},{"title":"Styling alt text on images","description":{},"pubDate":"Sat, 18 Jun 2011 17:41:39 +0000","link":"https:\/\/csswizardry.com\/2011\/06\/styling-alt-text-on-images\/","guid":"https:\/\/csswizardry.com\/2011\/06\/styling-alt-text-on-images\/"},{"title":"Introducing igloos\u2014inuit.css gets plugins","description":{},"pubDate":"Sat, 11 Jun 2011 11:48:26 +0000","link":"https:\/\/csswizardry.com\/2011\/06\/introducing-igloos-inuit-css-gets-plugins\/","guid":"https:\/\/csswizardry.com\/2011\/06\/introducing-igloos-inuit-css-gets-plugins\/"},{"title":"DIBI 2011","description":{},"pubDate":"Sun, 05 Jun 2011 17:24:34 +0000","link":"https:\/\/csswizardry.com\/2011\/06\/dibi-2011\/","guid":"https:\/\/csswizardry.com\/2011\/06\/dibi-2011\/"},{"title":"Annotated &lt;figure&gt;s in HTML5 and CSS","description":{},"pubDate":"Fri, 03 Jun 2011 18:57:01 +0000","link":"https:\/\/csswizardry.com\/2011\/06\/annotated-figures-in-html5-and-css\/","guid":"https:\/\/csswizardry.com\/2011\/06\/annotated-figures-in-html5-and-css\/"},{"title":"Font sizing with rem could be avoided","description":{},"pubDate":"Tue, 31 May 2011 20:13:32 +0000","link":"https:\/\/csswizardry.com\/2011\/05\/font-sizing-with-rem-could-be-avoided\/","guid":"https:\/\/csswizardry.com\/2011\/05\/font-sizing-with-rem-could-be-avoided\/"},{"title":"jQuery placeholder plugin\/polyfill","description":{},"pubDate":"Tue, 24 May 2011 19:35:27 +0000","link":"https:\/\/csswizardry.com\/2011\/05\/jquery-placeholder-plugin-polyfill\/","guid":"https:\/\/csswizardry.com\/2011\/05\/jquery-placeholder-plugin-polyfill\/"},{"title":"On negative hovers","description":{},"pubDate":"Wed, 18 May 2011 20:26:07 +0000","link":"https:\/\/csswizardry.com\/2011\/05\/on-negative-hovers\/","guid":"https:\/\/csswizardry.com\/2011\/05\/on-negative-hovers\/"},{"title":"Introducing inuit.css","description":{},"pubDate":"Wed, 20 Apr 2011 21:33:36 +0000","link":"https:\/\/csswizardry.com\/2011\/04\/introducing-inuit-css\/","guid":"https:\/\/csswizardry.com\/2011\/04\/introducing-inuit-css\/"},{"title":"Ideas of March","description":{},"pubDate":"Tue, 15 Mar 2011 13:11:26 +0000","link":"https:\/\/csswizardry.com\/2011\/03\/ideas-of-march\/","guid":"https:\/\/csswizardry.com\/2011\/03\/ideas-of-march\/"},{"title":"Coding up a semantic, lean timeline","description":{},"pubDate":"Mon, 14 Mar 2011 18:54:26 +0000","link":"https:\/\/csswizardry.com\/2011\/03\/coding-up-a-semantic-lean-timeline\/","guid":"https:\/\/csswizardry.com\/2011\/03\/coding-up-a-semantic-lean-timeline\/"},{"title":"Link: Technical Web Typography: Guidelines and Techniques","description":{},"pubDate":"Mon, 14 Mar 2011 15:52:30 +0000","link":"https:\/\/csswizardry.com\/2011\/03\/link-technical-web-typography-guidelines-and-techniques\/","guid":"https:\/\/csswizardry.com\/2011\/03\/link-technical-web-typography-guidelines-and-techniques\/"},{"title":"Problems with the sans-serif hack","description":{},"pubDate":"Tue, 01 Mar 2011 09:43:26 +0000","link":"https:\/\/csswizardry.com\/2011\/03\/problems-with-the-sans-serif-hack\/","guid":"https:\/\/csswizardry.com\/2011\/03\/problems-with-the-sans-serif-hack\/"},{"title":"Mobile business card","description":{},"pubDate":"Tue, 22 Feb 2011 23:07:29 +0000","link":"https:\/\/csswizardry.com\/2011\/02\/mobile-business-card\/","guid":"https:\/\/csswizardry.com\/2011\/02\/mobile-business-card\/"},{"title":"Creating a pure CSS dropdown menu","description":{},"pubDate":"Thu, 17 Feb 2011 09:47:44 +0000","link":"https:\/\/csswizardry.com\/2011\/02\/creating-a-pure-css-dropdown-menu\/","guid":"https:\/\/csswizardry.com\/2011\/02\/creating-a-pure-css-dropdown-menu\/"},{"title":"Pure CSS(3) accordion","description":{},"pubDate":"Thu, 17 Feb 2011 09:32:39 +0000","link":"https:\/\/csswizardry.com\/2011\/02\/pure-css3-accordion\/","guid":"https:\/\/csswizardry.com\/2011\/02\/pure-css3-accordion\/"},{"title":"CSS powered ribbons the clean way","description":{},"pubDate":"Wed, 09 Feb 2011 12:48:01 +0000","link":"https:\/\/csswizardry.com\/2011\/02\/css-powered-ribbons-the-clean-way\/","guid":"https:\/\/csswizardry.com\/2011\/02\/css-powered-ribbons-the-clean-way\/"},{"title":"Create a centred horizontal navigation","description":"2025 refresh: build a perfectly centred horizontal nav with just two Flexbox rules\u2014`display:flex` and `justify-content:center`. Demo included!","pubDate":"Sat, 29 Jan 2011 18:53:10 +0000","link":"https:\/\/csswizardry.com\/2011\/01\/create-a-centred-horizontal-navigation\/","guid":"https:\/\/csswizardry.com\/2011\/01\/create-a-centred-horizontal-navigation\/"},{"title":"Link: Recreating the Luke's Beard social icons with CSS3","description":{},"pubDate":"Sun, 23 Jan 2011 16:55:38 +0000","link":"https:\/\/csswizardry.com\/2011\/01\/link-recreating-the-lukes-beard-social-icons-with-css3\/","guid":"https:\/\/csswizardry.com\/2011\/01\/link-recreating-the-lukes-beard-social-icons-with-css3\/"},{"title":"Using the &lt;body&gt; element as a wrapper","description":{},"pubDate":"Sun, 23 Jan 2011 14:19:23 +0000","link":"https:\/\/csswizardry.com\/2011\/01\/using-the-body-element-as-a-wrapper\/","guid":"https:\/\/csswizardry.com\/2011\/01\/using-the-body-element-as-a-wrapper\/"},{"title":"HTML(5) and text-level semantics","description":{},"pubDate":"Sun, 23 Jan 2011 11:22:16 +0000","link":"https:\/\/csswizardry.com\/2011\/01\/html5-and-text-level-semantics\/","guid":"https:\/\/csswizardry.com\/2011\/01\/html5-and-text-level-semantics\/"},{"title":"Client respect","description":{},"pubDate":"Tue, 18 Jan 2011 16:38:23 +0000","link":"https:\/\/csswizardry.com\/2011\/01\/client-respect\/","guid":"https:\/\/csswizardry.com\/2011\/01\/client-respect\/"},{"title":"Maximising hit-area for usability","description":{},"pubDate":"Wed, 12 Jan 2011 19:42:14 +0000","link":"https:\/\/csswizardry.com\/2011\/01\/maximising-hit-area-for-usability\/","guid":"https:\/\/csswizardry.com\/2011\/01\/maximising-hit-area-for-usability\/"},{"title":"HTML elements, tags and attributes","description":{},"pubDate":"Tue, 11 Jan 2011 22:15:22 +0000","link":"https:\/\/csswizardry.com\/2011\/01\/html-elements-tags-and-attributes\/","guid":"https:\/\/csswizardry.com\/2011\/01\/html-elements-tags-and-attributes\/"},{"title":"A new year, a new CSS Wizardry II","description":{},"pubDate":"Mon, 10 Jan 2011 14:08:31 +0000","link":"https:\/\/csswizardry.com\/2011\/01\/a-new-year-a-new-css-wizardry-ii\/","guid":"https:\/\/csswizardry.com\/2011\/01\/a-new-year-a-new-css-wizardry-ii\/"},{"title":"Scrolling overflowed content in iOS","description":{},"pubDate":"Fri, 07 Jan 2011 23:35:32 +0000","link":"https:\/\/csswizardry.com\/2011\/01\/scrolling-overflowed-content-in-ios\/","guid":"https:\/\/csswizardry.com\/2011\/01\/scrolling-overflowed-content-in-ios\/"},{"title":"The real HTML5 boilerplate","description":{},"pubDate":"Thu, 06 Jan 2011 23:18:16 +0000","link":"https:\/\/csswizardry.com\/2011\/01\/the-real-html5-boilerplate\/","guid":"https:\/\/csswizardry.com\/2011\/01\/the-real-html5-boilerplate\/"},{"title":"A new year, a new CSS Wizardry","description":{},"pubDate":"Wed, 05 Jan 2011 22:45:37 +0000","link":"https:\/\/csswizardry.com\/2011\/01\/a-new-year-a-new-css-wizardry\/","guid":"https:\/\/csswizardry.com\/2011\/01\/a-new-year-a-new-css-wizardry\/"},{"title":"Mo\u2019 robust paragraph indenting","description":{},"pubDate":"Tue, 21 Dec 2010 20:56:15 +0000","link":"https:\/\/csswizardry.com\/2010\/12\/mo-robust-paragraph-indenting\/","guid":"https:\/\/csswizardry.com\/2010\/12\/mo-robust-paragraph-indenting\/"},{"title":"Media queries, handier than you think","description":{},"pubDate":"Tue, 21 Dec 2010 18:13:42 +0000","link":"https:\/\/csswizardry.com\/2010\/12\/media-queries-handier-than-you-think\/","guid":"https:\/\/csswizardry.com\/2010\/12\/media-queries-handier-than-you-think\/"},{"title":"The implementation \u221d appreciation rule","description":{},"pubDate":"Wed, 08 Dec 2010 17:02:28 +0000","link":"https:\/\/csswizardry.com\/2010\/12\/the-implementation-appreciation-rule\/","guid":"https:\/\/csswizardry.com\/2010\/12\/the-implementation-appreciation-rule\/"},{"title":"CSS: CamelCase Seriously Sucks!","description":{},"pubDate":"Mon, 06 Dec 2010 20:54:23 +0000","link":"https:\/\/csswizardry.com\/2010\/12\/css-camel-case-seriously-sucks\/","guid":"https:\/\/csswizardry.com\/2010\/12\/css-camel-case-seriously-sucks\/"},{"title":"Improving CSS tooltips","description":{},"pubDate":"Tue, 30 Nov 2010 23:55:27 +0000","link":"https:\/\/csswizardry.com\/2010\/11\/improving-css-tooltips\/","guid":"https:\/\/csswizardry.com\/2010\/11\/improving-css-tooltips\/"},{"title":"Design and education","description":{},"pubDate":"Mon, 29 Nov 2010 14:25:25 +0000","link":"https:\/\/csswizardry.com\/2010\/11\/design-and-education\/","guid":"https:\/\/csswizardry.com\/2010\/11\/design-and-education\/"},{"title":"Mark up a semantic, accessible, progressively enhanced, mobile optimised progress bar (bonus: style the numbers in an ordered list!)","description":{},"pubDate":"Wed, 17 Nov 2010 18:27:32 +0000","link":"https:\/\/csswizardry.com\/2010\/11\/mark-up-a-semantic-accessible-progressively-enhanced-mobile-optimised-progress-bar-bonus-style-the-numbers-in-an-ordered-list\/","guid":"https:\/\/csswizardry.com\/2010\/11\/mark-up-a-semantic-accessible-progressively-enhanced-mobile-optimised-progress-bar-bonus-style-the-numbers-in-an-ordered-list\/"},{"title":"I hate that I love Writer","description":{},"pubDate":"Wed, 20 Oct 2010 21:17:51 +0000","link":"https:\/\/csswizardry.com\/2010\/10\/i-hate-that-i-love-writer\/","guid":"https:\/\/csswizardry.com\/2010\/10\/i-hate-that-i-love-writer\/"},{"title":"Unsung heroes","description":{},"pubDate":"Wed, 20 Oct 2010 12:41:49 +0000","link":"https:\/\/csswizardry.com\/2010\/10\/unsung-heroes\/","guid":"https:\/\/csswizardry.com\/2010\/10\/unsung-heroes\/"},{"title":"Things are changing at CSS Wizardry","description":{},"pubDate":"Tue, 19 Oct 2010 13:08:19 +0000","link":"https:\/\/csswizardry.com\/2010\/10\/things-are-changing-at-css-wizardry\/","guid":"https:\/\/csswizardry.com\/2010\/10\/things-are-changing-at-css-wizardry\/"},{"title":"Your logo is an image, not an &lt;h1&gt;","description":{},"pubDate":"Wed, 13 Oct 2010 22:12:14 +0000","link":"https:\/\/csswizardry.com\/2010\/10\/your-logo-is-an-image-not-a-h1\/","guid":"https:\/\/csswizardry.com\/2010\/10\/your-logo-is-an-image-not-a-h1\/"},{"title":"Good developers vs. good salespeople","description":{},"pubDate":"Wed, 06 Oct 2010 10:35:01 +0000","link":"https:\/\/csswizardry.com\/2010\/10\/good-developers-vs-good-salespeople\/","guid":"https:\/\/csswizardry.com\/2010\/10\/good-developers-vs-good-salespeople\/"},{"title":"Designing in the browser leads to better quality builds","description":{},"pubDate":"Tue, 05 Oct 2010 17:03:51 +0000","link":"https:\/\/csswizardry.com\/2010\/10\/designing-in-the-browser-leads-to-better-quality-builds\/","guid":"https:\/\/csswizardry.com\/2010\/10\/designing-in-the-browser-leads-to-better-quality-builds\/"},{"title":"In response to \u2018Invisible captcha to prevent form spam\u2019","description":{},"pubDate":"Mon, 04 Oct 2010 16:57:39 +0000","link":"https:\/\/csswizardry.com\/2010\/10\/in-response-to-invisible-captcha-to-prevent-form-spam\/","guid":"https:\/\/csswizardry.com\/2010\/10\/in-response-to-invisible-captcha-to-prevent-form-spam\/"},{"title":"Keeping code clean with content","description":{},"pubDate":"Mon, 27 Sep 2010 21:37:07 +0000","link":"https:\/\/csswizardry.com\/2010\/09\/keeping-code-clean-with-content\/","guid":"https:\/\/csswizardry.com\/2010\/09\/keeping-code-clean-with-content\/"},{"title":"A quick counter to 'The Digital Agencies of the Future!'","description":{},"pubDate":"Thu, 16 Sep 2010 11:36:01 +0000","link":"https:\/\/csswizardry.com\/2010\/09\/a-quick-counter-to-the-digital-agencies-of-the-future\/","guid":"https:\/\/csswizardry.com\/2010\/09\/a-quick-counter-to-the-digital-agencies-of-the-future\/"},{"title":"Set then unset (or reset...?)","description":{},"pubDate":"Sun, 05 Sep 2010 17:53:29 +0000","link":"https:\/\/csswizardry.com\/2010\/09\/set-then-unset\/","guid":"https:\/\/csswizardry.com\/2010\/09\/set-then-unset\/"},{"title":"Zebra-striping rows and columns","description":{},"pubDate":"Tue, 31 Aug 2010 20:54:01 +0000","link":"https:\/\/csswizardry.com\/2010\/08\/zebra-striping-rows-and-columns\/","guid":"https:\/\/csswizardry.com\/2010\/08\/zebra-striping-rows-and-columns\/"},{"title":"Semantics and sensibility","description":{},"pubDate":"Mon, 09 Aug 2010 16:34:46 +0000","link":"https:\/\/csswizardry.com\/2010\/08\/semantics-and-sensibility\/","guid":"https:\/\/csswizardry.com\/2010\/08\/semantics-and-sensibility\/"},{"title":"Building sites without using IDs or classes","description":{},"pubDate":"Wed, 07 Apr 2010 12:17:09 +0000","link":"https:\/\/csswizardry.com\/2010\/04\/building-sites-without-using-ids-or-classes\/","guid":"https:\/\/csswizardry.com\/2010\/04\/building-sites-without-using-ids-or-classes\/"},{"title":"30 days without an iPhone","description":{},"pubDate":"Mon, 08 Mar 2010 12:15:17 +0000","link":"https:\/\/csswizardry.com\/2010\/03\/30-days-without-an-iphone\/","guid":"https:\/\/csswizardry.com\/2010\/03\/30-days-without-an-iphone\/"},{"title":"Moving forward is holding us back","description":{},"pubDate":"Tue, 02 Mar 2010 22:03:28 +0000","link":"https:\/\/csswizardry.com\/2010\/03\/moving-forward-is-holding-us-back\/","guid":"https:\/\/csswizardry.com\/2010\/03\/moving-forward-is-holding-us-back\/"},{"title":"A quick note on border radius","description":{},"pubDate":"Tue, 02 Mar 2010 10:34:55 +0000","link":"https:\/\/csswizardry.com\/2010\/03\/a-quick-note-on-border-radius\/","guid":"https:\/\/csswizardry.com\/2010\/03\/a-quick-note-on-border-radius\/"},{"title":"Type tips\u2014quick tips on all things web typography","description":{},"pubDate":"Wed, 24 Feb 2010 09:42:13 +0000","link":"https:\/\/csswizardry.com\/2010\/02\/type-tipsquick-tips-on-all-things-web-typography\/","guid":"https:\/\/csswizardry.com\/2010\/02\/type-tipsquick-tips-on-all-things-web-typography\/"},{"title":"Multiple column lists using one &lt;ul&gt;","description":{},"pubDate":"Thu, 11 Feb 2010 23:44:02 +0000","link":"https:\/\/csswizardry.com\/2010\/02\/mutiple-column-lists-using-one-ul\/","guid":"https:\/\/csswizardry.com\/2010\/02\/mutiple-column-lists-using-one-ul\/"},{"title":"Upside down domains\u2014registering an international domain name","description":{},"pubDate":"Thu, 04 Feb 2010 15:44:17 +0000","link":"https:\/\/csswizardry.com\/2010\/02\/upside-down-domainsregistering-an-international-domain-name\/","guid":"https:\/\/csswizardry.com\/2010\/02\/upside-down-domainsregistering-an-international-domain-name\/"},{"title":"CSS bar charts\u2014styling data with CSS3 and progressive enhancement","description":{},"pubDate":"Tue, 02 Feb 2010 23:59:27 +0000","link":"https:\/\/csswizardry.com\/2010\/02\/css-bar-charts-styling-data-with-css3-and-progressive-enhancement\/","guid":"https:\/\/csswizardry.com\/2010\/02\/css-bar-charts-styling-data-with-css3-and-progressive-enhancement\/"},{"title":"iPhone CSS\u2014tips for building iPhone websites","description":{},"pubDate":"Sun, 31 Jan 2010 20:17:10 +0000","link":"https:\/\/csswizardry.com\/2010\/01\/iphone-css-tips-for-building-iphone-websites\/","guid":"https:\/\/csswizardry.com\/2010\/01\/iphone-css-tips-for-building-iphone-websites\/"},{"title":"The three types of dash","description":{},"pubDate":"Sat, 30 Jan 2010 17:07:43 +0000","link":"https:\/\/csswizardry.com\/2010\/01\/the-three-types-of-dash\/","guid":"https:\/\/csswizardry.com\/2010\/01\/the-three-types-of-dash\/"},{"title":"The importance of proper punctuation","description":{},"pubDate":"Wed, 27 Jan 2010 11:44:38 +0000","link":"https:\/\/csswizardry.com\/2010\/01\/the-importance-of-proper-punctuation\/","guid":"https:\/\/csswizardry.com\/2010\/01\/the-importance-of-proper-punctuation\/"},{"title":"A reconsideration\u2014in defence of &lt;b&gt; and &lt;i&gt; (or: people fear what they don\u2019t understand)","description":{},"pubDate":"Tue, 26 Jan 2010 23:06:10 +0000","link":"https:\/\/csswizardry.com\/2010\/01\/a-reconsiderationin-defence-of-b-and-i-or-people-fear-what-they-dont-understand\/","guid":"https:\/\/csswizardry.com\/2010\/01\/a-reconsiderationin-defence-of-b-and-i-or-people-fear-what-they-dont-understand\/"},{"title":"A suitable alternative\u2014on proper use of alt attributes","description":{},"pubDate":"Tue, 26 Jan 2010 16:03:03 +0000","link":"https:\/\/csswizardry.com\/2010\/01\/a-suitable-alternativeon-proper-use-of-alt-attributes\/","guid":"https:\/\/csswizardry.com\/2010\/01\/a-suitable-alternativeon-proper-use-of-alt-attributes\/"},{"title":"Typographic work planner","description":{},"pubDate":"Tue, 22 Dec 2009 11:17:25 +0000","link":"https:\/\/csswizardry.com\/2009\/12\/typographic-work-planner\/","guid":"https:\/\/csswizardry.com\/2009\/12\/typographic-work-planner\/"}]}}