-
Notifications
You must be signed in to change notification settings - Fork 607
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 🙏🏻 |
Thats how I did it. But you also need to keep track of if the reset button should be shown. For example one would say Imo it would make sense for this components to have a reset function built into Nuxt UI. BUT maybe there would be too many different requirements: One might want to be able to deselect a value in the select menu, this currently works only with |
@MickL That is exactly the reason why we've never implemented it, there are so many different possibilities to achieve this that it's easier to do it yourself honestly.
|
Oh wow this 1. is a nice solution. Maybe this example could be added to InputMenu and SelectMenu as well! Also maybe the other two points could be at least mentioned in the docs (may dont need a code example). What could be done tho for SelectMenu is the possibility to check an item off again? It works with multiple but not for single values. |
I'll add the examples! This would be an issue for Reka UI's |
Shouldnt be Drawer and Slideover the same component? As far as I see the only difference is that a Drawer has an optional handle. Slideover is missing the "swipe to close" feature, but this I would definitely add to it as it is a common user behavior using mobile devices. Personally I would remove Slideover, rename Drawer to Slideover and hide the handle by default. |
One thing I found a little confusing in the Nuxt UI Pro v2 documentation was trying to work out the difference between components with similar names: e.g. LandingCard vs PageCard or LandingGrid vs PageGrid. I had to look at the config code, but it would be good if the opening description had a little more detail to explain what that component did.
When you shrink the screen down to mobile mode, the default slot is left aligned instead of centre aligned like the left and right slots. |
Unfortunately, they are based on two completely separate tools, as you can read from the linked documentation.
This would be more of an upstream discussion. But I personally use them both, depending on UI design and project's device target. |
Doesnt it make sense to unify them when one is better supported? Personally I would love to use slideover but it doesnt have a swipe to close feature. Without the follow-pointer-movement, like Drawer has, it would be easily implemented by https://vueuse.org/core/useSwipe/ |
When do you plan to release dashboard for v3? |
When will the next version of v3.alpha10 come out, the current version does not seem to work in Windows and vue environments |
Could you please open up a new issue? Feel free to tag me in |
there was already an issue #2831 (comment) |
Ah ok, not a new one. |
Could possibly consider adding a |
I tried the method you suggested, and it indeed worked. Thank you very much. |
@benjamincanac i have an issue with drawer and modal . |
@benjamincanac the new stack and theming look great! Would you also be interested in migrating to a more modern-looking tailwindcss-motion? |
Hello everyone, are there any docs about upgrade the nuxt/ui from v2 to v3 ? |
I also have this bug with the drawer where it scrolls when closing it, but only sometimes. It seems do to it everytime if I just used a selectmenu. |
Button component is missing a cursor pointer in v3 |
I think they are ALL missing a pointer cursor. Not sure why, but it seems to be a feature not a bug. First thing I did was adding pointers to all components I use in app.config |
@Archetipo95 @MickL Watch this issue for more explanation on why there's no cursor-pointer on the buttons! #2332 |
Maybe I guess most, if not all, of the developers will want to have a pointer for buttons, tabs, etc |
This is a tailwind v4 change not something nuxt ui did in advance. Copy-pasting a CSS snippet is a way to go for now. |
Just add this to your app.config.ts |
Yes I know but maybe this can be done by default by Nuxt UI BUT be opted-out in nuxt config? Nuxt UI is all about convenience. It comes with Nuxt Icons and Nuxt Fonts, they dont need to be installed separately. Having no pointers will be something most, if not all, users will need to set manually. Therefore I would suggest to make this configurable and activated by default. |
Help I am getting this error ERROR Pre-transform error: [@vue/compiler-sfc] Failed to resolve extends base type. 8:06:20 PM interface Props extends /* @vue-ignore */ Base {} Note: both in 3.2 or with the ignore, the properties in the base type are treated as fallthrough attrs at runtime. /Users/gitamgadtaula/Desktop/work/freelance/mixtiles/node_modules/@nuxt/ui/dist/runtime/components/App.vue |
as pointed out in the upstream PR the CSS spec defines:
I invite you to have a read of the various sources shared in that PR to have a clear understanding why this is the standard. Also, as @madsh93 already replied, it is as simple as adding the following to your export default defineAppConfig({
ui: {
button: {
slots: {
base: 'cursor-pointer',
},
},
},
}) |
@gitamgadtaula please create a new issue with a reproduction link, as I need to see the context of UApp to understand this error. Feel free to tag me in once you open it |
The development is ongoing on the default branch of this repository: https://github.com/nuxt/ui.
A 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.
Documentation
https://ui3.nuxt.dev
Roadmap (Nov 20, 2024)
reka-ui@alpha
on@nuxt/ui
&@nuxt/ui-pro
(feat(module)!: migrate toreka-ui
#2448)@nuxt/ui-pro
components@nuxt/ui-pro
components (almost all are done except for Dashboard)@nuxt/ui
likeCalendar
(feat(Calendar): implement component #2618),DateInput
,Tree
(feat(Tree): implement component #2757),Stepper
(feat(Stepper): new component #2733), etc.@nuxt/ui
&@nuxt/ui-pro
officially oncetailwindcss
andreka-ui
are released@nuxt/ui-pro
components & templates like Changelog, Portfolio, etc.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
.Components
The text was updated successfully, but these errors were encountered: