Submind YouTube summaries
Thumbnail for The most undervalued front-end skill right now

The most undervalued front-end skill right now

Watch on YouTube

Video summary

The most undervalued skill in modern front-end development is not related to prompting AI tools but rather the ability to quickly identify and fix errors that inevitably arise when using them. While artificial intelligence can generate code efficiently, it occasionally produces mistakes ranging from minor issues to catastrophic failures. Developers who excel in this field are those who can spot a problem within minutes and resolve it immediately, whereas others may waste significant time repeatedly prompting AI without understanding the root cause of the error. The speaker emphasizes that being able to rapidly diagnose these glitches is crucial for maintaining productivity and ensuring code quality, especially when relying on automated tools for tasks like writing CSS. A primary example of common issues involves layout constraints where elements overflow their containers due to fixed dimensions or improper spacing declarations. Large language models sometimes generate specific problematic patterns, such as setting a width to 100% without accounting for margins and padding that fall outside the border box, which causes unexpected overflows even if `box-sizing: border-box` is declared elsewhere. The speaker demonstrates how replacing rigid fixed sizes with flexible constraints like max-width or min-height allows elements to adapt naturally to varying content lengths. Additionally, unnecessary height declarations are often removed in favor of default auto values, while margins that create unwanted gaps can be eliminated by using padding instead or switching to CSS Grid and Flexbox gap properties for more structured spacing control. Beyond fixing immediate bugs, the video advocates for adopting resilient coding practices that make stylesheets easier to maintain and scale over time. This approach involves establishing clear strategies such as resetting default browser margins to zero, avoiding external margin accumulation on nested elements, and utilizing modern layout techniques like CSS Grid to manage space efficiently without fighting against collapsing margins. The speaker promotes a mindset where developers do not just accept generated code but actively debug it by understanding how browsers render layouts and why certain declarations fail. By mastering these fundamental concepts of spacing, sizing, and structural logic, frontend engineers can ensure their applications remain robust regardless of whether the initial code was written manually or assisted by AI tools. Ultimately, the goal is to empower developers with a deep enough understanding of CSS mechanics that they can efficiently debug any issues thrown up by automated systems without getting stuck in endless cycles of reprompting. This skill set transforms potential roadblocks into manageable tasks, allowing teams to move forward quickly even when AI-generated code contains flaws. The speaker concludes by highlighting their course on writing resilient CSS as a resource for learning these advanced debugging and layout strategies, encouraging viewers to take control of their development workflow rather than passively relying on tools that may introduce errors. By focusing on problem identification and solution implementation, developers can build high-quality front-end experiences while minimizing the friction caused by inevitable technical hiccups in an AI-assisted environment.
Read the full video transcript
The most undervalued skill in front-end development right now has nothing to do with prompting, but instead it has to do with identifying and fixing problems. Because every now and then AI is going to get things wrong. Now, this doesn't happen every time you prompt something, and it's not that all of the errors are catastrophic, though that definitely can happen from time to time. But when these problems do come up, there's two kinds of developers that are out there. There's those that can identify the problem in under a minute and go ahead and fix it relatively quickly. And there's others who spend half an hour reprompting the AI trying to understand what's wrong with it and trying to get it to fix the problem that it created in the first place. And being a CSS person, I see this happen with CSS a lot. So, we're going to dive in and look at some of the things you can do with CSS to be able to solve the problems that come up and the types of things you want to be looking at and identifying uh when things happen. And this is actually a challenge that is in my course CSS Demystified that we're going to look at and do together, where this is what we want and there's some problems right now. And so, let's jump to full-screen mode here and I'm just going to make the font size bigger uh so, you know, for recording purposes, you guys can see what's going on. And everything looks okay in terms of the markup. I don't see anything that would be catastrophically problematic there. But when it comes to CSS layout issues, it's really useful to be able to quickly look at things and go oh, red flag right away. This is a very simple example of the types of things that you might be looking for. But we have like our text is too close to the top over here. Uh we obviously have some overflow, which is the easiest problem. And there's a few other smaller things here that can easily pop up. So, the very first thing is just fixed hit a widths and heights. Now, LLMs generally don't do this this these days, but it is still one of those things that we want to avoid at all costs. And I always say if you're going to be setting a size on something, you don't want to set a fixed size, you want to set a constraint. So, I'm going to set a max width here. And that means, you know, I'm actually able to get smaller than that. We can see here it's shrinking and growing uh instead of being locked in at that size. And for a height, again, you could set a constraint. If you need the constraint. It would be a min-height, uh which means like if this was bigger than it would it would be able to be bigger. And so like most of the time height is actually a useless declaration. And this isn't the type of useless declaration that an LLM will generally make. It's usually a person will throw that on there. But if we don't set a height, height auto works. It's fantastic. It works with how the browser wants to work as the content has different amounts of space. It can adjust and grow and shrink and and do what it needs to do. But the types of useless declarations that LLMs do do every now and then actually does sneak its head into what's causing the overflow over here. And if I come and take a look, there's a width 100% right here. And this is what the issue is. And if I if we take this off, you're going to see it fixes itself. Nice, right? Now, some eagle-eyed people watching this might be going, "Kevin, that wasn't the problem. The problem was that you never declared a box-sizing border-box." But that's not correct. Even if I put that, let's do it really quickly here. I'm just going to do a border Oh, not border box-sizing of a border-box on here. It's fixed it a little bit, but it's still not completely there. And the reason for that is box-sizing border-box width 100% plus margin margins are outside of your border-box. It's not included in there. Just like height, a lot of the time the auto works fine. Same thing here. A width of auto works fantastically well, and I don't actually need to declare a width there. So we can get rid of that one. Our layout is almost there. We have the major issue I would say right now is I Do I even want margin on here? When you have an element inside, you generally don't want to put margins outside. And this is the type of thing that can sneak in sometimes because you're focused on the one thing that you're writing code for. And you go, "I need space all around it." But this would probably make more sense if I took this margin off completely to begin with, which now I guess that width 100% wouldn't be an issue. >> [laughter] >> If you if you did have your box-sizing, but then coming all the way back up to my card, I would replace that with this padding of the 24 pixels here, which adds it all around. And anytime you need more background, we want to come in with some padding. So, quick things that we can identify there. And now the main issue is we have extra space here. We had weird spacing, we still have weird spacing there. And the spacing down here at the bottom is also getting kind of weird as well. Once again, margins start rearing their ugly head. We had collapsing margins going on. Now we actually have extra margins happening. So, here on the title, where I had this margin top, cuz I needed some extra space that wasn't actually doing anything, I can remove that. And not only can I remove it, I actually want to say that the margin top is zero. We can have a CSS reset here that's getting rid of all of our margins. That would probably be a little bit more standard, but we can see we got rid of that weird space at the top there. And then here, I would probably want to come down on the content. And it's not even on the content, it's coming from the paragraph here. So, maybe my content, you know, this is where maybe you actually have a star of a margin of zero. And then that gets rid of all of the spacing. And then here we can do a display grid, and then a gap of whatever [snorts] space that we want to have to replace the margin with gaps. There's a few different strategies here. I'm not always a fan of this specific one. There's other ones that I do like. And of course, this is all part of my course CSS Demystified, where I talk a lot about this. This is part of my Making Sense of Layouts module that's here right now. We have strategies with dealing with margins, which is all about bringing in the different amounts of space, coming in with grid, creating structured ones when we want to do a flexbox of grid, all the different things like this. And the whole point of the course is to understand CSS better. This specific module Layouts, I'm doing a new module right now called Writing Resilient CSS, which is all about writing CSS that can scale and be maintainable. And it's all about getting you to understand CSS better. So, whether you're writing it yourself and you just want to be more efficient and and not be fighting with the CSS, or if you are using an LLM or some other AI tool to write CSS for you and other front end stuff, but every now and then there are problems that come up or things to debug. You'll be able to identify the problems easily, quickly, and fix them while you're at it. So, if you're interested in that, the link is down below, and with that I want to say a very big thank you to my enabler of awesome, Johnny, as well as all my other patrons and channel members for their continued support. And of course, until next time, don't forget to make your corner of the internet just a little bit more awesome.