Archive When is :focus-visible visible? 21 March 2023 #css From Ghost to 11ty 22 February 2023 #articles #11ty Web Performance Metrics Cheatsheet 25 October 2021 #performance Setting up a Decentralised Website (ENS + IPFS = dWeb) 18 June 2021 #web3 Highlights from Chrome Dev Summit 2020 14 December 2020 #conference What I wish I knew about React 28 April 2020 #react How I created 488 "live images" 26 November 2019 #javascript Highlights from Chrome Dev Summit 2019 18 November 2019 #conference How to use Puppeteer in a Netlify (AWS Lambda) function 28 October 2019 #javascript Calling smart contract functions using web3.js - call() vs send() 03 September 2019 #solidity #web3 Solidity function visibility, explained 27 August 2019 #solidity Your first performance budget with Lighthouse 28 May 2019 #performance Removing duplicate objects from an Array (is hard) 12 March 2019 #javascript Tips for making interactive elements accessible on mobile devices 12 February 2019 #accessibility Revisiting the abbr element 05 February 2019 #accessibility What self.skipWaiting() does to the service worker lifecycle 29 January 2019 #javascript #pwa What is tree shaking and how does it work? 22 January 2019 #javascript Use the :lang pseudo-class over the lang attribute selector for language-specific styles 16 January 2019 #html #css A Siri Shortcut to Generate PWA Icons and Web App Manifest 25 December 2018 #pwa Understanding the Virtual DOM 24 December 2018 #javascript My CSS Reset/Base 21 December 2018 #css Making the abbr element work for touchscreen, keyboard, and mouse 20 December 2018 #css #html #accessibility Handling broken images with the service worker 19 December 2018 #javascript A one-line solution to highlighting search matches 18 December 2018 #javascript There’s no reason to use pointer-events for HTML elements 17 December 2018 #accessibility Using aria-live 14 December 2018 #accessibility #html Cache API 101 13 December 2018 #javascript The visibility property isn’t just about visibility 12 December 2018 #css #accessibility When do the :hover, :focus, and :active pseudo-classes apply? 11 December 2018 #css What is the Shadow DOM? 10 December 2018 #html Going Offline First (Video Series) 05 December 2018 #javascript #video A look at CSS Resets in 2018 30 November 2018 #css How and when to use the tabindex attribute 29 November 2018 #html Everything about CSS environment variables 28 November 2018 #css Git aliases for lazy developers 27 November 2018 What, exactly, is the DOM? 26 November 2018 #html How to upload a screenshot from Puppeteer to Cloudinary 23 November 2018 #javascript Using a headless browser to capture page screenshots 22 November 2018 #javascript Why and how to use WebP images today 21 November 2018 #html #performance Web workers vs Service workers vs Worklets 20 November 2018 #javascript You might not need a loop 19 November 2018 #javascript Highlights from Chrome Dev Summit 2018 16 November 2018 #conference What is First Input Delay? 15 November 2018 #performance Learning to write again 14 November 2018 Understanding the difference between grid-template and grid-auto 09 October 2018 #css [Smashing Magazine] Creating The Feature Queries Manager DevTools Extension 23 May 2018 #web extension #external How display: contents; Works 27 March 2018 #css Recreating the GitHub Contribution Graph with CSS Grid Layout 23 January 2018 #css What’s New in HTML 5.2? 08 January 2018 #html Localisation and Translation on the Web 23 November 2017 #html Web Push Notifications with Firebase (Video Series) 18 September 2017 #video #javascript Accessibility Testing with pa11y 15 August 2017 #accessibility What's the Deal with Collapsible Margins? 04 July 2017 #css How the minmax() Function Works 06 June 2017 #css CSS Animations vs the Web Animations API: A Case Study 03 May 2017 #css #javascript How I Animated the bitsofcode Logo with CSS 26 April 2017 #css Asynchronous Functions 101 13 April 2017 #javascript Redesigning bitsofcode 27 March 2017 #design #performance Making Alix, a Chrome Extension for Linting HTML 14 March 2017 #javascript #web extension Linting HTML using CSS 07 March 2017 #html #css Asynchronous vs Deferred JavaScript 28 February 2017 #javascript #performance "What's the typeof null?", and other confusing JavaScript Types 21 February 2017 #javascript Optimising GIFs for the Web 14 February 2017 #performance CSS Grid Layout Terminology, Explained 07 February 2017 #css How calc() Works 31 January 2017 #css Rules for Using ARIA in HTML 24 January 2017 #accessibility #html Understanding the Critical Rendering Path 17 January 2017 #performance 3 New CSS Features to Learn in 2017 10 January 2017 #css Making a Polymer Element for CanIUse Embed 20 December 2016 #javascript #polymer An Overview of Client-Side Storage 13 December 2016 #javascript Document Outlines in HTML 5.1 06 December 2016 #html #accessibility Making "Blue Beanie Me" 29 November 2016 #accessibility #javascript Highlights from Chrome Dev Summit 2016 22 November 2016 #javascript #conference for..in versus for..of Loops 15 November 2016 #javascript Challenge - Recreating the iTunes Library 08 November 2016 #css #javascript #challenge Tools for Developing Accessible Websites 01 November 2016 #accessibility #tools Push Notifications on the Web (Building a PWA, Part 3) 25 October 2016 #javascript #pwa "Instant Loading" with IndexedDB (Building a PWA, Part 2) 18 October 2016 #javascript #pwa “Offline First” with Service Worker (Building a PWA, Part 1) 11 October 2016 #javascript #pwa Alternative Text and Images 04 October 2016 #html #accessibility Variable and Function Hoisting in ES2015 27 September 2016 #javascript The New System Font Stack? 20 September 2016 #css JavaScript Promises 102 - The 4 Promise Methods 13 September 2016 #javascript nth-child vs nth-of-type 06 September 2016 #css Toast.js, a Library for Toast messages 23 August 2016 #javascript #css #html Making botsofcode - An Introduction to Twitter Bots 16 August 2016 #javascript JavaScript Array Methods - Mutator Methods 09 August 2016 #javascript #video Creating An Accessible Modal Dialog 02 August 2016 #html #accessibility #javascript The Background Properties 26 July 2016 #css The Service Worker Lifecycle 19 July 2016 #javascript #pwa JavaScript Promises 101 12 July 2016 #javascript The :target Trick 05 July 2016 #css All the Generic CSS Data Types 28 June 2016 #css Realtime Form Validation 21 June 2016 #javascript #video Form Validation Techniques 14 June 2016 #javascript Anchors vs Buttons 05 June 2016 #html #accessibility Making Messenger Hunt - An Introduction to Messenger Bots 31 May 2016 #javascript #projects The box-shadow Property 24 May 2016 #css Using Jekyll for Rapid CSS Testing 17 May 2016 #css Setting up a Basic Service Worker 10 May 2016 #javascript #video #pwa Making IFrames Responsive 26 April 2016 #javascript Initial, Inherit, Unset, and Revert 19 April 2016 #css A Gulp Workflow for Building HTML Email 12 April 2016 #javascript #html The Problem with iOS Safari and shrink-to-fit 05 April 2016 #html The Holy Grail Layout with CSS Grid 29 March 2016 #css Better Detection and Analytics for Opera Browsers 22 March 2016 #analytics On :not and Specificity 15 March 2016 #css Styling Broken Images 08 March 2016 #css Challenge - Recreating Clear with Pure JavaScript 01 March 2016 #javascript #challenge 6 Reasons to Start Using Flexbox 23 February 2016 #css Making KhaledBot - An Introduction to Slack Bots 16 February 2016 #projects #javascript The One CSS Feature I Really Want 09 February 2016 #css Responsive Images - The srcset and sizes Attributes 02 February 2016 #html Creating an Embed for CanIUse 26 January 2016 #projects #javascript The Effect of Importance and Origin on CSS Specificity 19 January 2016 #css Labelling Form Elements 12 January 2016 #accessibility #html WTF Opera Mini?! 22 December 2015 #accessibility Controlling Typography in CSS 15 December 2015 #css The vertical-align Property 08 December 2015 #css Tic Tac Toe (Revisited) 01 December 2015 #projects #javascript 3 Useful and Reusable SASS Mixins 24 November 2015 #css From Jekyll to Ghost 17 November 2015 #articles Using System Fonts in the Browser 10 November 2015 #css Understanding border-image 03 November 2015 #css How Positioning CSS Properties Interact 27 October 2015 #css How z-index Works 20 October 2015 #css HTML For Screen Readers - Labelling Elements 13 October 2015 #html #accessibility Using Heading Elements to Create a Document Outline 06 October 2015 #html #accessibility Sectioning Content in HTML5 - div or section or article? 29 September 2015 #html The Style Element 15 September 2015 #html InstaChrome - A Google Chrome New Tab Extension 08 September 2015 #javascript #web extension Alternatives to Floating 01 September 2015 #css Custom, Scriptless, and Trackable Social Media Share Buttons 25 August 2015 #html #javascript Working with Colour in CSS 18 August 2015 #css How Floating Works 11 August 2015 #css Building Designer News for Pebble 04 August 2015 #javascript #projects #pebble A Simple Gulp Workflow 28 July 2015 #javascript Hiding Elements With CSS 21 July 2015 #css jQuery UI Events Cheatsheet 14 July 2015 #javascript A More Accessible Multi-Level Dropdown Navigation 07 July 2015 #css #html #javascript #accessibility Controlling The Box Model 30 June 2015 #css Pseudo-Classes, Pseudo-Elements, and Colon Notation 23 June 2015 #css Designer News Clone (Part 2) - Implementing Firebase Security 16 June 2015 #javascript #projects #firebase 5 Lesser Used CSS Selectors 09 June 2015 #css The Accessibility Cheatsheet 06 June 2015 #html #accessibility Viewport vs Percentage Units 26 May 2015 #css Building a Designer News Clone with AngularJS and Firebase 19 May 2015 #javascript #projects #firebase #angularjs CSS Vendor Prefixes 12 May 2015 #css Working With Document Alternates 05 May 2015 #html FormHack.io - A Hackable CSS Form Reset 28 April 2015 #css #projects All About Favicons (And Touch Icons) 21 April 2015 #html Payback - An Instagram Based Web App 14 April 2015 #javascript #projects CSS Font Sizing 04 April 2015 #css Responsive Design With Viewport Control 31 March 2015 #css #html Tic Tac Toe 24 March 2015 #javascript #projects Meta Charset 17 March 2015 #html The Value of Blogging 16 March 2015 #articles Doctype 10 March 2015 #html Hello, World! 03 March 2015 #articles #html
Use the :lang pseudo-class over the lang attribute selector for language-specific styles 16 January 2019 #html #css
Making the abbr element work for touchscreen, keyboard, and mouse 20 December 2018 #css #html #accessibility
[Smashing Magazine] Creating The Feature Queries Manager DevTools Extension 23 May 2018 #web extension #external
Designer News Clone (Part 2) - Implementing Firebase Security 16 June 2015 #javascript #projects #firebase
Building a Designer News Clone with AngularJS and Firebase 19 May 2015 #javascript #projects #firebase #angularjs