# Who is User Agent Man?

Photo: Don Kittle

I am Zoltan "Du Lac" Hawryluk (and yes, Zoltan is my real name) and User Agent Man is my blog of all things web development.

I am a web developer born and raised in Toronto, Canada. I do research on all types of web technologies. I am also the author and contributer to all sorts of open source projects including both as a primary author (e.g. Progressive Pushstate and The CSS3 Font Converter) and well as a contributer (e.g. Picturefill, Viewport Units Buggyfill and a Slack plugin for Pidgin and Adium).

When I have time, I like to write about what I learn here so I can give back to the web development community. More about me.

## Recent Posts

### The CSS3 matrix() Transform for the Mathematically Challenged

January 7th, 2011 by zoltan · 46 Comments

The CSS3 transform property can do some really cool things – with it, web designers can rotate, scale, skew and flip objects quite easily. However, in order for designers to have fine-grained, pixel level control over their transforms, the matrix() function is hard to beat. This post explains what it does and the math behind the code. It also includes a tool to help you create matrix() transforms easily using HTML5 Drag and Drop for the user interface and the Sylvester JavaScript library to do the mathematics needed to calculate the matrix values so you don’t have to (in case you have difficulties with math, or if you just are lazy and don’t want to be bothered).

### Cross Browser HTML5 Ruby Annotations Using CSS

October 29th, 2010 by zoltan · 9 Comments

Ruby Characters, although used originally to help people read complicated Chinese and Japanese characters, can also be used to annotate all types of information to written text. This article shows how you can use it in browsers that support it, but also in ones that don’t using a simple stylesheet.

### Using CSS3-Style Transforms in IE Without JavaScript

September 12th, 2010 by zoltan · 13 Comments

The IE Transforms Translator will allow you do Cross Browser CSS3-style Transformations without using a JavaScript library like cssSandpaper.

### Giving Challenged @font-face Fonts The Italics Makeover

September 7th, 2010 by zoltan · 5 Comments

Have a font that doesn’t have an italics variant? Does your browser try to attempt to “obliquify” it (badly) or not do anything at all? There is a simple solution to this problem using CSS3 Transforms.

### How to Make ClearType, @font-face Fonts and CSS Visual Filters Play Nicely Together

September 2nd, 2010 by zoltan · 17 Comments

Ever had a problem with using IE’s Alpha Visual Filter and getting blocky text? A solution has been found, and it doesn’t use JavaScript. I expect to hear a sigh of relief from many developers.

### Coding Colors Easily Using CSS3 hsl() Notation

August 28th, 2010 by zoltan · 16 Comments

The seemingly impossible task of coming up with color codes off the top of your head can be done easily using CSS3’s hsl color notation. Read how you can use this “human-friendly” and how it can work in the few browsers that don’t support it natively.

### Creating Cross Browser HTML5 Forms Now, Using modernizr, webforms2 and html5Forms

July 27th, 2010 by zoltan · 38 Comments

Next generation web forms using HTML5 is hard to do today due to spotty browser support. I demonstrate how a suite of JavaScript libraries can be used to help us use HTML5 Forms today.

### visibleIf – Dynamic and Complex Interactive Forms Using HTML5 Custom Data Attributes

June 20th, 2010 by zoltan · 6 Comments

One thing HTML5 forms can’t do is dynamically show and hide form elements according to the data that the user has already entered. My new library, visibleIf gives you a very easy way to do this using the HTML5 data- attributes.

### cssSandpaper Now Supports transform: translate() and rgba() Gradients

May 6th, 2010 by zoltan · 1 Comment

In the first in a planned series of posts, I update cssSandpaper with new features. This week I add IE support for translate() support to CSS transforms and alpha channel support to linear gradients.