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! π
Top comments (56)
I really like the concept of Tailwind because it is so simple and clean. I'm using that for all my new projects.
I'm kinda hooked on to tailwind as well, makes styling so much easier once you know what you're doing.
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
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?
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?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.
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.
fair, I I'm not saying that tailwind has no use cases, just wanted to know your perspective, thanks
why is tailwind better than vanilla css?
.css
files.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:
whereas in tailwind it all gets converted to this:
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 :)
Tailwind isn't better than vanilla css. Period.
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.
Partially my point exactly.
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?
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.
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.
Emotion has always been my go to. Seeing how everything in React is a function, why not the styles as well?
CSS in JS is β€, will check out theme ui, sounds interesting π
I don't use any frameworks or tools for styling my websites, I just use vannila css, but if you use sass, it will make it a bit easy for you, the reason I don't use tailwind or bootstrap is because they make my html a bit complex moreover i like to make my own styles
I agree. I also like to have clean HTML, with few attributes, few classes and stable IDs.
Tailwind is just reusing CSS wrote by whatever company is behind that, not flexible enough for me.
Yes, It is
Everything needs the team to learn something so the easiest one for me has always been vanilla css, no setup, no fancy quirky stuff.
I do still use tailwind but mostly to create component classes in css with the tailwind processor
so a very simple button might look like this
and I use my own libs for layout stuff since they can be used across frameworks and make it easier to reuse stuff (copy paste)
makes a lot of sense, may give it a try too sometime
Writing like this ruins the whole point of tailwind
You do end up doing the same but with whatever framework you use, anyway.
If in react/svelte/vue , you'll create components that have their own sets of tailwind styles on the component and then you use the component everywhere.
The only tailwind classes repeated everywhere are the layout ones (margins/display/padding,etc)
All i'm doing is, making it easier to move the components across codebases, I can use the above in a server rendered golang based codebase or a laravel codebase and not have to re-write the design system for every framework I decide to experiment with.
another way to do this is to use web components but I don't see the performance benefit since they won't work on older browsers, hence the above approach.
I've got my own utilities for layouts for react and react native so I don't have to deal with tailwind classes and inline styles separately in both codebases, that's one case where I don't mind getting locked to the 2 libraries (react and react native)
Anyway,
tailwindcss.com/docs/reusing-style...
tailwind does recommends using it when needed.
I usually use Windi if available. It is mainly for my Svelte and Vue app. If not, I use Tailwind.
If the styling is very simple or I want to do something my own, I use CSS Module or Vanilla Extract.
If I want to focus on logic, I use Chakra UI.
Pure CSS via stylifycss.com β€οΈ
π Utility+Components - It doesn't mess your template
π Native syntax - you don't have to study nor remember anything
π The selectors can be shrinked to bare minimum
π No dependencies
sounds interesting, adding it to my "use in future projects" list, thanks for the info β€
css
When I wanna make a simple project I use Pico CSS which is "Minimal CSS Framework for semantic HTML"; as they say...
Pico.css β’ Minimal CSS Framework for semantic HTML
Elegant styles for all natives HTML elements without .classes and dark mode automatically enabled. 7.9 kB minified and gzipped!
When I wanna go for a big one I use Tailwind and DaisyUI
Tailwind CSS - Rapidly build modern websites without ever leaving your HTML.
yes, I have it starred on github!
I'm on React or Next JS usually so the best you can get on this stack is
styled-components
πI just go with the trusty SCSS, haven't had the time to learn a css framework, but is something I am looking forward to learn in the future :)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.