CSS
Friday, June 26th, 2009
A marked change has occurred since the first Velocity Conference a year ago, and while the effects are not yet obvious, they will be. The web is still slow, but we have something now, that we didn’t a year ago: business metrics. This was the year we quantified the impact of performance choices on our businesses, and the results were astounding.
For those of you who couldn’t attend, this article summarizes results from AOL, Shopzilla, Google, Bing, Hotmail, and Chrome and gives pointers to highlights of Velocity Conference 2009.
Posted in CSS, Geek, General, Latest Happenings, Performance, event | No Comments »
Friday, March 27th, 2009
I’ve been tweeting and posting to delicious about reflows and repaints, and it seemed time for a blog post. Opera lists repaint and reflow as one of the three main contributors to sluggish JavaScript, so it definitely seems worth a look.
Reflows are very expensive in terms of performance, and is one of the main causes of slow DOM scripts, especially on devices with low processing power, such as phones. In many cases, they are equivalent to laying out the entire page again.
How to avoid reflows or at least minimize their impact on performance?
- Change classes on the element you wish to style (as low in the dom tree as possible)
- Avoid setting multiple inline styles
- Apply animations to elements that are position fixed or absolute
- Trade smoothness for speed
- Avoid tables for layout
- Avoid JavaScript expressions in the CSS (IE only)
Tools
A few tools have made waves lately. Stoyan Stefanov and I have been looking for decent ways to measure reflows and repaints and there are a few tools which show promise (despite being very early alpha).
Has anyone else seen any cool tools for evaluating reflows?
Posted in CSS, Geek, General, JavaScript, Performance | 30 Comments »
Monday, March 23rd, 2009
Yahoo! Developer Network has released a video of my Object Oriented CSS talk at Web Directions North just in time for Ada Lovelace day. I’ve also been included in a feature on Women in Technology. I’m absolutely flattered to be included among these fantastic technical women. Wow.
Object Oriented CSS: for high performance websites and web applications.
Find out more about object oriented css
- Open source project on github (GIT is having some DNS issues, be patient)
- Follow along with the slides on slideshare
- Join the OOCSS google group
Posted in CSS, Content, Geek, General, Image, Latest Happenings, Performance, Travel, XHTML / HTML, event | 28 Comments »
Saturday, February 28th, 2009
My Object Oriented CSS grids and templates are open sourced on github. They have all the functionality of YUI grids plus some important features.
- Only 4kb, half the size of YUI grids. (I was totally happy when I checked the final size!)
- They allow infinite nesting and stacking.
- The only change required to use any of the objects is to place it in the HTML, there are no changes to other places in the DOM and no location dependent styling. Eases back-end development and makes it a lot easier to manage for newbies.
- Solution for sub-pixel rounding errors.
http://wiki.github.com/stubbornella/oocss
template.css and grids.css
…My prediction is that you’ll be writing complex layouts in less than 24 hours without adding a line to the CSS file.
Posted in Accessibility, CSS, Content, Design, Geek, Image, JavaScript, Latest Happenings, Performance, XHTML / HTML, event | 64 Comments »
Thursday, February 12th, 2009

A bit of a rant
The cascade is something like a new data structure, and the ways for dealing with it are algorithms you never learned in school. You couldn’t have, because traditional engineering school poo-poos the front-end and web engineering in favor of stale (but still valuable) traditional software engineering.
Perhaps you realized this web thing wasn’t going away, so you learned a bit of javascript. That went OK, how hard is it to add another language to your repertoire? Now you just wish it would compile like a proper language. You hate the browsers, and (foolishly) wish there was only one. You find Ajaxian, and start thinking of yourself as super-engineer; the guy who can just as easily write a web UI as a cronjob to perform background data processing.
With the confidence of JavaScript success, you decide to tackle CSS, and then the problems begin. You start from scratch rather than using a library, because after all this is just a display syntax. (Do you also rewrite the math class every time you need a random number generated?) You don’t bother to learn proper semantic HTML, they must be joking! Nattering on about web standards and accessibility. It should be cake.
Nothing works as you expect it to. Your columns won’t line up. You never validated your HTML, and you have a sneaking suspicion that there is an unclosed tag somewhere. You can’t make even the simplest design look right, and you are pretty sure CSS is to blame, rather than your understanding of the technology. This should be just another acronym on your resume, right?
No. Resoundingly, no.
CSS can be predictable, scalable, modular and even object oriented. If it is written correctly, beginners can be productively participating in creating clean, reusable code in 2-3 weeks. But we need to change our approach, understand that the fundamental algorithms for a display language are different than a programing language, and yet borrow everything we can from software engineering, so that we don’t waste time reinventing the wheel.
Posted in CSS, Geek, General, Performance | 28 Comments »
Sunday, December 28th, 2008

