Random thoughts about design, technology, and CSS.
Most of them are past tweets.

Design

A mobile-last approach will prevent boring designs.

Sometimes, the address bar is the best user interface of a website.

When designing symmetrical Retina icons, use only multiples of 4.

Working on visual consistency is a designer's premature optimization.

I don't mind making a design visually unappealing as long as it was both usable and memorable.

Some products have such terrible websites that I rather head towards their Wikipedia entry to actually learn what they do.

The perfect visual toggle switch conveys its current state without requiring any interaction.

Differentiating visited links is one of the most basic web features but nobody seems to give a shit about it anymore.

Icons are overrated.

Designers who can't code don't know how to iterate.

Design consistency has more to do with laziness than reasoning.

"Often designers who can code are considered 'unicorns' because of their rarity."

Technology

Recommendation is like Go: humans are infinitely better at it. A successful algorithm would need to be able to detect patterns.

Mobile interfaces rely more and more upon swipes rather than taps, which confirms the laziness trend that technology generally embraces.

Not a fan of Basecamp or Trello. Pretty sure there's something better to be built. Or maybe I'm using it wrong.

The kind of people who think that IRC is obsolete are the same that mistake the Web for the Internet.

"Touchscreen" has become a synonym for "Smartphone", although I can think of a touchscreen phone with limited abilities (not having an app store being one) that would suit the non tech-savvy.

I'd love to design hardware.

CSS

I write my CSS in line. So having a git diff of 15 lines can mean having changed 100+ properties.

My biggest issue with CSS is namespacing.

You should write CSS by contextualizing your selectors.

Transform is not a shorthand property, although transform-origin and transform-style exist.

You can't make tables responsive without duplicate content or JavaScript.

Don't use id's in your CSS. You'll end up with nonsense such as #nav #nav-home{ } which disrupts the uniqueness of the selector.

CSS priority is like a flock of pigeons fighting over the same breadcrumb.

I'd love to have a tool that, for a given CSS property, retrieves all the selectors to which it's applied.

Use CSS transitions when your animations only comprise 2 keyframes.

Too bad CSS animations only provide time but not speed. I'd love to have pixels/second.

Hard crop and soft crop become almost irrelevant with background-size: cover and contain.

Minifying a CSS file won't remove unused styles or unoptimized definitions.

A higher z-index value of a child element will become irrelevant if its parent already has one.

Animations should have a snapping threshold (like 3px) below which it reaches its final state instead of moving by 3px for 1 second.

With a body at height: 100%, position absolute and fixed act the same for a child element.

One reason why W3Schools is a better resource than Mozilla for CSS properties: it actually tells what the default value is.

Switching from position: relative to position: absolute triggers a scroll to top.

It's easier to position background images rather than inline ones.

The annoying thing with box-sizing: border-box is that you have to change your min-height every time you change a padding value.

The margin of a child element will be part of its parent only if the parent has padding.

Applying transform: translate3d actually kills the children's fixed positioning.

Applying position: absolute actually cancels the display: table-cell.

ul{ font-size: 15px; line-height: 1;} will render differently than ul{ line-height: 1;} li{ font-size: 15px:}.

If you use display: inline-block, you're gonna have unpredictable vertical margins that are only manageable with vertical-align.

Ordering your CSS properties alphabetically is the only future-proff best practice.

Having a .list-products selector is a better abstraction than .list-grid.

Keeping track of line heights is probably one of the trickiest challenges of CSS.

I wish you could define transition-duration per property.

Bonus

In jQuery, $(this).index() and $collection.index(this) can return different values.