Communitygithub.com

onmax/reka-ui

Útil al construir con Reka UI (componentes Vue sin estilo) - proporciona API de componentes, patrones de accesibilidad, composición (asChild), estado controlado/no controlado, virtualización e integración de estilos. Anteriormente Radix Vue.

¿Qué es reka-ui?

El skill `onmax/reka-ui` está diseñado para desarrolladores que trabajan con Reka UI, una biblioteca de componentes Vue sin estilo (headless) centrada en la accesibilidad y la composición flexible. Originalmente conocido como Radix Vue, este skill permite acceder a la API completa de componentes, incluyendo patrones de accesibilidad ARIA, la técnica de composición `asChild` para personalización total del marcado, manejo de estado controlado y no controlado, soporte para virtualización en listas y menús, y una integración sencilla con cualquier sistema de estilos (Tailwind CSS, CSS personalizado, etc.). Es útil para desarrolladores que construyen interfaces de usuario complejas y accesibles con Vue, ya que proporciona una base sólida y probada, similar a Radix UI en React. El skill se integra directamente en el flujo de trabajo del agente para generar código Vue que use estos componentes de manera eficiente y correcta, siguiendo las mejores prácticas de la biblioteca. Está pensado para entornos de desarrollo como Claude Code, Cursor o Codex, donde el agente puede asistir en la escritura de código, la depuración y la implementación de patrones comunes.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/onmax/nuxt-skills/tree/main/skills/reka-ui

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace reka-ui?

Útil al construir con Reka UI (componentes Vue sin estilo) - proporciona API de componentes, patrones de accesibilidad, composición (asChild), estado controlado/no controlado, virtualización e integración de estilos. Anteriormente Radix Vue.

Descripción general

Reka UI es una biblioteca de componentes Vue sin estilo que se centra en la accesibilidad, la composición y la flexibilidad. Este skill te ayuda a:

  • Usar componentes como Accordion, Dialog, Popover, Select, Toggle, etc.
  • Implementar la composición con asChild para personalizar el marcado.
  • Manejar estado controlado y no controlado.
  • Integrar con Tailwind CSS, CSS personalizado o cualquier solución de estilos.
  • Aplicar virtualización para listas y menús largos.
  • Seguir patrones de accesibilidad (ARIA, enfoque, navegación por teclado).

Componentes principales

ComponenteUso típico
AccordionPaneles expandibles
DialogDiálogos modales
PopoverVentanas emergentes
SelectMenús desplegables
ToggleBotones de alternancia
TooltipInformación sobre herramientas

Ejemplo básico

<template>
  <Dialog.Root>
    <Dialog.Trigger>Abrir diálogo</Dialog.Trigger>
    <Dialog.Portal>
      <Dialog.Overlay />
      <Dialog.Content>
        <Dialog.Title>Título</Dialog.Title>
        <Dialog.Description>Descripción</Dialog.Description>
        <Dialog.Close>Cerrar</Dialog.Close>
      </Dialog.Content>
    </Dialog.Portal>
  </Dialog.Root>
</template>

<script setup>
import { Dialog } from 'reka-ui'
</script>

Composición con asChild

Para personalizar el elemento raíz de un componente, usa asChild:

<template>
  <Dialog.Trigger asChild>
    <Button variant="secondary">Abrir</Button>
  </Dialog.Trigger>
</template>

Estado controlado vs no controlado

  • No controlado: El componente maneja su propio estado internamente.
  • Controlado: Pasas v-model para controlar el estado desde el padre.
<template>
  <Dialog.Root v-model:open="open">
    <!-- contenido -->
  </Dialog.Root>
</template>

<script setup>
const open = ref(false)
</script>

Virtualización

Para listas largas, usa el soporte de virtualización mediante virtualizer:

<template>
  <Select.Root>
    <Select.Virtualizer :items="items">
      <template #default="{ item }">
        <Select.Item :value="item">{{ item }}</Select.Item>
      </template>
    </Select.Virtualizer>
  </Select.Root>
</template>

Integración de estilos

Reka UI no incluye estilos, pero se integra fácilmente con Tailwind CSS:

<template>
  <Dialog.Content class="fixed top-10 bg-white p-4 rounded shadow">
    <!-- contenido estilizado -->
  </Dialog.Content>
