An open API service indexing awesome lists of open source software.

https://github.com/alvaromartincrespo/component-catalog


https://github.com/alvaromartincrespo/component-catalog

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

# Catálogo de Componentes

Este proyecto es un catálogo de componentes reutilizables en React, que incluye diversos elementos de interfaz de usuario como botones, modales y contenedores. Cada componente está diseñado para ser flexible y fácil de personalizar.

## Contenido

- [Instalación](#instalación)
- [Componentes](#componentes)
- [Botón Personalizado](#botón-personalizado)
- [Modal](#modal)
- [Contenedor Responsive](#contenedor-responsive)
- [Image](#images)
- [Text](#texts)
- [Toast](#toasts)
- [Accordion](#Accordion)
- [Loader](#loader)
- [Carrousel](#carrousel)
- [Input](#inputs)
- [Uso](#uso)

## Instalación

Para instalar este proyecto, sigue estos pasos:

1. Clona el repositorio:
```bash
git clone https://github.com/AlvaroMartinCrespo/catalago-componentes.git
cd catalogo-componentes
```

2. Instalación de dependencias:
```bash
npm install
```

3. Iniciar la aplicación:
```bash
npm run dev
```

## Componentes

### Botón Personalizado

Un botón reutilizable con diferentes variantes y tamaños.

#### Props

- **label**: Texto del botón (por defecto: "Click Me").
- **variant**: Estilo del botón (`primary`, `secondary`, `success`, `error`).
- **size**: Tamaño del botón (`small`, `medium`, `large`).
- **onClick**: Función que se ejecuta al hacer clic.

#### Ejemplo de Uso

```jsx
import CustomButton from './customButton';

alert('Button clicked!')}
/>
```

### Modal

Un modal que se puede abrir y cerrar con contenido personalizado.

#### Props

- **isOpen**: Booleano que determina si el modal está visible.
- **onClose**: Función para cerrar el modal.
- **title**: Título del modal (por defecto: "Modal Title").
- **children**: Contenido que se mostrará dentro del modal.

#### Ejemplo de Uso

```jsx
import React, { useState } from 'react';
import Modal from './modal';

function App() {
const [isModalOpen, setIsModalOpen] = useState(false);

const openModal = () => setIsModalOpen(true);
const closeModal = () => setIsModalOpen(false);

return (


Open Modal

This is the content inside the modal!




);
}
```

### Contenedor Responsive

Un contenedor flexible que se adapta a diferentes tamaños de pantalla.

#### Props

- **children**: Contenido que se mostrará dentro del contenedor.

#### Ejemplo de Uso

```jsx
import Container from './container';

function App() {
return (

Your content goes here!



);
}
```

### Texts

Un componente de texto simple y responsive para React que permite la personalización del tamaño, color, grosor de fuente y alineación.

#### Props

- **size**: Tamaño del texto (ejemplo: "1rem").
- **color**: Color del texto (ejemplo: "darkblue").
- **weight**: Grosor de la fuente (ejemplo: "bold").
- **align**: Alineación del texto (ejemplo: "center").

#### Ejemplo de Uso

```jsx
import Text from './Text';

function App() {
return (



Texto responsive que se adapta al tamaño de pantalla.


);
}
```

### Inputs

Un componente de entrada simple y responsive para React que permite la personalización del tipo, tamaño, color y estilos adicionales.

#### Props

- **type**: Especifica el tipo de entrada (ejemplo: "text", "email", "password").
- **placeholder**: Texto que se muestra cuando el campo está vacío.
- **color**: Color del borde del input.
- **Value**: Texto ya definido.

#### Ejemplo de Uso

```jsx
import Input from './Input';

function App() {
return (




);
}

```

### Cards

Este componente Card ofrece un diseño limpio y moderno que es responsive y puede adaptarse a diferentes estilos.

#### Props

- **Image**: URL de la imagen que se mostrará en la parte superior de la card (opcional).
- **title**: Título de la card.
- **description**: Descripción o texto adicional de la card.
- **actions**: Elementos adicionales (botones o enlaces) para mostrar en la parte inferior de la card (opcional).

#### Ejemplo de Uso

```jsx
import Card from './Card';

function App() {
return (



Acción 1
Acción 2
>
}
/>

);
}

export default App;

```

### Loader

Este Loader es flexible y adaptable a pantallas pequeñas, y sus colores y tamaños se pueden personalizar fácilmente para distintos escenarios en la interfaz de usuario.

#### Props

- **size**: Controla el tamaño del loader.
- **color**: Define el color de la parte visible del loader.

#### Ejemplo de Uso

```jsx
import Loader from './Loader';

function App() {
return (


{/* Loader verde, tamaño grande */}
{/* Loader rojo, tamaño mediano */}
{/* Loader amarillo, tamaño pequeño */}

);
}

export default App
```

### Accordion

Este Accordion permite personalizar el color del encabezado y el borde, haciéndolo más adaptable a diferentes esquemas de color en la interfaz.

#### Props

- **title**: El título del encabezado del acordeón
- **children**: Contenido del acordeón que se muestra al expandirse
- **isOpen**: Determina si el acordeón está expandido al montarse
- **color**: El color principal para el encabezado y el borde

#### Ejemplo de Uso

```jsx
import Accordion from './Accordion';

function App() {
return (



Este es el contenido adicional que se despliega al hacer clic.




Este acordeón está abierto por defecto. Puedes cerrarlo o abrirlo haciendo clic en el encabezado.




);
}

```

### Image

#### Props

- **src**: La URL de la imagen.
- **alt**: Texto alternativo con un valor predeterminado.
- **width height**: Dimensiones personalizables para adaptar la imagen
- **borderRadius**: Curvatura de las esquinas de la imagen
- **objectFit**: Permite definir el ajuste de la imagen (cover, contain, fill, none, scale-down).

#### Ejemplo de Uso

```jsx
import Image from './Image';

function App() {
return (





);
}

export default App;

```

## Uso

Para usar cualquiera de los componentes, simplemente impórtalos en tu archivo y agrégales las propiedades necesarias según lo que necesites.