The original purpose of this blog was for me to document solutions that I spent hours figuring out at work, which means it’s not my code therefore I cannot take it wholesale with me. I just extract the key parts, remove any references (or try to) to the original project and hopef … | Continue reading
This blog is running on Hugo. It had previously been running on Jekyll. Both these SSGs ship with the ability to create excerpts from your markdown content in 1 line or thereabouts. /* Hugo */ {{ .Summary | truncate 130 }} # Ruby {{ post.content | markdownify | strip_html | trunc … | Continue reading
Over the years, I’ve regularly seen blog posts or articles talking about “should designers code?” (less of “should developers learn design?” 🤷). I even chimed in with a tangential opinion piece back in the day. Tangential because I never said designers should code. Haha. … | Continue reading
Since I conveniently missed my “decade of gainful employment as a web developer” post last year, I’ll make it up with a “oh wow, this blog is a decade old” post. There’s not much to say, considering my output was sorely lacking over the past 3 years. BUT, I still dutifully renewe … | Continue reading
I’ll be the first to admit that I think I’m terrible at tech interviews. I never had a proper computer science education, and if I have never encountered a concept during my day-to-day job, odds are I won’t know how to implement “The Algorithmic-Data-Structure-Universe-Saving Thi … | Continue reading
First of all, happy new year! It’s 11 days into 2024 and I just tested positive for COVID. Unlike many people these days who are not sure where they got it from, I’m about 74.3% confident that I got it from my mom. Because she did have it when I was visiting last week, and I know … | Continue reading
If you had read my previous blog post, you’ll have found out that I’m somehow unable to escape Drupal. Not that Drupal is some terrible monster, it’s actually not bad. At this point, I’ll probably end up finishing my career with some Drupal project, who knows? Drupal 42, let’s go … | Continue reading
The use case I had for this was to have customisable bits of a content collection that was rendered from markdown. Basically, a newsletter template where every newsletter could potentially have a different top banner and highlight colour. There are different ways to implement thi … | Continue reading
What is with a sudden publication of blog posts after a seemingly indefinite hiatus? I have no answer except that I do things when I feel like it. More specifically, I do things that are not mandatory (like my job) when I feel like it. That’s why I still have one. Speaking of job … | Continue reading
I’ve not written proper blog posts for a while now but I have come nearly full circle back to the start of my web career (albeit with a decade more experience and not necessarily any much smarter) to once again build a Drupal site. This is more a testament to the longevity of Dru … | Continue reading
I’m excited to share with everyone that the State of CSS survey for 2023 has gone live! Yes, it is slightly earlier in the year than last year’s iteration, but given the number of CSS features that have shipped in the meantime, we’d love to see if and how folks are using them. Or … | Continue reading
I just figured out how to get my Android phone recognised by Android Debug Bridge (adb) on my MacBook, which finally allowed me to remote debug websites on Firefox Android. Just so I don’t forget what I did, this is a short documentation of the steps needed to get everything to w … | Continue reading
I started my first full-time web developer job back in September of 2013 (not counting the period where I built random sites for random people). So it’s kind of like my 9 year anniversary of being able to earn a stable living by building on the web. Thanks, Sir Tim Berners-Lee. … | Continue reading
Before we get into all the hacking and unorthodox ways of doing things, let’s talk about background-clip: text properly. If you want an image or a gradient applied to a run of text, like so: You can achieve such an effect without having to use an image. There is CSS you can apply … | Continue reading
My good friend, Wei, has a pet peeve: unintended horizontal over-scrolling on mobile. Which is very different from intentional horizontal scrolling on mobile. Anyway, we thought it was worth a discussion, from why this phenomenon exists to how we can do our best to avoid it. As y … | Continue reading
Regardless of whether the title of this blog post is grammatically correct or not, this is a question that I’ve had the opportunity to tackle recently. And after meeting and chatting with a bunch of CSS folks at CSS Day, I figured it’d be a good time to organise my thoughts aroun … | Continue reading
Card-style components are pretty much still a thing these days, and there are many ways to make a bunch of identical rectangles look prettier. I’m quite fond of the pop art, or maybe it’s more of a comic book style art direction that uses thick bold outlines and bright colours. S … | Continue reading
Recently, I came across an animation prototype on a button hover state and wanted to see if I could build it with just CSS. To explain in words, when you hovered over the pill-shaped button, the background changed from a plain white background to a nice coloured gradient, and the … | Continue reading
I’m currently a member of the Chinese Text Layout Task Force | 中文排版需求, and we have monthly calls to discuss issues and work related to the Requirements for Chinese Text Layout. There were a number of interesting things discussed in the most recent one, enough for me to want to wr … | Continue reading
I had a conversation with my brother-from-another-mother, Zell, a couple days ago. Half catch-up and half discussion on the project we’re working on, which I’ll be honest, I have not been keeping up with very well. Project in question being a course called Essential CSS. There ar … | Continue reading
Recently at work, I ran into a situation where we had to revisit how SVG icons were being implemented on our pages. | Continue reading
As someone who loves and works with CSS on an almost daily basis, DevTools are something near and dear to my heart. | Continue reading
This blog has been around for more than 7 years. Where has the time gone? I first started messing around with vertical layouts after discovering the existence of writing-mode. | Continue reading
As someone who loves and works with CSS on an almost daily basis, DevTools are something near and dear to my heart. | Continue reading
Even though I’ve been doing web things for a while now, I confess I had never dealt with browser cookies other than clicking those cookie notifications on every other website you visit these days. | Continue reading
I migrated this website from Jekyll to Hugo about half a year ago and also took the opportunity to move hosting from GitHub Pages to Netlify. | Continue reading
Well, well, well. It’s that time again when I revisit some random thing I built years ago and brace myself for the extent of potential code rot. | Continue reading
This is a question that is impossible to explain with a short answer. But let’s give it a try. Red pandas are very cute and very fluffy. | Continue reading
I’ve had quite a bit on my plate lately, a sort of bit-off-more-than-I-could-chew situation, which is not an uncommon occurrence for me. | Continue reading
Some of you may have been seeing some buzz around the Web Monetization API recently, especially if you hang out on DEV. | Continue reading
I thought this was going to be a short-ish note on fixed positioning and jank, but as with almost everything I write, it grew into a long-ish post about containing blocks, rendering and scroll performance. | Continue reading
The last time I wrote about Drupal was 2017, when I built the company website for my friend’s husband. It was a proper paid project, which really did come at a good time because I was about eight months fun-employed at the time trying to get my own company off the ground. | Continue reading
It’s been a couple months since my last proper “ship-to-production” layout project (the last one being the React Knowledgeable website, subscribe to their YouTube channel if you haven’t ❤️). | Continue reading
After 1992 days on Jekyll hosted on GitHub Pages, all the nonsense I have published on my website is now being built on Hugo hosted on Netlify. | Continue reading
I’ve come across people who do not think that CSS is related to internationalisation at all, but if you think... | Continue reading
Recently, I’ve been trying to build an open source video conferencing application specifically for online meetups. Just like every other... | Continue reading
I was at JSConf China earlier this year, which happened in Shanghai from 19–20 Oct. There was fairly decent representation... | Continue reading
For someone who never learned “computers” in school, I’m actually pretty fond of the command line interface. I was one... | Continue reading
Talk.CSS, which is Singapore’s monthly CSS meetup, has a segment called CSS colour of the month, where we mention 1... | Continue reading
Recently I got the chance to do an interview with Vitaly Friedman as part of the run-up to View Source... | Continue reading
When Firefox 66 was released, one of the features that got myself and a couple other layout enthusiasts really excited... | Continue reading
Some of you might know that I run the CSS meetup, Talk.CSS in Singapore together with my best mate, Wei.... | Continue reading
So I have this friend, Wei, who’s basically an expert with CSS blend modes, right? And she came up with... | Continue reading
Welcome to yet another edition of Hui Jing doing things that have no practical use but do it anyway because... | Continue reading
I recently got the opportunity to visit the Mozilla Community Space in Jakarta and speak at MozKopdar JKT with Alex... | Continue reading
I recently came across a post by Ben Frain expressing his frustrations about CSS shapes and exclusions. And although I... | Continue reading
If you were one of those kids that wondered why you had to attend all those math classes and learn... | Continue reading