-
Notifications
You must be signed in to change notification settings - Fork 465
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v3 #1289
Comments
I would like to help, if I'm able to. Is there going to be a dedicated branch or will it be done in the |
Once we start this, there will be indeed a new branch with auto-release so we can try it out and especially keep working on the |
I have few design ideas if you are open to this I would like to share it for the future of Nuxt UI 3. Should we discuss this in this issue or it'll be better to discuss design ideas in seperate discussion thread? |
@jd-solanki You can share them here! |
Since it is supposed to be a refactoring to all components, could we give the possibility of compatibility with unocss? |
@sawa-ko It will be made with Tailwind v4. To what end would you make it compatible with Uno? |
I've started working on this in a private repository of mine, I'll open-source it once I'm satisfied with the base so you guys can check it out 😊. A lot has changed since I'll post regular updates on this issue. |
Please tell me how long it will take for this upgrade to be available. |
I have no idea how long it will take and it's not entirely up to us, I hope to release it at the same time as the official release of Tailwind v4. |
That's awesome. The new version of nuxt-ui uses exactly the tech stack I expected. I tried to build my own UI library using radix-ui and tailwind-variants, but I immediately found that even with radix-ui, it is not easy to build a full UI library. But I got an idea with an API that works with any design language. If you are interested, here is my demo repository: |
@robin-dongbin It's already in the making. There are already 13 components done, 36 more to go 😅 |
Since the component library is based on radix-ui without styles, I thought it would be nice to provide an api that is abstracted from various design systems, so you can switch styles from one system to another at any time. If people want to implement another design system, they can just customize it, share files, or even contribute to a repository. Taking things a step further, it is possible to switch between different design systems at runtime. Of course, I'm just offering an idea, and if you think it's too late, that's fine |
This is actually already what we're doing with the App Config. You can customize the classes for every part of every component. |
Thanks for the work! Just one question :
|
No we keep the For example the export default {
base: 'inline-flex items-center justify-center text-gray-900 dark:text-white',
padding: 'px-1',
size: {
xs: 'h-4 min-w-[16px] text-[10px]',
sm: 'h-5 min-w-[20px] text-[11px]',
md: 'h-6 min-w-[24px] text-[12px]'
},
rounded: 'rounded',
font: 'font-medium font-sans',
background: 'bg-gray-100 dark:bg-gray-800',
ring: 'ring-1 ring-gray-300 dark:ring-gray-700 ring-inset',
default: {
size: 'sm'
}
} Here is the new version: export default {
base: 'inline-flex items-center justify-center text-gray-900 dark:text-white px-1 rounded font-medium font-sans bg-gray-50 dark:bg-gray-800 ring ring-gray-300 dark:ring-gray-700 ring-inset',
variants: {
size: {
xs: 'h-4 min-w-[16px] text-[10px]',
sm: 'h-5 min-w-[20px] text-[11px]',
md: 'h-6 min-w-[24px] text-[12px]'
}
},
defaultVariants: {
size: 'sm'
}
} This is a breaking change if you've overridden its config in your |
Ok ! Effectively, it's a breaking change but it seam ok for the future to have a better granularity with the variants. Thanks for the explanation and the example 🙏🏻 |
Removing the prefix can cause conflicts with native HTML elements or other libraries. See https://eslint.vuejs.org/rules/multi-word-component-names. |
I totally agree with you but vue styleguide also recommends using titlecases components like However, It looks like keeping |
I'd prefer to know which components are from Nuxt UI and which i've created myself. |
You can just distinguish it through the |
@benjamincanac any thoughts on if we can fix this at least for V3 - #1992 |
Is there's any changes planned to the colors config? While designing a new app based on Nuxt UI I found it cumbersome to figure out which shade the |
This can also be quite challenging, when you don't have your colors as shades. Many projects use for example brand colors like |
It seems like the new repository for UI v3 is now at https://github.com/nuxt/ui/tree/v3. I noticed that there were some merge requests, such as this one, which were not merged before the previous repository was archived. @benjamincanac Could you please confirm if this PR or its functionality will be included in the new UI v3 version? |
Indeed, last week I've finally moved the development on the @maximepvrt I just asked @romhml and he confirmed that this was going to be implemented on the |
hey @benjamincanac hope you are doing good. I was looking at the lib and see you were planning to use tailwind variants. I would suggest you to use tailwind buddy instead https://busbud.github.io/tailwind-buddy/ Its a library I have built for my company that we use for our different design systems that may best fit for the project. I have done this library because tailwind variant do not handle properly responsive variants and compound variants.
As you can imagine this is SSR first as the others I was looking to give you a proof of concept but I am bit lost in how your module is structured. I will try to have a better look later. I saw you were using the generateSafe list for the colors so you won't be lost in how I am doing my plugin to handle responsivnes classes as they can't be static analized by tailwind. I would be super happy to discuss with you about it and see if we can setup a quick poc. My discord name is flozero. A TLDR about me Edit: Migrate to tailwind-buddy should be pretty easy as I have done it on our design systems its just a matter of small re organizations and the setup is different |
Hi @benjamincanac, I would like to ask for a tentative release date for the We are evaluating a UI libraries for our new Nuxt-3 based Admin Panel and are considering Nuxt UI. We are particularly interested in the upcoming v3 release for Nuxt UI. Could you please provide an estimated timeline for the v3 release? Additionally, we would appreciate your advice on whether it would be more beneficial to start our project with the current v2 version or wait for the v3 release. |
We are also about to start a new project and I would love to start with v3 already. Can we have an alpha release maybe? This would also ensure users already reporting bugs :) |
I see that everyone is in a hurry to try it so I don't see the issue to share some markdown from the docs:
npm add @nuxt/ui@next
export default defineNuxtConfig({
modules: ['@nuxt/ui']
})
<style>
@import "tailwindcss";
@import "@nuxt/ui";
</style>
|
Amazing, thanks! Just to clarify, is this using Tailwind 4 directly or @nuxtjs/tailwindcss? |
Nuxt UI v3 uses Tailwind CSS v4 yes: https://github.com/nuxt/ui/blob/v3/package.json#L61 |
"tailwindcss": "4.0.0-alpha.23", |
Hi @benjamincanac any hints on how to test ui3 with pro version (and maybe try pro v2) ? 😄 |
@jsayer101 Nuxt UI Pro v2 is far from over as I've only done the components to actually build the Nuxt UI v3 docs yet. However, you can try it out as such:
npm add @nuxt/ui-pro@next
export default defineNuxtConfig({
modules: ['@nuxt/ui-pro']
})
<style>
@import "tailwindcss";
@import "@nuxt/ui-pro";
</style>
|
Hi @benjamincanac, thanks a lot for all the work and dedication on version 3 for months now and for this first alpha version I don't want to waste your time or delay you with this issue since there was no official announcement of the alpha version, but I can't use this version. I wanted to create a new clean project to play with it and see the differences and the performance gain, but I can't get it to work After creating an empty Nuxt project and installing Nuxt UI following your instructions, I can use successfully the tailwind classes, but none of NuxtUI's components, I have these errors: Am I the only one having this problem or is it a configuration issue? |
You have to make sure to install |
Indeed, it works! Thanks for this quick answer |
Very happy that the alpha is out! With regards to |
@miguelrk As mentioned in #1289 (comment), Nuxt UI Pro v2 only has a few components at the moment. You won't be able to use Nuxt UI Pro v2 with Nuxt UI v2 it will not work. As soon as the docs for UI v3 is done, I'll finish UI Pro v2 😊 |
Will a new license be needed for UI Pro v2? Since it only includes "unlimited minor and patch updates." If yes, will the price change? |
@larrasu Nuxt UI Pro v2 will be a free update as the end result will mostly look the same but using the latest Nuxt UI v3 😊 |
Following up on the colors, I think renaming |
@benjamincanac making version 3 available on a public URL could bring more people contributing and testing the components. What about https://ui-v3.nuxt.com? |
@caiotarifa The documentation will be online as soon as I've finished writing it 😊 Only 5 components left to do! |
We should start working on this next major by March, 2024.I've started working on this in a private repository of mine, I'll open-source it once I'm satisfied with the base so you guys can check it out 😊.You can check out the development progress in this fork: https://github.com/benjamincanac/ui3.The development is now going on the
v3
branch of this repository: https://github.com/nuxt/ui/tree/v3A lot has changed since
@nuxt/ui
was made open-source (May 2023), so the plan here is to rewrite every component from scratch alongside their config.I'll post regular updates on this issue and on https://twitter.com/benjamincanac.
Overview
radix-vue
#409 which should solve allv3.0
issuesuseUI
for https://www.tailwind-variants.org/<script setup>
[Table] Generic component #818)<script setup>
)Documentation
Once all these changes will be ready to merge on the
dev
branch, av2
branch will be created to keep supporting thev2
version for a certain period of time. As such, the current documentation will be available onhttps://ui-v2.nuxt.com
.I'm thinking of removing the
dev
packages from the documentation, not sure it's that useful as people who are checking new pull requests from GitHub can check the new docs inside the PRs content. Therefore, the documentation will deploy from themain
branch instead of thedev
branch.Breaking Changes
The biggest change is the switch to
tailwind-variants
, this will cause lots of breaking changes if you've used theui
prop orapp.config.ts
to override the config. I apologize in advance for this but I strongly believe this will be beneficial and will bring consistency across all components.The config will now have a
slots
amongst other keys that will specifically target dom nodes. Theui
prop will only allow you to target those slots.These changes alongside the refactor of all components will also improve the types, the
app.config.ts
andui
props are now perfectly typed, as well as all componentsprops
,slots
,emits
andexpose
.Accordion
#item
slot to#content
for consistencyUButton
underneath for a simple design easy to customizeAvatar
chip
prop in favor ofChip
componentButton
padded
propblock
prop no longer center the text but acts as a justify between to push the trailing iconDivider
Separator
for consistencyDropdown
DropdownMenu
for consistencyForm
New implementation of the Form component. Here's a list of notable changes from v2:
submit
from the Form'svalidateOn
propFormGroup
toFormField
path
toname
on form errors for consistencydisabled
prop on theForm
component to disable the entire formvalidateOnInputDelay
prop onFormField
andForm
components to control the debounce delay on validation on inputvalidate
function's name argument to an option to make it optionalThanks @romhml! 😊
Link
isActive
toactive
in default slotToggle
Switch
to be able to implement this: https://www.radix-vue.com/components/toggle.htmlon-icon
/off-icon
props tochecked-icon
/unchecked-icon
respectivelyPopover
overlay
prop as no primitive is available for this in Radix Vuepopper
prop in favor ofcontent
(https://www.radix-vue.com/components/popover.html#content) andarrow
prop#panel
slot to#content
for consistencyTabs
#item
slot to#content
for consistencyTooltip
popper
prop in favor ofcontent
(https://www.radix-vue.com/components/tooltip.html#content) andarrow
prop#content
slot for consistencyprevent
prop in favor of:open="false"
Modal
/Slideover
title
,description
andclose
props (this will deprecateDashboardModal
/DashboardSlideover
components in@nuxt/ui-pro
)appear
prop (was for Headless UI)VerticalNavigation
/HorizontalNavigation
NavigationMenu
with anorientation
prop#icon
,#avatar
and#badge
slots in favor of#leading
and#trailing
for consistencyComponents
The text was updated successfully, but these errors were encountered: