Nuxt UI is one of the best UI libraries out there
Tags: nuxt, vue, webdev
Published: 2023-09-07 22:45:37

## Intro

I probably say this too often, but I'm fascinated by how much the Vue ecosystem has been thriving lately. Recent releases of such awesome libraries like <a href="https://formkit.com/" target="_blank">FormKit</a> or <a href="https://www.radix-vue.com/" target="_blank">Radix Vue</a> are great examples of how well the Vue ecosystem has matured lately.

If you would like to read more about them, I encourage you to read the articles I have recently published:\
<a href="https://michalkuncio.com/its-insane-how-good-formkit-is" target="_blank">It's insane how good FormKit is!</a> \
<a href="https://michalkuncio.com/radix-for-vue-is-finally-available" target="_blank">Radix for Vue is finally available!</a>

Vue ecosystem has many great options to choose from when you are looking for a good UI library. One of the most notable ones are:
- <a href="https://primevue.org/" target="_blank">PrimeVue</a>
- <a href="https://vuetifyjs.com/en/" target="_blank">Vuetify</a>
- <a href="https://quasar.dev/" target="_blank">Quasar</a>

They are all great but ***Vuetify*** and ***Quasar*** have always seemed too opinionated for me. In my opinion, from the list above, ***PrimeVue*** is the most universal and flexible solution. But there's a shiny new library I want to talk about today.

## Nuxt UI

<a href="https://ui.nuxt.com/" target="_blank">Nuxt UI</a> is a quite new open-source library maintained mostly by <a href="https://nuxtlabs.com/" target="_blank">Nuxt Labs</a>. It was recently rebranded from NuxtLabs UI to Nuxt UI and the repo is now under the Nuxt org on GitHub. It's also the first UI library created specifically for Nuxt. From the very beginning, it has become my favorite UI library. Let me tell you why.

### 1) Components are beautiful

The general feeling of default styles is great. The components look fresh, light and elegant at the same time and it's quite hard to do. I'm not a big fan of material UI or bootstrap style and the Nuxt UI feeling hits the perfect spot. Take a look at some <a href="https://ui.nuxt.com/elements/dropdown" target="_blank">components</a> in the docs and you will see what I'm talking about.

### 2) Elegant and simple API

Sometimes you take a look at docs, scroll through some components, see at some props and you just know if it fits your style. I love how simple, yet flexible the API for Nuxt UI is. There is no bloat, unnecessary props or tons of ugly wrappers. All you need is there. And the props are so obvious that I can almost guess them without taking a look at the docs.

### 3) Full flexibility in styling

Some libraries are super difficult to customize. You have to overwrite some default styling and sometimes it's a pain in the ass and causing a lot of problems. Nuxt UI is using Tailwind and you have full control over the theming. You can change your theme color in the config file, through CSS variables or directly through component props. Also, there is a special prop "***ui"*** that lets you customize virtually everything. It's using ***tailwind-merge*** under the hood.

### 4) Fully typed

Nuxt UI is fully typed which means that we have full IDE support with autocomplete and error detection. It's really handy and sometimes you don't have to look at docs because of great intellisense.

### 5) Amazing docs

The docs are well-structured and the components are well-described. Visually it's great but man... Take a look at the <a href="https://ui.nuxt.com/" target="_blank">homepage</a>. How beautiful is that!

## Summary

If you are looking for a component library that feels fresh, modern, elegant and doesn't force you to use an opinionated project structure, ***Nuxt UI*** would be the perfect addition to any ***Nuxt*** project. With tons of useful components and full flexibility over styling, I think it's the best option right now. I'm pretty sure it's just the beginning of this awesome library and we will see many new components and features in the future.


⭐ **If you like my posts, please follow me on Twitter:**
https://twitter.com/michalkuncio