I visited Yahoo! last week to record a talk I had given at the Front End Summit in October. If you are a designer or an F2E it is essential that you understand the ways in which design choices impact overall site performance. This talk establishes guidelines for High Performance Design including 9 Best Practices.
9 Best Practices
- Create a component library of smart objects.
- Use consistent semantic styles.
- Design modules to be transparent on the inside.
- Optimize images and sprites.
- Avoid non-standard browser fonts.
- Use columns rather than rows.
- Choose your bling carefully.
- Be flexible.
- Learn to love grids.
Web Directions North, Denver, February 2-7
I’ll be speaking more about Design and also CSS best practices at Web Directions North in February where I’ve been invited to give both a Performance Bootcamp Workshop and a CSS Performance for Websites and Web Apps Presentation. I look forward to seeing you there!
Posted in Accessibility, CSS, Content, Design, France, Geek, General, Image, Performance, XHTML / HTML, event | 7 Comments »
Wednesday, December 3rd, 2008
80% des problèmes de performance Web se situe au niveau des échanges avec le navigateur et sur le navigateur lui-même : échanges réseau, rendu dans le navigateur, organisation des composants dans une page etc.
Nous aborderons les principales problématiques et les solutions à mettre en œuvre. Forts de l’expérience de l’équipe performance de Yahoo!, à la fin de cette session vous saurez aborder la question des performances Web du point de vue du visiteur et mettre en œuvre les actions correctrices sur vos sites Web.
Posted in CSS, France, Geek, Image, Performance, Server, XHTML / HTML, event | No Comments »
Sunday, September 28th, 2008
Je vais parler (en francais! eek!) avec Eric Daspet de la performance des images pour le web a ParisWeb. Les inscriptions pour Paris Web 2008 sont officiellement ouvertes. Jusqu’au 15 octobre au soir, vous bénéficierez de tarifs réduits. Le conference sera lieu a Paris le 13-15 Novembre. J’attend vous voir bientot alors.
Voila le proposition
Voulez-vous améliorer la vitesse de vos pages web et réduire l’impact écologique et monétaire de votre hébergement ? Voulez-vous faire ceci avec peu de changement de code et en gardant une belle interface graphique ? Cette session va vous apprendre les 7 étapes pour mettre votre site web au régime. Comment perdre des poids que votre site a pris en rajoutant les dernières nouveautés. Et, encore plus important, comment ne pas reprendre ce poids !
Posted in Accessibility, Art, CSS, France, Geek, General, Image, JavaScript, Mobile, Performance, XHTML / HTML | 3 Comments »
Friday, September 26th, 2008
The Web Standards Curriculum published by Opera is a great place to start. It will give you the basics of Front-end Engineering from the ground up. The second wave of articles was recently published including a background image and sprites how-to by yours truly.
Time to board a plane, so I can’t tell you more just now, but check it out. It is a great place to get started or brush up on your understanding of web standards.
Posted in CSS, Geek, General, Image, Latest Happenings, Performance, XHTML / HTML | 1 Comment »
Sunday, August 24th, 2008
My Treo stopped syncing in January and I immediately started missing all my meetings. I need the device to ring every few seconds to remind me to blink and breathe, so life without a properly synced agenda was awful — just ask my colleagues. Guppy brain.
A Palm user for the past eight years, I made the switch to an iPhone 3G a few weeks ago. I’ve had one palm or another since I was gifted an S300 and became (shockingly) a productive member of society. I vaguely want to give the iPhone a fair shot, aware that my bias toward familiarity is inevitable, however there are a few things about the iPhone that totally and completely suck.
Posted in Art, CSS, France, Geek, General, Latest Happenings, Mobile, Performance, XHTML / HTML | No Comments »
Wednesday, August 13th, 2008