</template>

Consideraciones adicionales

  • Accesibilidad: Los componentes siguen las prácticas WAI-ARIA.
  • Compatibilidad: Funciona con Vue 3.
  • Migración desde Radix Vue: La API es muy similar; la mayoría de los componentes son directamente reemplazables.

Enlaces útiles

Individual skills in this repo

This repo contains 15 individual skills — each has its own dedicated page.

onmax/document-writer

Use when writing blog posts or documentation markdown files - provides writing style guide (active voice, present tense), content structure patterns, and MDC component usage. Overrides brevity rules for proper grammar. Use nuxt-content for MDC syntax, nuxt-ui for component props.

onmax/motion

Use when adding animations with Motion Vue (motion-v) - provides motion component API, gesture animations, scroll-linked effects, layout transitions, and composables for Vue 3/Nuxt

onmax/nuxt

Use when working on Nuxt 4+ projects - provides server routes, file-based routing, middleware patterns, Nuxt-specific composables, and configuration with latest docs. Covers h3 v1 helpers (validation, WebSocket, SSE) and nitropack v2 patterns. Updated for Nuxt 4.3+.

onmax/nuxt-better-auth

Use when implementing auth in Nuxt apps with @onmax/nuxt-better-auth - provides useUserSession composable, server auth helpers, route protection, and Better Auth plugins integration.

onmax/nuxt-content

Use when working with Nuxt Content v3, markdown content, or CMS features in Nuxt - provides collections (local/remote/API sources), queryCollection API, MDC rendering, database configuration, NuxtStudio integration, hooks, i18n patterns, and LLMs integration

onmax/nuxthub

Use when building NuxtHub v0.10.6 applications - provides database (Drizzle ORM with sqlite/postgresql/mysql), KV storage, blob storage, and cache APIs. Covers configuration, schema definition, migrations, multi-cloud deployment (Cloudflare, Vercel), and the new hub:db, hub:kv, hub:blob virtual module imports.

onmax/nuxt-modules

Use when creating Nuxt modules: (1) Published npm modules (@nuxtjs/, nuxt-), (2) Local project modules (modules/ directory), (3) Runtime extensions (components, composables, plugins), (4) Server extensions (API routes, middleware), (5) Releasing/publishing modules to npm, (6) Setting up CI/CD workflows for modules. Provides defineNuxtModule patterns, Kit utilities, hooks, E2E testing, and release automation.

onmax/nuxt-seo

Nuxt SEO meta-module with robots, sitemap, og-image, schema-org. Use when configuring SEO, generating sitemaps, creating OG images, or adding structured data.

onmax/nuxt-ui

Use when building styled UI with @nuxt/ui v4 components - create forms with validation, implement data tables with sorting, build modal dialogs and overlays, configure Tailwind Variants theming. Use vue skill for raw component patterns, reka-ui for headless primitives.

onmax/pnpm

Use when managing Node.js dependencies with pnpm - install packages, configure monorepo workspaces, set up pnpm catalogs, resolve dependency conflicts with overrides, patch third-party packages, and configure CI pipelines for pnpm projects

onmax/ts-library

Use when authoring TypeScript libraries or npm packages - covers project setup, package.json exports, build tooling (tsdown/unbuild), API design patterns, type inference tricks, testing, and publishing to npm. Use when bundling, configuring dual CJS/ESM output, or setting up release workflows.

onmax/vite

Vite build tool configuration, plugin API, SSR, and Vite 8 Rolldown migration. Use when working with Vite projects, vite.config.ts, Vite plugins, or building libraries/SSR apps with Vite.

onmax/vitest

Use when writing unit/integration tests for Vite projects - configure vitest.config.ts, write test suites with describe/it, create mock implementations with vi.fn and vi.mock, set up code coverage thresholds, and run tests in parallel

onmax/vue

Use when editing .vue files, creating Vue 3 components, writing composables, or testing Vue code - provides Composition API patterns, props/emits best practices, VueUse integration, and reactive destructuring guidance

onmax/vueuse

Use when working with VueUse composables - track mouse position with useMouse, manage localStorage with useStorage, detect network status with useNetwork, debounce values with refDebounced, and access browser APIs reactively. Check VueUse before writing custom composables - most patterns already implemented.

Skills relacionados