buwipro
v1.0.66
Published
library components
Readme
Buwipro UI Library
Una librería de componentes React moderna y personalizable para construir interfaces de usuario.
Requisitos
- Node.js 20.x o superior
- React 18.x
- Styled Components 6.x
Instalación
npm install @bewe/buwipro
# o
yarn add @bewe/buwiproUso Básico
import React from 'react';
import { AtomButtonGeneral, LibraryProvider } from '@bewe/buwipro';
const App = () => {
return (
<LibraryProvider>
<AtomButtonGeneral>Click me</AtomButtonGeneral>
</LibraryProvider>
);
};
export default App;Storybook
Para agilizar el proceso de desarrollo de componentes y proporcionar una interfaz visual, utilizamos Storybook. A continuación se detallan los pasos para crear y organizar componentes en Storybook:
Define el Tipo de Componente:
- Antes de crear un componente, es importante determinar si será un átomo, molécula u organismo.
Crea la Carpeta del Componente:
- Navega a
components/(tipo de componente)y crea una carpeta con el nombre del componente. - Ejemplo:
components/atoms/Button
- Navega a
Archivos del Componente:
- Dentro de la carpeta del componente, crea:
styles.ts: Estilos del componente usandostyled-componentsindex.tsx: Lógica y estructura del componente
- Dentro de la carpeta del componente, crea:
Crea la Historia del Componente:
- En la carpeta
stories/(tipo de componente)crea el archivo de historia - Ejemplo:
Button.stories.ts
- En la carpeta
Ejecuta el proyecto Storybook:
npm run storybook

Build
npm run buildPublicar
npm publish --access=publicTema
Tema por Defecto
La librería viene con un tema predeterminado:
import React from "react";
import { AtomTextArea } from "@bewe/buwipro";
const App = () => {
return <AtomTextArea placeholder="Escribe tu mensaje..." />;
};
export default App;Tema Personalizado
Puedes personalizar el tema usando LibraryProvider:
import React from "react";
import { LibraryProvider, AtomTextArea } from "@bewe/buwipro";
const customTheme = {
colors: {
primary: "#FF5733",
secondary: "#FFC300",
background: "#f5f5f5",
grey300: "#d3d3d3",
// Agrega otras propiedades de color según necesites
},
};
const App = () => {
return (
<LibraryProvider theme={customTheme}>
<AtomTextArea placeholder="Textarea con tema personalizado" />
</LibraryProvider>
);
};
export default App;Estructura del Tema
Tu objeto de tema personalizado debe coincidir con esta estructura:
export type Colors = {
primary: string;
primary100: string;
primary200: string;
primary300: string;
secondary: string;
secondary100: string;
secondary200: string;
grey: string;
grey100: string;
grey200: string;
grey300: string;
light: string;
black: string;
white: string;
background: string;
alert: string;
};Uso Avanzado
Uso con un ThemeProvider Existente
import React from "react";
import { ThemeProvider } from "styled-components";
import { LibraryProvider, AtomTextArea } from "@bewe/buwipro";
const existingTheme = {
colors: {
primary: "#00bcd4",
secondary: "#8bc34a",
// Define otros colores según necesites
},
};
const App = () => {
return (
<ThemeProvider theme={existingTheme}>
<LibraryProvider>
<AtomTextArea placeholder="Escribe tu mensaje..." />
</LibraryProvider>
</ThemeProvider>
);
};
export default App;Componentes Disponibles
Atoms
AtomButtonGeneral- Botón principalAtomButtonGhost- Botón fantasmaAtomButtonIcon- Botón con iconoAtomButtonOutline- Botón con bordeAtomButtonSelect- Botón seleccionableAtomCard- Tarjeta básicaAtomCardMobile- Tarjeta para móvilAtomCheckBox- Casilla de verificaciónAtomInput- Campo de entradaAtomInputForm- Campo de formularioAtomInputAction- Campo de entrada con acciónAtomOptions- OpcionesAtomRadioButton- Botón de radioAtomSelect- SelectorAtomTextArea- Área de textoAtomToggle- InterruptorAtomLoader- CargadorAtomDivisor- DivisorAtomDocumentItem- Item de documento
Molecules
MoleculeAlertMobile- Alerta móvilMoleculeCardEditInfo- Tarjeta de ediciónMoleculeCardMobile- Tarjeta móvilMoleculeExcelDownload- Descarga de ExcelMoleculeHeader- EncabezadoMoleculeInput- Input compuestoMoleculeInputPhone- Input para teléfonoMoleculeMessage- MensajeMoleculeSelect- Selector compuestoMoleculeTextArea- Área de texto compuestaMoleculeUploadDocument- Carga de documentos
Tokens
TokenError- Mensaje de errorTokenLabel- EtiquetaTokenLink- EnlaceTokenParagraph- PárrafoTokenSubTitle- SubtítuloTokenText- TextoTokenTitle- Título
