From 3f6a9546ec13063d0d5bdf21d30a93d3e8aa6050 Mon Sep 17 00:00:00 2001 From: Bradley Taunt Date: Tue, 2 Jul 2024 14:22:21 -0400 Subject: Rebuild changes based off latest barf --- build/posts/over-nesting/index.html | 81 ------------------------------------- 1 file changed, 81 deletions(-) delete mode 100644 build/posts/over-nesting/index.html (limited to 'build/posts/over-nesting/index.html') diff --git a/build/posts/over-nesting/index.html b/build/posts/over-nesting/index.html deleted file mode 100644 index 25f9cc1..0000000 --- a/build/posts/over-nesting/index.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - Over-Nesting - - - - - - - -
-

Over-Nesting

-

2019-01-06

-

I think since our design industry moves so quickly and exciting new technologies get released almost daily, that we often forget some of the basics when writing CSS. I bring this up because I’ve recently worked on a few projects that show a slight disregard for proper class/selector nesting.

-

Now it’s completely understandable why designers and teams alike shrug off the concept of “over-nesting”:

- -

I personally believe these are all weak excuses that don’t justify the poor experience future maintainers of your code will face. You should always write your code with the idea someone completely new to the project will have to maintain it.

-

Let’s look at an average example of poor nesting that I’ve seen out in the wild:

-
/* These children elements can't be used outside 
-of the parent - not very flexible */
-.main-container {
-    .child-container {
-        /* This class specificity is too deep */
-        .sub-child-container {}
-    }
-}
-
-

Even if you know a child element will never be structured outside of it’s parent, what harm does it cause to still place it out of such deep specificity?

-
/* This code is far more reusable */
-.main-container {}
-.child-container {}
-.sub-child-container {}
-
-

Exceptions

-

As with anything, there are exceptions to the rule. If the nested elements pertain to the parent itself, it makes complete sense to group these stylings together. A button or link item are excellent examples of this:

-
.btn-lg {
-    &:hover {}
-    &:active {}
-    &:disabled{}
-}
-
-.link-item {
-    &:hover{}
-    &:focus{}
-}
-
-

Of course, this is all easier said than done. Limitations exist within teams or even on an individual level that might make this impossible to change. Maybe you don’t have the authority to rework your current CSS or it would eat up too many cycles and time is valuable - especially in the world of startups.

-

I’m not saying this is the only way to structure CSS - I’m only trying to make the lives of future designers/developers easier moving forward.

- \ No newline at end of file -- cgit v1.2.3-54-g00ecf