@axzydev/axzy_ui_system

中文文档
1.8.15发布于 2026/11/01MITTypeScriptESM + CJS近 30 天下载 4767

Librería de componentes React enterprise-ready con Tailwind CSS v4. Diseñada para aplicaciones de datos densos, dashboards y sistemas de gestión.

原始使用文档
文档目录20 节
  1. Documentación para IA
  2. Carpeta ai/ — copiar y pegar
  3. Instalación en un proyecto nuevo
  4. 1. Crear proyecto Vite + React + TypeScript
  5. 2. Instalar dependencias
  6. 3. Configurar Vite con Tailwind v4
  7. 4. Importar Tailwind + el CSS de la librería (en el orden d…
  8. 5. Envolver con ITThemeProvider
  9. 6. Usar componentes
  10. Desarrollo local (contribuir)
  11. 1. Clonar e instalar
  12. 2. Iniciar servidor de desarrollo (sandbox interactivo)
  13. 3. Build de producción
  14. Scripts
  15. Arquitectura atómica y aislamiento CSS
  16. Garantía de aislamiento
  17. Theming
  18. Componentes disponibles
  19. Autocomplete / IntelliSense
  20. Requisitos

AXZY UI System

Librería de componentes React enterprise-ready con Tailwind CSS v4. Diseñada para aplicaciones de datos densos, dashboards y sistemas de gestión.


Documentación para IA

Si vas a generar código con esta librería (Copilot, Claude, Cursor, un agente propio), pásale:

ArchivoQué contiene
docs/llm/GUIA.mdGuía de uso: reglas, composición de pantallas, theming, i18n, accesibilidad, trampas conocidas y recetas
docs/llm/catalogo.mdGenerado desde el código: 61 componentes con props, tipos, defaults y ejemplo
docs/llm/catalogo.jsonEl mismo catálogo en JSON, para indexar
docs/llm/ejemplos-reales.mdAsí se usa en producción (CYC ERP): capas de CSS, provider real, chassis, listados, formularios, tablas con API y toasts
LLM_DOCS.mdTheming a fondo: variables CSS --it-*, escalas y chassis de layout

Carpeta ai/ — copiar y pegar

Si no quieres ir archivo por archivo, la carpeta ai/ trae el paquete autocontenido listo para pegar en un chat o subir como conocimiento del proyecto:

ArchivoTamañoContenido
ai/AXZY-UI-SYSTEM.md~150 KB (~38k tokens)Todo en uno: guía + ejemplos reales + catálogo completo
ai/AXZY-UI-SYSTEM-compacto.md~65 KB (~17k tokens)Igual, con el catálogo sin descripciones de props
ai/catalogo.md · ai/catalogo.json—Solo el catálogo
ai/plantillas/—Reglas para Cursor (.mdc), Copilot, Claude Code y prompt inicial
pnpm docs:llm        # regenera el catálogo (compilador de TS sobre src/index.ts), docs/llm/ y ai/
pnpm docs:ai         # solo el paquete ai/ (usa docs/llm/ ya generado)
pnpm audit:sandbox   # audita el sandbox: axe (set completo) + contenido recortado, 45 páginas

Instalación en un proyecto nuevo

1. Crear proyecto Vite + React + TypeScript

npm create vite@latest mi-app -- --template react-ts
cd mi-app

2. Instalar dependencias

npm install @axzydev/axzy_ui_system
npm install -D tailwindcss @tailwindcss/vite @vitejs/plugin-react-swc

3. Configurar Vite con Tailwind v4

vite.config.ts:

import { defineConfig } from "vite"
import react from "@vitejs/plugin-react-swc"
import tailwindcss from "@tailwindcss/vite"

export default defineConfig({
  plugins: [tailwindcss(), react()],
})

4. Importar Tailwind + el CSS de la librería (en el orden de capas correcto)

dist/index.css es un build de Tailwind independiente y ya compilado (tiene sus propias capas @layer theme, base, components, utilities). Si tu app también hace @import "tailwindcss"; por su cuenta, el navegador acaba con dos juegos de esas mismas capas compartiendo nombre, y gana la que se registró en último lugar en el documento — normalmente el Preflight/reset de tu propia app, que no conoce los tokens de AXZY. Eso es lo que rompe cosas como el Sidebar: se ve bien solo mientras tu app no tiene su propio Tailwind corriendo.

La forma correcta es importar el CSS de la librería con un layer propio y fijar el orden de capas explícitamente, para que el reset/tema de AXZY nunca dependa del orden de imports:

src/index.css:

/* El orden aquí es el que manda, independientemente de en qué orden se
   importen los archivos: axzy-ui-system se ejecuta después del `base` de
   Tailwind (así su reset nunca lo pisa) pero antes de `utilities` (así tus
   clases de Tailwind siguen pudiendo sobrescribir estilos de AXZY cuando
   haga falta). */
@layer theme, base, axzy-ui-system, components, utilities;

@import "tailwindcss";
@import "@axzydev/axzy_ui_system/dist/index.css" layer(axzy-ui-system);

Con esto ya no se importa dist/index.css desde main.tsx — todo entra por index.css.

Orden alternativo (y su consecuencia): si colocas axzy-ui-system después de utilities, los estilos de la librería ganan a tus utilidades y tendrás que forzarlas con el sufijo ! de Tailwind v4 (m-0! px-4! max-w-screen!). El orden de arriba te ahorra esos !.

Modo oscuro por defecto: el provider arranca en system y guarda la preferencia en la clave it-theme-dark-mode ("light" | "dark" | "system"). Si quieres otro default, escríbela antes de montar la app:

if (!localStorage.getItem("it-theme-dark-mode")) localStorage.setItem("it-theme-dark-mode", "light");

5. Envolver con ITThemeProvider

src/main.tsx:

import React from "react"
import ReactDOM from "react-dom/client"
import { ITThemeProvider } from "@axzydev/axzy_ui_system"
import App from "./App"
import "./index.css"

ReactDOM.createRoot(document.getElementById("root")!).render(
  <React.StrictMode>
    <ITThemeProvider>
      <App />
    </ITThemeProvider>
  </React.StrictMode>
)

6. Usar componentes

import { ITButton } from "@axzydev/axzy_ui_system"

export default function App() {
  return (
    <div className="p-8">
      <ITButton>Hola Mundo</ITButton>
    </div>
  )
}

Desarrollo local (contribuir)

1. Clonar e instalar

git clone https://github.com/maag070208/AXZY_UI_SYSTEM.git
cd AXZY_UI_SYSTEM
pnpm install

2. Iniciar servidor de desarrollo (sandbox interactivo)

pnpm dev

Abre http://localhost:5173 para ver el Interactive Sandbox con todos los componentes.

El sandbox usa hash routing: #ui-system (landing), #ui-system/<grupo>/<item> (componente), p. ej. http://localhost:5173/#ui-system/forms/input. La tabla de rutas y slugs vive en src/sandbox/navigation.ts.

3. Build de producción

pnpm build        # alias de pnpm bundle (tsup + CSS)
pnpm bundle       # tsup + CSS

Scripts

ComandoDescripción
pnpm devSandbox interactivo (Vite)
pnpm buildAlias de pnpm bundle (tsup + CSS)
pnpm build:appBuild de la app sandbox
pnpm bundleBundle del paquete (tsup + CSS)
pnpm watchWatch mode para desarrollo del paquete
pnpm lintESLint
pnpm check:atomicValida dependencias atómicas (sin imports hacia capas superiores)
pnpm check:cssValida aislamiento CSS (selectores it-*, tokens --it-*, sin duplicados)
pnpm previewPreview del build

Arquitectura atómica y aislamiento CSS

Los componentes se organizan en capas atómicas con dependencias unidireccionales (una capa solo importa de capas iguales o inferiores):

CapaReglaEjemplos
atoms/Primitivos, sin dependencias de componentesITButton, ITInput, ITText, ITGrid, ITFlex, ITStack
molecules/Combinan átomos y moléculasITCard, ITDatePicker, ITSelect, ITTable, ITStepper
organisms/Composiciones complejasITDataTable, ITFormBuilder, ITDialog, ITSidebar, ITTopbar
templates/Páginas/estructuras completasITLayout, ITPage
theme-provider/Provider (no capa visual)ITThemeProvider

Garantía de aislamiento

Anidar componentes (p.ej. ITDatePicker dentro de ITCard) no produce interferencia de estilos. Esto se garantiza por convención y se valida en CI:

  1. Clases propias siempre con prefijo it- (BEM: .it-card, .it-date-picker__popover). Nunca clases genéricas (.card, .toast-enter, .animate-*).
  2. Selectores con :where(.it-*) → especificidad 0, para que las utilities de Tailwind del consumidor sigan overrideando sin conflicto.
  3. CSS plano en @layer components → las utilities (layer utilities) ganan siempre.
  4. Tokens públicos con namespace --it-* (--it-card-bg, --it-input-border, ...). El resto de tokens --color-*/--radius-* son internos de Tailwind.
  5. Checks automáticos: pnpm check:css (selectores/tokens genéricos) y pnpm check:atomic (grafo de dependencias) fallan si se viola la convención.

El aislamiento se valida en CI con pnpm check:css y pnpm check:atomic; ya no hay historia de Storybook de aislamiento.


Theming

Personaliza la paleta de colores en runtime sin recompilar:

const myTheme = {
  colors: {
    primary: { 50: "#fef2f2", 500: "#ef4444", 900: "#7f1d1d" },
    success: { 50: "#f0fdf4", 500: "#22c55e" },
    // solo necesitas los colores que quieras sobreescribir
  },
}

<ITThemeProvider theme={myTheme}>
  <App />
</ITThemeProvider>

Override fino por CSS: los tokens de componente usan el namespace --it-* (--it-card-bg, --it-topbar-bg, --it-calendar-selected-bg, ...). Sobrescribir estas variables en cualquier contenedor estila solo ese subárbol.

Breaking (v1.3): los tokens se renombraron de --card-*, --input-*, --topbar-*, --sidebar-*, --modal-*, --calendar-*, --layout-* a --it-* para evitar colisiones con CSS de la app consumidora.


Componentes disponibles

  • ITButton – Botón con variants (filled, outlined, raised, rounded, text, link, icon-only)
  • ITInput – Input con soporte para texto, password, número, textarea, iconos
  • ITSelect – Dropdown nativo estilizado
  • ITSearchSelect – Select con búsqueda y opciones async
  • ITDatePicker / ITTimePicker – Selectores de fecha y hora
  • ITCalendar – Calendario con eventos y modos month/week/day
  • ITSlideToggle – Switch toggle
  • ITDropfile – Área de arrastrar y soltar archivos
  • ITFormBuilder – Generador dinámico de formularios desde JSON
  • ITTable / ITDataTable – Tablas con filtros, ordenamiento, paginación y columnas fijas (pinned)
  • ITCard / ITStatCard – Tarjetas de contenido y métricas
  • ITLayout / ITNavbar – Sistema de layout con sidebar colapsable
  • ITFlex / ITStack / ITGrid – Layout helpers
  • ITText – Tipografía con variants
  • ITAvatar – Avatares con iniciales
  • ITBadget – Badges de estado
  • ITDivider – Divisores
  • ITProgress – Barras de progreso
  • ITPagination – Paginación
  • ITPageHeader – Encabezados de página
  • ITPage – Página completa con layout
  • ITThemeProvider – Proveedor de tema

Autocomplete / IntelliSense

Al instalar el paquete obtienes autocomplete de props en JSX automáticamente (TypeScript + JSDoc). También incluye snippets de VS Code para insertar cada componente con un par de teclas. Ver AUTOCOMPLETE_SETUP.md para el setup completo (snippets, Tailwind IntelliSense).


Requisitos

  • React 18+
  • Tailwind CSS 4.x + @tailwindcss/vite
  • Node.js 18+
  • pnpm (para desarrollo local)

版本与发布记录

@axzydev/axzy_ui_system 共发布 73 个版本,首次发布于 2026/02/22;过去 12 个月发布了 73 个版本。

版本发布日期距今
1.8.15latest2026/11/017 天前
1.8.142026/10/308 天前
1.8.132026/10/308 天前
1.8.122026/10/308 天前
1.8.112026/10/308 天前
1.8.102026/10/308 天前

关于 @axzydev/axzy_ui_system 的常见问题

@axzydev/axzy_ui_system 是什么?

Librería de componentes React enterprise-ready con Tailwind CSS v4. Diseñada para aplicaciones de datos densos, dashboards y sistemas de gestión.

如何安装 @axzydev/axzy_ui_system?

在项目目录运行 npm install @axzydev/axzy_ui_system,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(>=18)、react-dom(>=18)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@axzydev/axzy_ui_system 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@axzydev/axzy_ui_system 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@axzydev/axzy_ui_system 可以商用吗?

@axzydev/axzy_ui_system 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@axzydev/axzy_ui_system 的下载量有多少?

根据 npm 官方下载统计,@axzydev/axzy_ui_system 在 2026/10/08 – 2026/11/06 这 30 天内被下载 4,767 次,日均约 159 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@axzydev/axzy_ui_system 还在维护吗?

最新版本 1.8.15 发布于 2026/11/01(7 天前);至今共发布 73 个版本,其中过去 12 个月发布了 73 个;首次发布于 2026/02/22。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。