client-work (14) codrops (13) computing (1) css (56) design (35) devlife (17) devtools (2) drupal7 (28) drupal8 (7) emoji (1) frameworks (3) git (1) github-pages (5) gitlab-pages (1) gulp (5) hardware (2) html (10) i18n (4) javascript (13) jekyll (6) kohana (3) nexmo (6) nodejs (7) opinion (32) performance (4) podcasts (3) retrotech (4) rtc (1) servers (2) side-project (4) site-building (12) specifications (1) theming (4) translated (5) typography (15) workflow (8)
2019

Where did CSS named colours come from?

Talk.CSS, which is Singapore’s monthly CSS meetup, has a segment called CSS colour of the month, where we mention 1...

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....

Talking about talking CSS 2019 edition

November 24, 2016. The day I gave my first conference talk at CSSConf.Asia. June 3, 2017. The day I spoke...

Friends don't let friends implement dark mode alone

So I have this friend, Wei, who’s basically an expert with CSS blend modes, right? And she came up with...

Animating grid rows and columns

One of the biggest things in version 66 of Firefox was the ability to animate grid rows and columns when...

Understanding grid placement through building a HTML periodical table

I’ve been using CSS grid to build layouts for quite a while now, and all my designs to date involved...

Using CSS to make a print banner

I talk about the web. I talk about the web a lot. But sometimes, we need stuff made in the...

A short musing on writing systems

As I continued to work on my talk for JSHeroes (come say hi if you see me there), I couldn’t...

Examining ‘squishiness’ in Intrinsic Web Design

One of the highlights in the world of web design for 2018 was when Jen Simmons came up with the...

2018

A visit to the Islamic Arts Museum Malaysia

Even though I had lived in Kuala Lumpur for about 8 years previously, I had never visited the Islamic Arts...

Talking about talking CSS 2018 edition

Last year was the first time I spoke at any event outside of Singapore, and it was quite a whirlwind...

How I design with CSS grid

After a couple of rounds of introducing CSS grid to people who haven’t tried it before, I found it wasn’t...

2017

Building a webic community

So this month, I met a lot of awesome people while attending my very first Mozilla All-Hands, among whom were...

Recap of Tales of the Malay World

It is not a secret that I am a huge fan of Singapore’s national libraries. Their selection of books and...

Remember December: The typefaces of Tikhvin Cemetery

I got the chance to travel to Saint Petersburg, Russia in June earlier this year for pitercss conference. It was...

Vertical typesetting with writing-mode revisited

About year ago, I wrote about the findings from an exercise in attempting to typeset Chinese vertically on the web....

Debugging CSS Grid Layouts With Firefox Grid Inspector

You may have heard quite a bit of talk about a CSS feature called Grid this year. If you are...

Using feature queries for cascading web design

Feature queries, AKA the @supports rule, were introduced as an extension to the CSS2 as part of the CSS Conditional...

Practical uses for the aspect-ratio media query

Back in 2016, during my first ever conference talk (albeit a sort of lightning talk) at CSSConf.Asia 2016, I said...

Building a CSS-only image gallery (with fallbacks)

This article has been translated to Japanese on SeleQt. Sometimes, we get handed a project in which we have almost...

Talking about talking CSS

This is almost a live recap of my tour of South-east Asia (and Hong Kong) this month (September 2017) and...

Basic grid layout with fallbacks using feature queries

This article has been translated to Japanese on SeleQt. I’ve been using CSS grid (which henceforth will be referred to...

Rethinking web design

I’ve been thinking a lot about web design lately. Actually I’ve been thinking about web design ever since I started...

Over-engineering Sass maps

I finally put together a landing page for the little random demos I build from time to time because, you...

The typefaces of Recoleta

I have a soft spot for stone engravings and whenever I get the chance to travel to a location that...

Building for cross-browser compatibility

This is the third post of a multi-part series about developing the brand identity for Wismut Labs. The previous post...

The one in a minimalist hacker chic

I have an Argentinian friend. Not an acquaintance. A proper good friend. This is highly improbable, at least in my...

2016

Chinese language on the web

If you hadn’t realised by now, I am Chinese. I was born in Malaysia, then studied and now work in...

Fun with CSS: NBA edition

This is my second “Fun with CSS” post, maybe this should become a series. But anyway, I had watched the...

Fun with CSS: TechLadies edition

So there’s this thing going on known as the TechLadies Bootcamp. TechLadies is a community-led initiative for women in Asia...

Tim Brown on Shoptalk Ep. 218

Episode 218 of Shoptalk featured an audio clip by one of my favourite designers, Tim Brown. It’s a short clip,...

Web designers, can you speak web?

To start things off, let me state my position. This house proposes that because HTML and CSS are the language...

2015

Drupal 101: Improving the content authoring experience

Episode 101 of Jen Simmons’ wonderful podcast The Web Ahead featured content strategist Eileen Webb. Good stuff from start to...

A better web design process

The web is not print. I’m definitely not the first person to write about this. Just google that phrase and...

The one where I grok jQuery

My next assignment was actually with the very first client I ever worked with. Repeat client! This time, the task...