Hello there! My name is Steffan Williams. I'm a freelance front-end developer from South Wales. I love every caffeine-filled minute* of building beautiful, usable designs and writing good, clean code.

*I even enjoy some of the non-caffeine filled moments!

Most recently I wrote: Archiving Scribble

After receiving yet another 'your domain is about to expire!' email from GoDaddy, I decided to let it do just that. I'm finally shutting down Scribble, and archiving it to some dusty corner of my back-up hard-drive. I wouldn't be at all surprised if you're never heard of Scribble, but it was in building the site during my spare time at university that made me want to do what I'm doing today. I won't go into any details on how I built the app (mainly because it was so long ago, and I can't remember everything), but for nostalgia's sake I wanted to give it one final farewell.

Fluid Inconsistencies

In developing the next version of Gridinator, I wanted to make sure that everything that I was allowing in the pixel and em based layouts were available in the percentage ones too. That meant I needed to write fluid prefixes, suffixes and a few other things that are a little bit more complex in a liquid layout. So this is where I ran into some major inconsistencies in the way different browsers render percentage values.

Static Textpattern Forms and Pages

When I started work on redesigning this site, I also made the switch from WordPress to Textpattern. There was one thing that I really started to miss while developing the site — files for templates. WordPress had made this so easy in its theming system, which uses PHP files, thus allowing the use of an external text editor. Instead, Textpattern forces you to use a textarea in the admin interface, and saves the markup in a database. Since I like to have syntax highlighting and the ability to quickly edit multiple templates at once, I decided to create a little workaround to allow me to use files for both page and form templates.

Ignoring iOS < 4 when embedding Typekit

If you are one of the people who use multiple font weights, I've written a little script to browser-sniff for iOS under version 4 and not include the Typekit embed script.