Giter VIP home page Giter VIP logo

ui's Introduction

nuxt-ui.png

Nuxt UI

npm version npm downloads License Nuxt

Nuxt UI is a module that provides a set of Vue components and composables built with Tailwind CSS and Headless UI to help you build beautiful and accessible user interfaces.

Its goal is to provide everything related to UI when building a Nuxt app. This includes components, icons, colors, dark mode but also keyboard shortcuts.

Features

  • Built with Headless UI and Tailwind CSS
  • HMR support through Nuxt App Config
  • Dark mode support
  • Support for LTR and RTL languages
  • Keyboard shortcuts
  • Bundled icons
  • Fully typed
  • Figma Kit

Read more on ui.nuxt.com

Installation

npx nuxi@latest module add ui

If you want latest updates, please use @nuxt/ui-edge in your package.json:

{
  "devDependencies": {
    "@nuxt/ui": "npm:@nuxt/ui-edge@latest"
  }
}

Documentation

Visit https://ui.nuxt.com to explore the documentation.

Credits

Contributing

Thank you for considering contributing to Nuxt UI. Here are a few ways you can get involved:

  • Reporting Bugs: If you come across any bugs or issues, please check out the reporting bugs guide to learn how to submit a bug report.
  • Suggestions: Have any thoughts to enhance Nuxt UI? We'd love to hear them! Check out the contribution guide to share your suggestions.

Local Development

Follow the docs to Set up your local development environment and contribute.

License

Licensed under the MIT license.

ui's People

Contributors

aditio-eka avatar antfu avatar atinux avatar benjamincanac avatar connerblanton avatar danielroe avatar darkghosthunter avatar eduayme avatar farnabaz avatar genu avatar graup avatar haythamasalama avatar ineshbose avatar jduartea avatar johnpuaoi avatar kejunmao avatar larbish avatar maxsteinwand avatar moshetanzer avatar muhammadm1998 avatar mwohlan avatar noook avatar renovate[bot] avatar romhml avatar shingangan avatar sma11x avatar smarroufin avatar tomsmith27 avatar yingchenit avatar zoobzio avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ui's Issues

Popover + Dropdown leave transition

We should not add a div on top for popper but instead pass the ref to PopoverPanel / MenuItems.

However, we need the latest version of headlessui to make this work.

unsupported engine

$ npm i npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@nuxthq/[email protected]', npm WARN EBADENGINE required: { node: '>=18 <19' }, npm WARN EBADENGINE current: { node: 'v20.1.0', npm: '8.19.1' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '[email protected]', npm WARN EBADENGINE required: { node: '^14.16.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0' }, npm WARN EBADENGINE current: { node: 'v20.1.0', npm: '8.19.1' } npm WARN EBADENGINE } npm WARN deprecated @npmcli/[email protected]: This functionality has been moved to @npmcli/fs

Missing some ButtonGroup classes in default tailwind output

<UButtonGroup>
  <UButton label="One" color="white" />
  <UButton label="Two" color="white" />
  <UButton label="Three" color="white" />
</UButtonGroup>
Screenshot 2023-05-17 at 14 10 09

Putting these classes somewhere in a file, so tailwind can pick them up, fixes the problem:

  • rounded-l-md
  • rounded-r-md
  • -ml-px

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

github-actions
.github/workflows/ci-dev.yml
  • actions/setup-node v4
  • actions/cache v4
  • dorny/paths-filter v3
.github/workflows/ci.yml
  • actions/setup-node v4
  • actions/cache v4
  • EndBug/version-check v2
npm
docs/package.json
  • @iconify-json/heroicons ^1.1.20
  • @iconify-json/simple-icons ^1.1.100
  • @nuxt/content ^2.12.1
  • @nuxt/eslint-config ^0.3.9
  • @nuxt/fonts ^0.6.1
  • @nuxt/image ^1.6.0
  • @nuxt/ui-pro 1.1.0-28567378.e0a325c
  • @nuxtjs/plausible ^1.0.0
  • @octokit/rest ^20.1.0
  • @vueuse/nuxt ^10.9.0
  • date-fns ^3.6.0
  • eslint ^8.57.0
  • joi ^17.13.0
  • nuxt ^3.11.2
  • nuxt-cloudflare-analytics ^1.0.8
  • nuxt-component-meta ^0.6.3
  • nuxt-og-image ^2.2.4
  • prettier ^3.2.5
  • typescript ^5.4.5
  • ufo ^1.5.3
  • v-calendar ^3.1.2
  • valibot ^0.30.0
  • yup ^1.4.0
  • zod ^3.23.4
