The mastery to front end development is understanding the semantics of HTML.
At every single company I worked for, I had to teach people to stop using div tag for everything. You can style things however you want, or even create components that the browser does not allow you to style (as long as you have fallbacks).
> I had to teach people to stop using div tag for everything.
And the crazy nesting of divs 5, 10, or even 15 layers deep.
Like… _no._ Just hand your senior card back to the issuer, and go back to being a junior. If you cannot create a simple layout with only 2-3 layers of divs _at most,_ there is something seriously wrong with your front-end skill set.
Pressure to get things done now. No time in the future to correct things. Possibility of getting fired for falling behind your peers that make the same shortcuts while you attempt to do things better.
It’s always an issue with management that doesn’t care about doing things correct. So the incentive to keep your job is always perverse.
Does HTML even have semantics? You practically can use div for everything, and then use CSS to make it act like whatever component you wanted.
You should let the defaults do their job, but they don't do very much. HTML's main semantic is to give things a hierarchical structure. Visually it's a free for all after that
no no no, different elements have different behaviours. for example, a button automatically has accessibility features like being able to tab to it and select with Enter key, which is essential for a screenreader. do that with a div and you end up building the functionality from scratch.
if all you care about is the visuals, sure, there's little difference, but once you scratch the surface you will have a poor product by not using the correct elements (where there is a clear "correct" ofc, sometimes it's subjective).
Svelte 5 does a great job of raising warnings for this. You try to use an onclick on a div you get warning to make it tab-able and give it an aria role, and a reccomendation that you should probably be using a button.
At every single company I worked for, I had to teach people to stop using div tag for everything. You can style things however you want, or even create components that the browser does not allow you to style (as long as you have fallbacks).