Jens Oliver Meiert

Should We Never Use Non-Logical Properties?

Published on Aug 8, 2025, filed under , (feed). (Share this on Mastodon or Bluesky?)

Should we never use non-logical properties? (Or, should we always use logical properties?)

No. *

And with that, I respectfully disagree with Chris Coyier. (Sorry!)

The way I see it, logical properties should, in a sense of a preference, be used in two cases:

  1. When our projects use more than one text directionality. In the vast majority of web projects, that’s not the case, and we can typically also be highly confident if it’s ever going to be the case. For example, frontenddogma.com is most likely to stay English-only, and not made available in Arabic or Urdu (even though that would be cool).

  2. When the respective expression would be shorter than the non-logical equivalent. For example, margin-block: 1rem; seems preferable to margin-bottom: 1rem; margin-top: 1rem; (though not margin: 1rem 0, if inline margins can be set at the same time).

Logical properties should also be used in projects where people expect us to use logical properties. Interestingly, this seems to be the main argument in many cases for logical properties: Use logical properties because others use logical properties. (Logically speaking—like, really logically speaking—, this is not a good argument, because nothing follows logically from others doing a particular thing.)

But there’s no universal law requiring the use of logical properties, and hence none of this is a must. †

We can double-check by asking: Could we build a web project without using logical properties—even an international one? Yes, absolutely. It might—not: must—use a little more code, but yes.

In the end, there are advantages to knowing and using logical properties—but since CSS offers so many ways of doing things, ways that are all legitimate, we’re not bound to a single approach. That’s the case with units, with layouts, with logical properties, and much more. Because it’s so easy to maintain (when separating concerns), CSS code is far less of a quality concern than HTML code.

* Or, still no.

† Frankly, this idea of a “must-use” of logical properties was the main reason to write this post. This would be unnecessarily restrictive, nearly dogmatic, given the many options CSS gives us. There’s almost nothing actually “prohibited” in CSS, and the few cases that could be argued—which don’t include things like shorthands or even !important—may yet lead back to dissatisfying user agent or assistive tech implementations. Before you jump at this—this isn't to say that everything should be used (that’s a logical fallacy)—just that in CSS, it can hardly be argued that something must not be used.

About Me

Jens Oliver Meiert, on November 9, 2024.

I’m Jens (long: Jens Oliver Meiert), and I’m a web developer, manager, and author. I’ve been working as a technical lead and engineering manager for companies you’ve never heard of and companies you use every day, I’m an occasional contributor to web standards (like HTML, CSS, WCAG), and I write and review books for O’Reilly and Frontend Dogma.

I love trying things, not only in web development and engineering management, but also in other areas like philosophy. Here on meiert.com I share some of my experiences and views. (I value you being critical, interpreting charitably, and giving feedback.)