DEV Community

ashish
ashish

Posted on

What tools/frameworks do you use for styling you web app?

One of the most important part of a web app is a good looking and working front end. There are a lot of ways to style your web app from using vanilla CSS to using CSS frameworks like bootstrap or Tailwind or using UI frameworks and component frameworks like Chakra UI, Material UI, Mantine and so on.

I personally use vanilla CSS, Tailwind CSS, chakra UI and Mantine in my projects depending on what I want to achieve. For simple projects, I like using vanilla CSS, but for more complex projects with different UI components I like using Chakra UI, Mantine or Tailwind.

So, what are the tools or frameworks you use for styling your web apps? Let me know in the comments below! 😀

Oldest comments (56)

Collapse
 
guilhermeomt profile image
Guilherme Tavares

I really like the CSS-in-JS approach. So, styled-components and emotion are the best picks for this kind of styling. Another library that I like using is Theme UI. It allows to style MDX content easily.

Collapse
 
asheeshh profile image
ashish

CSS in JS is ❤, will check out theme ui, sounds interesting 👀

Collapse
 
lockykeaney profile image
Locky Keaney

Emotion has always been my go to. Seeing how everything in React is a function, why not the styles as well?

Collapse
 
nombrekeff profile image
Keff

css

Collapse
 
codingfriend1 profile image
Gabriel Reimers

I really like the concept of Tailwind because it is so simple and clean. I'm using that for all my new projects.

Collapse
 
asheeshh profile image
ashish

I'm kinda hooked on to tailwind as well, makes styling so much easier once you know what you're doing.

Collapse
 
tzwel profile image
tzwel

why is tailwind better than vanilla css?

Thread Thread
 
asheeshh profile image
ashish • Edited
  1. no need for .css files.
  2. takes less time to write.
  3. tailwind provides a lot of css properties by default like box shadows, gradients and all.

just as an example, think that you want to make your div have a gray background, rounded corners, has a width and height of 50% of screen, should be flex, and also has a box shadow.

in vanilla css, you would make a separate css file, and do something like:

.my-div{
  display: flex;
  flex-direction: column;
  justify-items: center;
  align-items: center;
  width: 50%;
  height: 50%;
  box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  background-color: rgb(107 114 128);
  border-radius: 0.25rem;
}
Enter fullscreen mode Exit fullscreen mode

whereas in tailwind it all gets converted to this:

<div className="my-div flex flex-col w-1/2 h-1/2 items-center justify-center shadow-xl rounded bg-gray-500">
  ...
</div>
Enter fullscreen mode Exit fullscreen mode

maybe you can figure it out now why I'm hooked on to tailwind, but again it totally depends on the developer, there are developers who prefer vanilla CSS and can do it in the same amount of time I take to implement things on tailwind :)

Thread Thread
 
shifi profile image
Shifa Ur Rehman

Tailwind isn't better than vanilla css. Period.

Thread Thread
 
joshistoast profile image
Josh Corbett

Tailwind isn’t a replacement for vanilla CSS, it’s merely a tool to assist in applying css. Tailwind’s biggest advantage is the easy-to-apply built-in design system and shorthands for more complicated css values.

There can be no “this is better” because that’s a stupid argument to make. It’s like saying “JavaScript is better than Typescript”. Typescript merely makes life easier for devs but it’s still coming out to JavaScript.

Thread Thread
 
shifi profile image
Shifa Ur Rehman

Partially my point exactly.

Collapse
 
lockykeaney profile image
Locky Keaney

I've been wanting to give it a try for a while. Is there tooling and react plugins for it? Or just be spending time in the docs?

Thread Thread
 
asheeshh profile image
ashish • Edited

I don't think there are plugins, you just install tailwind on your app and use class names to style the component. For installation and initialization in react you may see this, and personally, I learnt tailwind just by reading docs, the docs are easy to read, if you are ever confused about a css property and how to write it, just go over to docs and search the property. After making a few projects using tailwind, you will eventually start remembering the class names.

Collapse
 
tzwel profile image
tzwel • Edited

of course i had to reply to the wrong comment, is still can't grasp how this site works lol

1 can't agree. Do you also feel the need to not separate your .js files and write your scripts inlined? I bet you don't. Then why is the css an exception?

2 Takes less time to write. I have to admit, I had never used tailwind but it seems to be as fast as vanilla css or even slower

background: red
Enter fullscreen mode Exit fullscreen mode
bg-red
Enter fullscreen mode Exit fullscreen mode

stuff i need to write in css / tailwind. pretty much the same thing

3 tailwind provides a lot of css properties by default like box shadows, gradients and all.

css also does it! and it's even better i think. what if you want to change the border-radius of one specific element? you can't just use the tailwind class, it's configured to always use the same value, right? you still resort to regular css

am I wrong?

Thread Thread
 
asheeshh profile image
ashish • Edited
  1. I don't know about others but almost 70-80% of my apps is usually js, so I like to have as less other files as possible, specially having multiple Module.css file I something I really don't like to do, though I think it's kind of relative, right?

  2. Once you start using it more and more the process gets faster, I admit that it makes jsx look a bit weird due to the longer class names though.

  3. Tailwind provides methods to use custom value actually, you can just do this or extend the theme as needed by adding to tailwind.config.js.

Again, I would like to say that using vanilla css or tailwind or anything else is completely something a developer decides according to their needs and of course the one that's easier and more productive for them. I have used vanilla css in quite large projects and I still do it, that's the reason I feel like tailwind is much faster because I've been using both of them and it's quite clear which one is more productive for me.

Thread Thread
 
tzwel profile image
tzwel

fair, I I'm not saying that tailwind has no use cases, just wanted to know your perspective, thanks

Collapse
 
roman_22c01bcfb71 profile image
Roman

Tailwind it makes everything simple

Collapse
 
asheeshh profile image
ashish

true!

Collapse
 
raccode profile image
Raccode

I always go with the SvelteKit/bootstrap (css) combo for small to medium-sized projects.

Collapse
 
jenueldev profile image
Jenuel Oras Ganawed

I really like and recommend windiCSS. Its really awesome and fast. I use vuejs as frontend, and use vuetify, naive-ui, prime-vue, and element-plus component libraries.

Collapse
 
asheeshh profile image
ashish

unocss works well with vue too :)

Collapse
 
jenueldev profile image
Jenuel Oras Ganawed

yup,,, I actually like adding class attribute on my elements... but yeah, I may use this in the future.

Collapse
 
zoltanszogyenyi profile image
Zoltán Szőgyényi

Tailwind CSS coupled with Flowbite.

Collapse
 
nexxeln profile image
Shoubhit Dash

checkout nextui 👀

Collapse
 
asheeshh profile image
ashish

I have seen it but didn't get a chance to use yet 👀

Collapse
 
lhthang96 profile image
Leo

Pretty cool UI that nextui has there, I think I will try it in the next react project.

Collapse
 
felixdusengimana profile image
Felix DUSENGIMANA

I mostly use vanilla CSS. For frameworks, I like Tailwind CSS but It depends on the things I am working on.

Collapse
 
nasheomirro profile image
Nashe Omirro

The more I try out different CSS frameworks the more I realize I still have to do some quirky stuff that I may or may not like, but styled-components for sure!

Collapse
 
asheeshh profile image
ashish

I wanna give a try to all of them actually 😅haven't used styled components yet but will do eventually.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.