The YUI team released YUI3 for a sneak peek preview. The goals make me happy… especially goal 2.
- lighter (less K-weight on the wire and on the page for most uses)
- faster (fewer http requests, less code to write and compile, more efficient code)
- more consistent (common naming, event signatures, and widget APIs throughout the library)
- more powerful (do more with less implementation code)
- more securable (safer and easier to expose to multiple developers working in the same environment; easier to run under systems like Caja or ADsafe)
Posted in Accessibility, CSS, Geek, General, JavaScript, Performance, XHTML / HTML | 1 Comment »
Saturday, August 2nd, 2008
I spoke to audiences in four countries and got a little sick from eating street food along the way.
I just got back from a whirlwind 13 day performance tour of four countries. With only two days to present in each country I had to maximize impact as much as possible.
I was supposed to do two sessions the first day, and one the second. Instead it was more like four sessions the first day and three the next. Every two days I began the whole thing again. By the end, I couldn’t stand the sound of my own voice and I felt like I’d been run over by a truck. It was awesome.
No, seriously! I really liked it. It allowed me greater insight into the parts of my talk that work well, and others that are less fabulous. I think it has made me a better speaker, though my audience might disagree!

Posted in CSS, Geek, General, Latest Happenings, Performance | No Comments »
Monday, July 28th, 2008
Well, not quite.
But I am pleased with the results. Who would have thought that the shy girl who almost failed a public speaking course at university would turn out to really enjoy presenting. Turns out I only like speaking about geeky things, preferably to geeks. A limitation perhaps, but far less limiting than nearly peeing myself with fear in college. No, not literally.
Anyway, check it out. It is jam packed with brand new performance ideas to make your site fly.
Posted in CSS, Content, Cookie, Geek, General, Image, JavaScript, Latest Happenings, Mobile, Performance, Server, XHTML / HTML | 3 Comments »
Wednesday, March 19th, 2008
The Exceptional Performance team at Yahoo! added 20 new performance rules and refined some of the original rules. I’m really excited about this; this performance goodness is just what developers need to accelerate the user experience even further.
- Flush the buffer early
- Use GET for AJAX requests
- Post-load components
- Preload components
- Reduce the number of DOM elements
- Split components across domains
- Minimize the number of iframes
- No 404s
- Reduce cookie size
- Use cookie-free domains for components
- Minimize DOM access
- Develop smart event handlers
- Choose <link> over @import
- Avoid filters
- Optimize images
- Optimize CSS sprites
- Don’t scale images in HTML
- Make favicon.ico small and cacheable
- Keep components under 25K [mobile]
- Pack components into a multipart document
Stay tuned, we’ve got more tricks up our sleeve.
Posted in CSS, Content, Cookie, Geek, General, Image, JavaScript, Mobile, Performance, Server, XHTML / HTML | No Comments »
Sunday, December 23rd, 2007
The emergence of CSS Frameworks doesn’t prove the necessity of a major overhaul of the CSS Spec. Rather it is indicative of the maturity of the medium. Java programmers don’t rewrite the math class every time they code a new application. If you are reinventing the wheel each time you write CSS, you’re doing it wrong.
Posted in CSS, Geek, General | No Comments »
Monday, December 10th, 2007
Steve wrote an article about semantics. He does a good job of explaining his process.
We need to teach newbies to take a slightly broader view. Imagine, for example, an action list, which allows you to execute a certain number of actions relative to the context in which it is found. Think; “print”, [...]
Posted in CSS, Geek, XHTML / HTML | No Comments »
Saturday, December 8th, 2007
It is hard to remember not to make any mention of pants, even if I know what it means in British English. Beyond telling Murray Rowen that I liked his underwear in front of a crowd of people, I recently went to London to speak at the Front-end Summit being held there. I gave two talks. The first was High Performance Websites in particular the impact of choices made by front-end engineers. The second talk was about Architecting High Performance CSS.
Posted in CSS, Geek, Latest Happenings | 3 Comments »
Wednesday, July 25th, 2007
Posted in CSS, Geek, General, Performance | No Comments »
Wednesday, July 25th, 2007
Yahoo has released the much awaited (by me at least!) YSlow firebug extension which tests download speed and gives recommendations based on the famous 14 rules for fast web pages.
Posted in CSS, Geek, General, Performance | 1 Comment »
Saturday, July 21st, 2007
Half of my resume was missing. It was there on the screen, but in print preview and on the printed page reams of experience disappeared. Not ideal.
I discovered that when you use the formatting context to clear floats, firefox treats each printed page as a “box” with the overflow hidden. Elements with overflow: hidden applied will be printed partially or not at all.
Posted in CSS, Geek, General | No Comments »