NexusUI es una biblioteca de componentes React moderna y flexible que te permite construir interfaces de usuario hermosas y funcionales. Diseñada para ser utilizada tanto como una biblioteca npm tradicional como a través de Module Federation para arquitecturas de micro-frontends.
- 🎨 Componentes React modernos y reutilizables
- 📦 Disponible como paquete npm
- 🔌 Soporte para Module Federation
- 🎭 Integración con Storybook para documentación y desarrollo
- 🎯 TypeScript para mejor desarrollo y autocompletado
- 💅 TailwindCSS para estilos flexibles y personalizables
- 📱 Diseño responsive y accesible
npm install nexusui
# o
yarn add nexusui
# o
pnpm add nexusui- Configura tu aplicación host para consumir NexusUI:
// webpack.config.js
const { ModuleFederationPlugin } = require('webpack').container;
module.exports = {
plugins: [
new ModuleFederationPlugin({
name: 'host',
remotes: {
nexusui: 'nexusui@http://localhost:3000/remoteEntry.js',
},
shared: {
react: { singleton: true },
'react-dom': { singleton: true }
},
}),
],
};import { Button, Card } from 'nexusui';
function MyComponent() {
return (
<Card>
<Button variant="primary">¡Hola Mundo!</Button>
</Card>
);
}import React, { lazy, Suspense } from 'react';
const Button = lazy(() => import('nexusui/Button'));
function MyComponent() {
return (
<Suspense fallback="Cargando...">
<Button variant="primary">¡Hola desde Module Federation!</Button>
</Suspense>
);
}- Clona el repositorio:
git clone https://github.com/tu-usuario/nexusui.git
cd nexusui- Instala las dependencias:
yarn install- Inicia el servidor de desarrollo:
yarn dev- Para ver la documentación y los componentes en Storybook:
yarn storybookyarn build- Construye la bibliotecayarn dev- Inicia el servidor de desarrolloyarn mf-dev- Inicia el servidor de desarrollo con Module Federationyarn storybook- Inicia Storybookyarn build-storybook- Construye la documentación de Storybook
Las contribuciones son bienvenidas. Por favor, lee nuestras guías de contribución antes de enviar un pull request.
MIT
Si tienes alguna pregunta o necesitas ayuda, por favor abre un issue en el repositorio.
Desarrollado con ❤️ por AsaedRM