Articles by

Chris Coyier

Founder, writer, designer, spam-deleter, email personality

Looking to Hire Someone for Web Work?

The very first thing you should do is start writing. Just open a text file and define exactly who your ideal hire is. What they are like, what they hopefully know, what you’ll need from them, and what you can …

HTML5 Progress Bars

Direct Link

Comprehensive research by Zoltan Hawryluk on the <progress> element. Screenshots of default styling across different browsers, overriding that default styling, shadow dom, polyfills, states, and fancy replacement tricks.…

Async Script Loader with Callback

var Loader = function () { }
Loader.prototype = {
    require: function (scripts, callback) {
        this.loadCount      = 0;
        this.totalRequired  = scripts.length;
        this.callback       = callback;

        for (var i = 0; i < scripts.length; i++) {
            this.writeScript(scripts[i]);
        }
    },
    loaded: function (evt) 

WebKit Selector Performance Changes

Direct Link

Nicole Sullivan covers some of Antti Koivisto’s work on making CSS selectors faster in WebKit. Clever stuff, which Nicole helps make understandable for all of us. Mostly stuff that helps the browser “rule out” selectors more quickly. I hope other …

Responsive Multi Column Data Tables

Direct Link

Maggie Costello Wachs from Filament Group shares the best approach to responsive data tables I’ve seen yet. Remember the problem: exploring a large data table on small screen devices means a bunch of horizontal and vertical scrolling, which sucks. Her …

(Updated on )

Reversing Text

For right-to-left languages, you can swap the default left-to-right layout in most browsers simply through the dir attribute.

<body dir="rtl">
  text in right-to-left language
</body>

You can use that attribute on any text element, it doesn’t have to be the …

Public Service Announcement: Watch Your @font-face font-weight

Many (especially decorative) web fonts come only in a few selected weights and styles. It's smart to load as few as possible since they can be quite heavy, but also make sure you only use them in the weights/styles you load otherwise the browser will fake it for you and muddy it up.
(Updated on )

Thank You (2011 Edition)

Hey folks! It’s that time of year again where I write a post to say thanks to every person visiting this site. CSS-Tricks is part of my career, so just by virtue of you visiting this site directly helps me.…

(Updated on )

Custom Events are Pretty Cool

Callbacks are one way to keep JavaScript functionalities cleanly separated, but they aren't always enough. Using custom events are easier, more flexible, cleaner, and can make more obvious readable code.
(Updated on )