2.0.4 • Published 9 months ago

musa-design-system v2.0.4

Weekly downloads
-
License
ISC
Repository
-
Last release
9 months ago

Instalación

 import 'musa-design-system/dist/index.cjs.css';
 import {
  Alert,
  ContainedButton,
  DropdownSelector,
  LetterInput,
  OutlinedButton,
  PasswordInput,
} from "musa-design-system";;

Componentes Documentados

1. Buttons

Botones reutilizables con diferentes estilos y variantes.

Variantes:

  • Outline: Botón con borde visible.
  • Solid: Botón con fondo sólido.
  • Gosh: Estilo de botón con efecto especial.
  • Button Icon: Botón que incluye un ícono y es rounded-full.

Props

PropiedadTipoDescripción
variant'contained' \| 'outlined'Variante del botón: relleno (contained) o borde (outlined)
childrenReact.ReactNodeContenido interno del botón (texto, íconos, etc.)
iconReact.ReactNodeÍcono al inicio del botón (opcional)
endIconReact.ReactNodeÍcono al final del botón (opcional)
color'primary' \| 'secondary' \| 'error' \| 'gray' \| 'info' \| 'white'Color del botón, según el tema del sistema
extraPaddingbooleanAgrega un padding extra al botón (opcional)
fullbooleanHace que el botón ocupe el ancho completo del contenedor
loadingbooleanMuestra un indicador de carga dentro del botón
roundedFullbooleanEstilo con bordes completamente redondeados
size'normal' \| 'small' \| 'large' \| 'medium'Tamaño del botón
centerTextbooleanCentra el texto del botón
shadowDisabledbooleanDesactiva la sombra del botón (opcional)
styleReact.CSSPropertiesEstilos personalizados aplicados al botón
onClickfunctionFunción a ejecutar al hacer clic
type'button' \| 'submit' \| 'reset'Tipo del botón HTML
disabledbooleanDesactiva el botón

Ejemplo

  <OutlinedButton color="primary">Hola</OutlinedButton>
  <ContainedButton color="primary">Hola</ContainedButton>

2. Input

Campos de entrada de texto con múltiples variantes y funcionalidad avanzada.

Tipos de Inputs

  1. LetterInput: Entrada restringida a letras (con opción para permitir espacios).
  2. NumberInput: Entrada restringida a números (con soporte opcional para decimales).
  3. PasswordInput: Entrada para contraseñas.

Props Generales

PropiedadTipoDescripción
variant'normal'Variante visual del input
disabledbooleanDesactiva la entrada, impidiendo interacción
fullWidthbooleanAjusta el ancho del input al 100% del contenedor
endIconReactElementÍcono al final del input (opcional)
isInvalidbooleanMarca el input como inválido
isErrorbooleanMarca el input con un estado de error
errorstringMensaje de error mostrado debajo del input
labelstringEtiqueta asociada al input
placeholderstringTexto de marcador dentro del input
hintstringMensaje de ayuda mostrado debajo del input
actionEndIconReactElementÍcono de acción al final del input
onClickEndIconfunctionAcción ejecutada al hacer clic en endIcon
onActionEndIconfunctionAcción ejecutada al interactuar con actionEndIcon
showIconActionbooleanMuestra o no el actionEndIcon
widthstringAncho personalizado del input
paddingstringEspaciado interno del input
onChange(e: ChangeEvent<HTMLInputElement>) => voidFunción ejecutada al cambiar el valor
typestringTipo de entrada HTML

Props Específicas

LetterInput

PropiedadTipoDescripción
allowSpacesbooleanPermite espacios en el input

NumberInput

PropiedadTipoDescripción
decimalbooleanPermite números decimales

Ejemplo de Uso

// Entrada de solo letras
<LetterInput
  label="Solo letras"
  placeholder="Ej. ABC"
  allowSpaces
/>

// Entrada de números
<NumberInput
  label="Edad"
  placeholder="Ej. 25"
  decimal={false}
/>

3. Card

