5 ms·
> Because then every time you want to tweak all buttons on the site, you tweak it in one place. What do you do, when the button markup changes? Let's say you n
by darekkay 8y ago
> Because then every time you want to tweak all buttons on the site, you tweak it in one place.
What do you do, when the button markup changes? Let's say you need to make all links open in a new window? Then you still need to change 100 buttons. It's even more common for bigger components, like the ProfileCard example. What if the markup of your ProfileCard changes?
Instead of using CSS to define your components, I suggest using some real reusable components, either using templates or JS frameworks (depending on your use case).
- yakshaving_jgt 8y agoOpen up Vim, and do a global find and replace with a simple regex. That's 100 or even 10,000 button changes in a minute. That's not really related to "functional CSS" though.
- darekkay 8y agoYour simple regex will take you 1-2 additional minutes to deal with prettified code like this: <button href=".." class="...." >Button</button> And when you start fixing more complex components and HTML edge cases, you will have a lot of fun [0]. This is fine for legacy code. But I don't want to deal with this in modern projects, if I can just change a single file and be sure all components are updated. As you said, this is not related to functional CSS, but it solves many disvantages of it. [0] https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags https://stackoverflow.com/questions/1732348/regex-match-open...
- beaconstudios 8y ago> What do you do, when the button markup changes? hopefully you'd have a Button component in your preferred UI framework, and you'd change it once there.
- darekkay 8y agoExactly. The same applies to CSS when using the functional CSS approach. It's basically: if anything changes, I need to update my Button component.
- andrewingram 8y agoRight. With the surge in popularity of components architectures, the maintainability concerns of inline styling methods are much less applicable. Perhaps there are other legitimate problems, but this one should be put to bed.