html
On attributes for HTML form elements
I often come across tutorials about building forms on the web. In spite of all the newfangled techniques and frameworks...
Recreating the Fool's Mate chess move with CSS Grid
When Firefox 66 was released, one of the features that got myself and a couple other layout enthusiasts really excited...
Internet Explorer 3, an adventure in cross-browser compatibility
Some of you might know that I run the CSS meetup, Talk.CSS in Singapore together with my best mate, Wei....
HTML slides without frameworks, just CSS
I am a huge fan of reveal.js and have used it for almost every talk I’ve ever given. It is...
Table design patterns on the web
Tables are a design pattern for displaying large amounts of data in rows and columns, making them efficient for doing...
Customise radio buttons without compromising accessibility
We can do quite a lot with CSS to create fancy radio buttons (or checkboxes, for that matter), and that’s...
Refactoring an inherited codebase
So for 2018, I got myself some gainful employment doing full-time frontend development work. You know, the kind where you...
Math and front-end
If you were one of those kids that wondered why you had to attend all those math classes and learn...
Learning Cordova while rewriting an app
This is a “refactoring legacy code” post, and I suspect you’ll see more of these in the months to come...
Images, the web's nutrition problem
Okay, that wasn’t my best headline, writing is hard 🤷. But let’s face it, the web has an obesity problem....
All about the HTML <ruby> element (in 2016)
The ruby I’m talking about is not the Ruby programming language. As a native Mandarin speaker, this element is pretty...