package.json
  • @egoist/tailwindcss-icons ^1.7.4
  • @headlessui/tailwindcss ^0.2.0
  • @headlessui/vue ^1.7.20
  • @iconify-json/heroicons ^1.1.20
  • @nuxt/kit ^3.11.2
  • @nuxtjs/color-mode ^3.4.0
  • @nuxtjs/tailwindcss ^6.12.0
  • @popperjs/core ^2.11.8
  • @tailwindcss/aspect-ratio ^0.4.2
  • @tailwindcss/container-queries ^0.1.1
  • @tailwindcss/forms ^0.5.7
  • @tailwindcss/typography ^0.5.12
  • @vueuse/core ^10.9.0
  • @vueuse/integrations ^10.9.0
  • @vueuse/math ^10.9.0
  • defu ^6.1.4
  • fuse.js ^6.6.2
  • nuxt-icon ^0.6.10
  • ohash ^1.1.3
  • pathe ^1.1.2
  • scule ^1.3.0
  • tailwind-merge ^2.3.0
  • tailwindcss ^3.4.3
  • @nuxt/eslint-config ^0.3.9
  • @nuxt/module-builder ^0.5.5
  • @nuxt/test-utils ^3.12.1
  • @release-it/conventional-changelog ^8.0.1
  • @vue/test-utils ^2.4.5
  • eslint ^8.57.0
  • happy-dom ^14.7.1
  • joi ^17.13.0
  • nuxt ^3.11.2
  • release-it ^17.2.0
  • typescript ^5.4.5
  • unbuild ^2.0.0
  • valibot ^0.30.0
  • vitest ^1.5.2
  • vitest-environment-nuxt ^1.0.0
  • vue-tsc ^2.0.14
  • yup ^1.4.0
  • zod ^3.23.4
  • node >=v16.20.2
playground/package.json
  • nuxt ^3.11.2

  • Check this box to trigger a request for Renovate to run again on this repository

Documentation feedback/questions

(First, I'd like to tell I'm deeply grateful for releasing this UI lib in open source, this makes the whole Nuxt ecosystem stronger. THANKS!)


After reading the documentation, I still have some general questions in mind. Some of them may seem naive or out of scope, but I'm thinking they may help other people like me so I'll give it a try.

  1. Input validation
    I know this is a UI lib and validation is another topic. However I'm curious what solution is used by the Volta team. Maybe there are solutions that are better suited than others?
    Besides, other UI libs like PrimeVue shows some examples of form validation using their components.
    Is there any chance that the Nuxt Labs team release its own validation system, to have an even more integrated solution?

  2. Missing components and contributions
    What if I find a missing component? Can I extend nuxtlab UI or should I just make a create an (unrelated) component in my project?
    If I think this component could be useful to others, should I make a PR?
    If I don't want or know how to develop that component by myself, should I ask its development in a feature request issue?

Thanks!

[Component] Feature Suggestion: Context Menu

First of all, really loving what you've created so far. That's definitely going to get used in my next projects!

It would be so awesome if you could simply pass an items prop to the Context Menu as well, just like you can with the Dropdown Component for example. Maybe even with nested groups, so that you don't have to do all this kind of repeating work on yourself.

[Component] Datatable

It would be great to consider datatable implementation, as I have been observing Vue/Nuxt community for a while and there is a a lot of requests flying around for good datatable component. Support for filtering, server-side data etc. would be extremely good IMO.

There are some alternative to look at but I noticed PrimeVue being recommended the most
https://primevue.org/datatable/

Perhaps something for backlog if you see fit.

[Component] - Chat UI

It would be great to have a built in chat UI, to handle openAI like streaming responses.

This could help folks build their own support bots, without relying on third part scripts and control the end to end experience.

Toast location

Is your feature request related to a problem? Please describe.

I am frustrated when the toast slides out from bottom right of the screen. the first time I interreacted with the example I had to look around the screen to see where it was.

Describe the solution you'd like

Normally all the toasts that I have experience with are ones the slide out from the top-right of the screen. I love the toast component but I would love the flexibility to decide which corner of the page it is placed.

Describe alternatives you've considered

Several third party libraries and I haven't found a good clean solution like yours.

compatibility with Nuxt Content and Nuxt Studio

It would be nice to be able to use these components as MarkDown Components (MDC) in Nuxt Content. Are there any plans for that?

Could it be as easy as moving them to a components/content folder?

[Feature Request] CommandPalette supports a loading state.

Is your feature request related to a problem? Please describe.

Yes, the feature request is related to the problem of querying API results and needing to display a loading state while the results are being fetched.

Describe the solution you'd like

The solution I would like is for the CommandPalette component to have a loading state that can be displayed while the API results are being fetched. This would help improve the user experience by letting them know that the query is being processed and that they should wait for the results.

Describe alternatives you've considered

One alternative that could be considered is to not have a loading state and just let the user wait for the results without any indication of progress. However, this could lead to confusion and frustration for the user, especially if the query takes a long time.

