@haex-space/ui

Nuxt layer with shadcn-vue (reka-ui) components and the haex theme tokens
183
Install
npm install @haex-space/ui
Latest Version:0.1.0
Vue:3
License:ISC
Last Updated:Oct 24, 2026
Links: GitHub  ·  npm
Maintainer: haexspace

@haex-space/ui

Nuxt layer: shadcn-vue (reka-ui) components registered globally as Shadcn*, a few composed components as Ui*, and the haex theme tokens (oklch CSS variables, light + .dark).

Use

pnpm add @haex-space/ui reka-ui @lucide/vue vue-sonner vaul-vue embla-carousel-vue \
  class-variance-authority clsx tailwind-merge @internationalized/date @vueuse/core \
  tailwindcss @tailwindcss/vite tw-animate-css
// nuxt.config.ts
import tailwindcss from '@tailwindcss/vite'
export default defineNuxtConfig({
  extends: ['@haex-space/ui'],
  build: { transpile: ['reka-ui'] },
  css: ['~/assets/css/main.css'],
  vite: { plugins: [tailwindcss()] },
})
/* assets/css/main.css */
@import "tailwindcss";
@import "tw-animate-css";
@import "@haex-space/ui/assets/css/theme.css";
@source "../../../node_modules/@haex-space/ui/components";
@custom-variant dark (&:is(.dark *));

:root { --primary: oklch(0.65 0.17 180); }
.dark { --primary: oklch(0.7 0.15 180); }

@layer base {
  * { @apply border-border outline-ring/50; }
  body { @apply bg-background text-foreground; }
}

The @source line is required: Tailwind v4 does not scan node_modules on its own. Adjust the relative path to where your CSS file lives.

Dark mode is opt-in: add the dark class to <html> (for example via @nuxtjs/color-mode with classSuffix: '').

Compatibility

This layer currently supports Nuxt 4.2.2 and newer (nuxt ^4.2.2). Nuxt 3.21 layer consumption is not currently supported: nuxi build fails while processing the layer's globally registered components with No fs option provided to compileScript in non-Node environment.

Release

Bump version in packages/haex-ui/package.json, merge, then push a tag ui-v<version>. .github/workflows/ui-release.yml publishes to npm.

First release only: npm requires a package to already exist before Trusted Publishing can be configured for it, so the very first ui-v* tag must publish using the NPM_TOKEN repo secret (a classic granular token with publish rights on @haex-space).

After the first release: configure npm Trusted Publishing so future releases need no token at all — on the package's Settings page on npmjs.com, add a Trusted Publisher: provider GitHub Actions, organization/user haex-space, repository haextension, workflow filename ui-release.yml (just the filename, not the path). The workflow already requests id-token: write; npm's CLI (and pnpm ≥ 10, which this repo pins) detects the OIDC token automatically and prefers it over NODE_AUTH_TOKEN. The NPM_TOKEN secret can then be removed.

Version History

Version Released Vue License
0.1.0 ^3.5.0 ISC