DEV Community

Discussion on: Case against premade CSS frameworks (and Design systems)

Collapse
 
dragonwocky profile image
dragonwocky • Edited

I understand completely what you're saying. Personally, I think you're wrong. I do, however, agree with some of your sentiments.

You say that by using a CSS framework, you are not doing the site properly, and are just creating another boring site that looks like the millions of others already out there, and (in Material Design's case) are advertising Google instead of your own site. You say that because of this, no site using the framework is original or memorable.

Before I say any more - don't get me wrong. I completely agree that people should attempt to create unique designs for their sites, rather than just making another site that looks almost exactly the same as the other million sites using that framework out on the web.

However, there is nothing wrong with using a CSS framework at all. It can save you painful hours, even days, of fiddling with line after line of CSS to try and just fix the positioning of element after element (no, this isn't laziness speaking - this is my personal experience).

My opinion is this: CSS frameworks are nothing but a starting point, a tool that many people misuse. They fix some positioning, and give elements a smoother starting look, but that's all - they shouldn't provide global templates to build the web from. They are (or at least imo should be) made to be customised.

Take, for example, my site. I built it using Bulma for basic positioning, them completely customising it. When I remove the custom CSS, it looks broken and boring. When I remove the CSS framework, it looks broken and has all sorts of weird positioning and sizing problems. Now, I could spend a few days fixing these. I happen not to have those few days, and so I use a framework that lets me develop the design idea I had for my site far more easily and quicker. It ends up looking the same either way.

Think of it this way - you keep a bunch of CSS snippets that you use a base for each of your projects. They seem to contribute nothing visible towards the final look, but without them everything seems distorted, positioned a bit oddly. Frameworks are, in a sense, an advanced version of this. A whole lot of snippets put together to form a whole that fixes positioning (and is quite possibly compatible with far more than your 5 minute solutions could sometimes be - although, yes, compatibility with older browsers is rarely a priority for me), but also adds a set of default looks for many elements that look quite ugly without any CSS.

To summarise my opinion: There is nothing wrong with CSS frameworks - they are simply a starting point made to be customised (but often wrongly used) that can save you hours of extra work.

Collapse
 
vlasterx profile image
Vladimir Jovanović

Thank you Dragon ;)

Please don't get this wrong, but as a 14 year old developer, you have a long road ahead of you when it comes to learning CSS and positioning. I say this as someone who has more than 20 years of professional experience ;)

CSS is not that hard and it is the first thing you should master if you want to be web designer or front-end developer.

Take a look at this presentation from Morten Rand-Hendriksen. He is one of my favorite web designers. This one is about CSS Grid and a great new way to position elements on the page. You won't need any premade grids after this.

youtube.com/watch?v=7kVeCqQCxlk

Collapse
 
erebos-manannan profile image
Erebos Manannán

Don't get this wrong, but as someone with 20 years of professional experience you should know that your time is valuable enough that you shouldn't be spending it reinventing the wheel every time you do something.

CSS is not that hard, and neither is Python, and as a good developer/designer you still use the best bits from existing libraries, frameworks, boilerplates, etc. to reduce the amount of work you need to do to reach your desired goal regardless of which you work with.

I sure don't want to rewrite a CSS reset every time I start a project. I also don't want to worry about the basic styling, positioning, responsive design etc. .. sure, you sacrifice a tiny amount of customizability for efficiency, but with a good framework and a experienced user that is indeed a very tiny amount, and the payback in terms of speed is massive.

Also you really don't seem to appreciate how annoying it is for users to have to figure out "what does a button look like on this site" every time they enter a new site. Because too many people already follow your way of thinking, "reinvent everything, reuse nothing", I regularly bump into websites where I don't understand the controls.

Thread Thread
 
vlasterx profile image
Vladimir Jovanović

Those 20 years of experience give me a vantage point over this occupation that I am trying to show to everyone else. But, as it turns out on the Internet, those who comment, like you, are refusing to open their minds to new ideas. Instead, you project your own fears and insecurities to those new ideas, when in fact there is no place for concern.

Now don't you get this wrong, but you are seeing this problem from your perspective, without the whole picture.

Most of the problems you have mentioned, I never wrote or argued against.

Read it again carefully, go through comments and maybe you will figure it out. If not, then it will take time and a lot of personal experience for you to maybe come to the idea I wrote about.

Have a nice day.

Thread Thread
 
erebos-manannan profile image
Erebos Manannán

Really sounds like you're the one who's failing to open their mind. There are lots of benefits to using existing templates, boilerplates, frameworks and such, and using them doesn't mean you're 100% copying some other company's style and don't look unique.

Thread Thread
 
dragonwocky profile image
dragonwocky • Edited

Thanks Duke.

It really does seem to me that you are the one not opening your mind, Vladimir. I may be a newbie with little experience - but maybe that's good. I'm able to look at things from a fresh perspective and, instead of listening to habits and opinions built up over the years, just look at something and ask myself "does this make sense or not?"

Nobody should ever use a number like that as an excuse. It's the typical "I'm older/younger than your, and have more/less experience than you, so you should take my opinion as fact that pushes your opinion out of the picture" view.

I don't mean to be rude, but - you have 20 years of experience? Great. You've been doing this for a while. You're not the only one with a brain. Everyone, experienced or not, should have their opinions equally valued and judged.

Thread Thread
 
vlasterx profile image
Vladimir Jovanović

"Everyone, experienced or not, should have their opinions equally valued and judged."

Of course not, we don't live in communism. You have to earn that right, same as everyone else in their life. If that was not the case, professions and professionals woudln't be valued at all.

But then again, it is your right to disagree and to learn from your own mistakes. You need that in order to grow as a person. Everyone has been in that phase of life, especially in teen years. In a way I envy you because it is all new to you and you get a chance to discover it all on your own, but the things that are new to you with all of the positive and negative sides is something that I have established so long ago. You will get far since you have started so young, if you endure this calling and then start to create something new, that no one has done before.

You will need a lot of learning before you earn the right for a "fresh perspective".

My discussion ends here because internet arguments can go on forever.

I wish you all the best.

Thread Thread
 
dragonwocky profile image
dragonwocky • Edited

Ah. Thanks for the good wishes, but you've taken what I've said the wrong way. You probably won't reply to this, but I hope you at least read it carefully.

No, what I'm saying has nothing to do with communism. Context is important here.

I am saying that in a civilised argument, nobody should dismiss another's opinion simply because of a number. I'm not saying that experience should go out the window. I'm not saying that everyone is equal. Yes, you sometimes need to earn the right of being listened to. But no matter what, you should at least consider someone else's opinion. Get out of your comfort zone, try to understand what they're saying. Judge their opinion as harshly as you would your own opinion. Do your research. Take nothing at face value. Nobody, not even someone with decades of experience, is right all the time.

Professionals are valued because of their skill, not because of how long they have been doing that thing. Someone may have been doing something for 30 and still have no clue what they are doing - definitely not a professional. Someone may have been doing something for 5 or 6 years, yet understand it perfectly and be incredibly good at it, and so be called a professional.

By fresh perspective, I meant a perspective that actually is fresh. New. A blank slate. The perspective of someone who has no idea what's going on. I guess that no longer accurately applies to me, but you get the idea. If someone looks at something with the perspective of someone who's already learnt a lot about it, that's not exactly fresh, is it?

Thread Thread
 
erebos-manannan profile image
Erebos Manannán

Well you're doing exactly the opposite of what you're preaching.

You're saying people should be open to new ideas, yet you stick to the ancient practices of doing everything yourself from scratch, instead of embracing the relatively new idea of CSS frameworks, and that they can be very beneficial also outside of prototypes and internal components.

You seem to assume I've not given a try to building styles from the scratch. I have, many times, before and after the popularity of CSS frameworks. When the first widespread CSS frameworks came out I agreed with what you're preaching now. They were not very good, and people ended up completely locking into someone else's style. Things are quite different nowadays.

Even now when I know I'm building something small and simple I build things with a smaller "micro-framework" (Pure.css, Flexbox Grid, etc.), or when I know I'm building something with specific performance constraints (e.g. animation heavy things for mobile web) I might be more careful with what I use, but when building a larger application without any obvious issues to keep in mind the power of a good CSS framework is absolutely the way to go. Just don't forget to also customize it to fit your style, and I don't just mean tweaking a few colors here and there.

Thread Thread
 
erebos-manannan profile image
Erebos Manannán

Ah, looks like the poor comment reply pages made me confuse you with another person.

Thread Thread
 
vlasterx profile image
Vladimir Jovanović

If I didn't appreciate a dialogue, I wouldn't have responded in the first place.

You didn't propose anything fresh ;) It takes experience to see what is old (these million times reused frameworks, for example) and then to propose an idea how to improve on it, for example to dare to create new design systems and personal CSS frameworks that could be expanded and improved.

You will understand it, give it some tome. Don't rush it, just enjoy your learning for now, because there is a long way ahead of you ;)

All best!

Thread Thread
 
dragonwocky profile image
dragonwocky

By fresh perspective, all I meant was perspective, a point of view based on nothing but the present, without much fore-knowledge of the topic. Not necessarily a fresh proposal or a new idea...

But yes, bloated old frameworks are in great need of improvement. That's no different to most bloated old code that needs reworking. Not all frameworks are old and bloated, however. Plus - old or not, all modern frameworks are (or at least, should be) built to be customised to your own design.

Anyway, I feel like we're now starting to go in circles.

Collapse
 
dragonwocky profile image
dragonwocky • Edited

Of course. I have plenty left to learn.

I'm not saying I'm unable to do it without a framework, though - some of what I'm currently using Bulma for I've done before, and what I haven't I've still checked to see how it's been done and it doesn't look complicated at all. I agree that frameworks are not always necessary. All I am saying is that there's nothing wrong with using them when people do decide to use them, if those people customise them properly.