Latest Posts

How I Animated the bitsofcode Logo with CSS

I’m pretty new to CSS animations. For the most part, I had only used them in limited cases and mostly using libraries created by others, such as the excellent Animate.css created by Daniel Eden. As I mentioned in Redesigning bitsofcode, the graphic designer I worked with for the...

Asynchronous Functions 101

One of the major advantages of JavaScript is that everything is asynchronous. For the most part, different parts of your code don’t affect the execution of others. doALongThing(() => console.log("I will be logged second!")); console.log("I will be logged first!"); Unfortunately, this is also one of...

Redesigning bitsofcode

Welcome to the new bitsofcode! Since launching this blog over 2 years ago, I’ve had two designs, this being the third. You can check out the first and second designs using the WayBack Machine. The first one looks particularly embarrassing... Anyway, I thought I would share here my process...

Making Alix, a Chrome Extension for Linting HTML

Last week, I wrote about how you can use CSS selectors to help lint your HTML. The general idea behind this concept was that we can use some of the more advanced CSS selectors, such as :not(), to select certain types of elements in the document. For example, we can...

Linting HTML using CSS

When HTML is written incorrectly, nothing much happens. Because of this, it's easy to have invalid, unsemantic, or unaccessible bits in markup without it being obvious. There are many ways we can lint our HTML to discover and fix these issues, for example using the W3C Markup Validation Service. Another...