Additional context

image

change the ui/gray variant

So this is what i have in my app.config

export default defineAppConfig({
    ui: {
        primary: "emerald",
        gray: "stone",
    },
});

but it is picking up the darkest shade of stone in dark mode. how do i change the dark mode variant?

[Button] Wrong height when no label

A button without label of size xxs, lg or xl does not have a correct height:

CleanShot 2022-10-31 at 15.01.32@2x.png

I guess we didn't catch it yet because all lg/xl buttons on Volta have a label.

[Tooltip/Popover] Allow rendering tooltip/popover in a Vue portal

Is your feature request related to a problem? Please describe.

Popovers and tooltips should always be rendered at the top of every other element on the page. But since they're rendered at the same place in the DOM as their trigger element, they will render behind other parts of layout with higher z-index than the popover's ancestors in the DOM tree.

Describe the solution you'd like

As an example, Headlessui-Float (a library that combines HeadlessUI with FloatingUI - a new version of Popper) provides in its components a portal prop which renders the popover content at the end of the body, outside of the z-index scope. This permanently solves the problem.

[nuxt] [request error] [unhandled] [500] Cannot convert undefined or null to object

[nuxt] [request error] [unhandled] [500] Cannot convert undefined or null to object 01:36:53
at Function.entries ()
at ReactiveEffect.fn (./node_modules/@nuxthq/ui/dist/runtime/plugins/colors.mjs:15:10)
at ReactiveEffect.run (./node_modules/@vue/reactivity/dist/reactivity.cjs.js:194:25)
at get value [as value] (./node_modules/@vue/reactivity/dist/reactivity.cjs.js:1163:39)
at innerHTML (./node_modules/@nuxthq/ui/dist/runtime/plugins/colors.mjs:21:29)
at resolveUnref (./node_modules/@unhead/vue/dist/shared/vue.505b826e.mjs:6:36)
at resolveUnrefHeadInput (./node_modules/@unhead/vue/dist/shared/vue.505b826e.mjs:11:16)
at ./node_modules/@unhead/vue/dist/shared/vue.505b826e.mjs:21:20
at Array.map ()

  • Operating System: Mac OS Ventura 13.1
  • Nuxt version: 3.0.0
  • Nitro version: 1.0.0
  • Package Manager: Yarn
  • Builder: Vite
  • Runtime modules: ['@pinia/nuxt',
    '@pinia-plugin-persistedstate/nuxt',
    '@nuxtjs/i18n',
    'nuxt-appwrite',
    '@nuxtjs/strapi',
    '@nuxthq/ui'
    ]

ERROR Failed to resolve import "#tailwind-config/theme/colors" from "node_modules\@nuxthq\ui\dist\runtime\plugins\colors.mjs?v=b331f5e1". Does the file exist?

`
ERROR Failed to resolve import "#tailwind-config/theme/colors" from "node_modules@nuxthq\ui\dist\runtime\plugins\colors.mjs?v=b331f5e1". Does the file exist? 7:31:34 AM

[7:31:35 AM] ERROR [postcss] C:/Users/Vad/OneDrive/Documents/GitHub/project-juniper/App/node_modules/@nuxthq/ui/dist/runtime/ui.css:6:3: The outline-primary-500 class does not exist. If outline-primary-500 is a custom class, make sure it is defined within a @layer directive.

โ„น Vite client warmed up in 3671ms 7:31:38 AM
โœ” Nitro built in 1737 ms `



Just installed it. In my package.json
"@nuxthq/ui": "npm:@nuxthq/ui-edge@latest",

and nuxt.config
modules: [ [ "@storyblok/nuxt", { accessToken: process.env.STORYBLOK_API_TOKEN, devtools: true, apiOptions: { cache: { type: "memory" }, region: "us", // region code here }, }, ], "@nuxtjs/tailwindcss", "@nuxt/image-edge", "@nuxt/devtools", "@nuxtjs/supabase", "@nuxtjs/google-fonts", "nuxt-vitest", "nuxt-bugsnag", "@formkit/nuxt", "@nuxthq/ui", // "nuxt-security" // only for SSG apps. we are doing static generation with nitro ],

app.config
// app.config.ts export default defineAppConfig({ ui: { primary: "emerald", gray: "stone", }, });

npm ERR! 404 Not Found - GET https://registry.npmjs.org/@iconify%2fjson-mdi - Not found

`$ npm i --dev @iconify/json-mdi --dev @iconify/json-uil
npm WARN config dev Please use --include=dev instead.
npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/@iconify%2fjson-mdi - Not found
npm ERR! 404
npm ERR! 404 '@iconify/json-mdi@*' is not in this registry.
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Vad\AppData\Local\npm-cache_logs\2023-05-16T13_42_24_628Z-debug-0.log`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.