Componente para contener contenido con sombra, bordes redondeados y tamaños configurables.

Props

PropiedadTipoDescripción
childrenReact.ReactNodeContenido interno de la tarjeta
classNamestringClase CSS personalizada
padding'none' \| 'small' \| 'normal' \| 'large'Tamaño del padding interno
centerbooleanCentra el contenido
onClickfunctionAcción al hacer clic
borderedbooleanAgrega un borde visible

Ejemplo

<Card center bordered padding="large">
  Este es un card con sombra y bordes redondeados.
</Card>

4. Alert

Mensajes informativos con diferentes estilos.

Props

PropiedadTipoDescripción
type'info' \| 'error' \| 'success' \| 'warning'Tipo de alerta
messagestringMensaje de la alerta

Ejemplo

<Alert type="success" message="Operación exitosa." />
<Alert type="error" message="Ha ocurrido un error." />

5. Checkbox y Radio

Props de Radio

PropiedadTipoDescripción
labelstring \| ReactElementEtiqueta del radio button
fullbooleanOcupa todo el ancho disponible
centerRadiobooleanCentra el radio button
hideRadiobooleanOculta el radio button
hintstringTexto adicional
color'primary' \| 'secondary'Color del radio button

Props de Checkbox

PropiedadTipoDescripción
labelstring \| ReactElementEtiqueta del checkbox
fullbooleanOcupa todo el ancho disponible
centerCheckboxbooleanCentra el checkbox
hideCheckboxbooleanOculta el checkbox
hintstringTexto adicional
endIconReactElementIcono al final
color'primary' \| 'secondary'Color del checkbox

Ejemplo

    <Checkbox label="Acepto los términos y condiciones" />
    <div className="flex flex-col gap-4">
      <Radio
        label="Option 1"
        name="radioGroup"
        value="option1"
        checked={selected === 'option1'}
        onChange={() => setSelected('option1')}
        color='primary'
      />
      <Radio
        label="Option 2"
        name="radioGroup"
        value="option2"
        checked={selected === 'option2'}
        onChange={() => setSelected('option2')}
        color='secondary'
      />
    </div>

6. Loader

Props

PropiedadTipoDescripción
labelstringDescripción del mensaje de carga

Ejemplo

<Loader label="Cargando componentes..." />

7. DropdownSelector

Props

PropiedadTipoDescripción
optionsArray<{ value: string, label: string }>Lista de opciones disponibles
formGroupWidthstringAncho personalizado del contenedor
selectedOption{ value: string, label: string }Opción seleccionada
setSelectedOptionfunctionFunción para actualizar selección
labelTextstringEtiqueta del dropdown
hintTextstringMensaje de ayuda
emptyMessagestringMensaje cuando no hay opciones
isDisabledbooleanDesactiva el dropdown
isErrorbooleanIndica estado de error

8. Header

Props

PropiedadTipoDescripción
logoJSX.ElementLogo del encabezado
navLinksJSX.ElementEnlaces de navegación

Ejemplo

const navLinks = (
  <>
    <a href="#home">Home</a>
    <a href="#about">About</a>
    <a href="#contact">Contact</a>
  </>
);

<Header logo={<FaReact />} navLinks={navLinks} />;
2.0.3

9 months ago

2.0.2

9 months ago

2.0.4

9 months ago

2.0.1

9 months ago

2.0.0

9 months ago

1.1.6

1 year ago

1.1.5

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

0.0.99

1 year ago

0.0.98

1 year ago

0.0.97

1 year ago

0.0.96

1 year ago

0.0.95

1 year ago

0.0.94

1 year ago

0.0.93

1 year ago

0.0.92

1 year ago

0.0.91

1 year ago

0.0.90

1 year ago

0.0.89

1 year ago

0.0.88

1 year ago

0.0.87

1 year ago

0.0.86

1 year ago

0.0.85

1 year ago

0.0.84

1 year ago

0.0.83

1 year ago

0.0.82

1 year ago

0.0.81

1 year ago

0.0.8

1 year ago

0.0.75

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago