What CSS Framework to choose?

Carlos Polanco
5 min readSep 7, 2021

--

There are numerous CSS frameworks that you can use for your projects. If you search in Google, you will find a top 10 list, the best Framework of 2021 top 5 frameworks for developers and designers, but if you are new to programming language, what the proper Framework to choose is? If You want your website or web application not only to look good but to be modern and stylish.

I know that struggle, and I have worked with Frameworks like Bootstrap, Semantic UI, Foundation, Bulma, Material UI, Materialize, Ant Design,IONIC, and Tailwind CSS (my preferred one), and all will depend on your CSS knowledge and the documentation.

Don’t get me wrong; I’m not saying that you need to be a master in CSS to use any of this Framework, but having a foundation with Flexbox, Grid, Position, media-queries will have a massive impact on you master any of these frameworks.

How do you choose your framework?

Remember that the primary goal of any of these frameworks is to implement style to your website quickly and easily and make your frontend development more productive and enjoyable.

BootsStrap

One of the most popular front-end frameworks with a pre-built dynamic template and numerous ready-to-use components. Almost anything, from alerts to modals to navigation bars, is supported by default and makes it easier for any developer to develop well-structured pages, even without prior front-end experience.

It is maintained by a community of hundreds of developers, ensuring stable releases and long-term support, and well documented.

Example of a bootstrap navbar:

<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-bs- toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricing</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</li>
</ul>
</div>
</div>
</nav>

For more about Bootstrap details visit: https://getbootstrap.com/docs/5.1/components/navbar/

Semantic UI

Which takes a unique approach focuses on writing “human-friendly HTML”. In other words, classes are named as closely as possible to how a person would speak. This makes writing HTML intuitive, especially for newer developers.

Example of a Semantic UI menu /navbar:

<div class="ui stackable menu">
<div class="item">
<img src="/images/logo.png" />
</div>
<a class="item">Features</a>
<a class="item">Testimonials</a>
<a class="item">Sign-in</a>
</div>

For more about Semantic UI details visit: https://semantic-ui.com/collections/menu.html#menu

Semantic UI menu vs BootsTrap navbar looks more attractive with less code and easier to understand lets see how they look on the browser:

Semantic Ui Menu
BootsTrap Navbar

As you can see, the BootsTrap navbar is fully responsive, and for the Semantic UI, you will need some extra configuration to make it responsive.Now BootsTrap looks a little more attractive if you don’t want to work on the responsiveness, right?

Let’s keep comparing and see how other frameworks work.

Bulma

It is an open-source framework that provides ready-to-use front-end components that you can easily combine to build responsive web interfaces. Bulma comes with naming conventions that are easy to use and remember, and It comes with a clean and modern design — even if you don’t change the defaults, you’ll end up with a great-looking webpage.

Example of Bulma navbar:

<nav class="navbar" role="navigation" aria-label="main navigation">

<div class="navbar-brand">
<a class="navbar-item" href="https://bulma.io">
<img src="https://bulma.io/images/bulma-logo.png" width="112"
</a>
<a role="button" class="navbar-burger" aria-label="menu" aria- expanded="false" data-target="navbarBasicExample">
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
</a>
</div>
<div id="navbarBasicExample" class="navbar-menu">
<div class="navbar-start">
<a class="navbar-item">Home</a>
<a class="navbar-item">Documentation</a>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link">More</a>
<div class="navbar-dropdown">
<a class="navbar-item">About</a>
<a class="navbar-item">Jobs</a>
<a class="navbar-item">Contact</a>
<hr class="navbar-divider">
<a class="navbar-item">Report an issue</a>
</div>
</div>
</div>
<div class="navbar-end">
<div class="navbar-item">
<div class="buttons">
<a class="button is-primary">
<strong>Sign up</strong>
</a>
<a class="button is-light">Log in</a>
</div>
</div>
</div>
</div>
</nav>
Bulma Navbar

Materialize

Materialize CSS is an open source CSS framework that makes it easy to implement the material design look and feel in your own projects.

It features many interactive components that speed up development and help deliver a great experience to users. Animations are used throughout the framework to provide visual feedback to users, in a way that’s easy for developers to work with.

Example of Materialize navbar:

<nav>
<div class="nav-wrapper">
<a href="#!" class="brand-logo">Logo</a>
<a href="#" data-target="mobile-demo" class="sidenav-trigger"><i class="material-icons">menu</i></a>
<ul class="right hide-on-med-and-down">
<li><a href="sass.html">Sass</a></li>
<li><a href="badges.html">Components</a></li>
<li><a href="collapsible.html">Javascript</a></li>
<li><a href="mobile.html">Mobile</a></li>
</ul>
</div>
</nav>

<ul class="sidenav" id="mobile-demo">
<li><a href="sass.html">Sass</a></li>
<li><a href="badges.html">Components</a></li>
<li><a href="collapsible.html">Javascript</a></li>
<li><a href="mobile.html">Mobile</a></li>
</ul>
Materialize Navbar

Again comparing the four navbars and functionality Bulma and BootsTrap has responsiveness in place, but all the code lines can be frightening initially, and Semantic UI is short; still, you need the extra work to add responsiveness. Materialize has the responsiveness and the code looks easier to understand, so is the Framework you should choose?

Not quite, Materialize can be a good start, but it doesn’t mean you need to discard the other Frameworks. Every Framework has an advantage and a drawback.

So What CSS Framework should you choose?

In my opinion, you should start with BootsTrap or Bulma; these Frameworks are well documented and explain how everything works, and on the way, you will learn how some CSS elements work, and you will have a responsive and modern site.

After you feel comfortable with one of these Frameworks, the transition to another Framework will be easier and explore more advanced Frameworks like Foundation, IONIC, or Tailwind CSS.

Conclusion

I’m not saying that you shouldn’t use Semantic UI or Materialize, or other Frameworks with you feel comfortable. It will be more beneficial for you to have a well-documented Framework and explanation of the style and the component.

--

--