UI Premium para Django
Una librer铆a modular de 52 componentes at贸micos y complejos listos para transformar tu aplicaci贸n en una experiencia de usuario moderna y profesional.
19
At贸micos
33
Complejos
Primeros Pasos
1
Opci贸n A: Instalaci贸n v铆a Git (Pip)
HTTPS con Token (B谩sico):
pip install git+https://TOKEN@github.com/hernandezpalo83/COMPONENTES.git#subdirectory=django_components_ui
Autenticaci贸n SSH (Recomendado):
django-components-ui @ git+ssh://git@github.com/hernandezpalo83/COMPONENTES.git#subdirectory=django_components_ui
2
Opci贸n B: Copia Directa
Copia la carpeta django_components_ui directamente en la ra铆z de tu proyecto e incl煤yela en INSTALLED_APPS.
3
Uso
Carga la librer铆a en tus archivos .html con: {% load components_ui %}.
Integraci贸n con IA
Hemos creado una gu铆a de contexto espec铆ficamente dise帽ada para que GPT-4, Claude u otras IAs aprendan a usar estos componentes al instante.
Gu铆a disponible en
Ver Gu铆a de Contexto
COMPONENTS_AI_GUIDE.md
Cat谩logo por Categor铆as
Elementos At贸micos
Button
Input_Text
Input_Date
Input_Number
Icon
Image
Modal
Dropdown
Menu_List
Toggle
Tooltip
Notification
Calendar
App_Bar
Title
Card
Floating_Button
Chart
Gauge
Acordeon
Breadcrumbs
Carousel
Steps
Avatar
Badge
Alert
Spinner
Progress_Bar
Skeleton
List_Group
Timeline
Tree_View
File_Upload
Color_Picker
Rating
Rich_Text_Editor
Map
Video_Player
Audio_Player
Pdf_Viewer
Qr_Code
Componentes Complejos
AI Context Guide
Markdown Context
# Gu铆a de Referencia: Django Components UI
Este proyecto utiliza una librer铆a personalizada de componentes de UI basada en `inclusion_tags` de Django y Tailwind CSS.
## M茅todos de Instalaci贸n
### Opci贸n A: V铆a Git (Recomendado para producci贸n privada)
Puedes instalar la librer铆a directamente desde tu repositorio remoto. Como la librer铆a est谩 dentro de una subcarpeta, usa el par谩metro `subdirectory`:
**1. V铆a HTTPS (Con Token):**
```bash
pip install git+https://TU_TOKEN@github.com/tu-usuario/tu-repo.git#subdirectory=django_components_ui
```
**2. V铆a SSH (M谩s seguro, no requiere tokens harcodeados):**
```bash
pip install git+ssh://git@github.com/tu-usuario/tu-repo.git#subdirectory=django_components_ui
```
**En `requirements.txt` (usando SSH):**
```text
django-components-ui @ git+ssh://git@github.com/tu-usuario/tu-repo.git#subdirectory=django_components_ui
```
> [!NOTE]
> Si el repositorio es privado, aseg煤rate de configurar un SSH key o usar un Personal Access Token (PAT) en la URL.
### Opci贸n B: Copia Directa
1. **Copia la carpeta** `django_components_ui` a la ra铆z de tu nuevo proyecto.
2. **Reg铆strala** en `INSTALLED_APPS`:
```python
INSTALLED_APPS = [
...
'django_components_ui',
]
```
## Est谩ndares de Dise帽o
- **Framework**: Tailwind CSS (obligatorio para el estilado).
- **Iconos**: Heroicons v2 (nombres como `HomeIcon`, `ChartBarIcon`, `UsersIcon`).
- **Colores**: Soporta `primary`, `success`, `error`, `warning`, `blue`, `indigo`, etc.
## Listado de Componentes (52 Disponibles)
### 1. Elementos At贸micos (Bloques base)
| Tag | Propiedades Principales | Descripci贸n |
|-----|-------------------------|-------------|
| `{% comp_button %}` | `text`, `appearance` (contained/outlined), `color`, `icon`, `size` | Bot贸n premium con hover y estados. |
| `{% comp_icon %}` | `name` (Heroicon), `size`, `color`, `solid` (bool) | Renderizado de SVG optimizado. |
| `{% comp_badge %}` | `text`, `color`, `type` (solid/outlined/light) | Etiquetas de estado. |
| `{% comp_input_text %}` | `name`, `label`, `placeholder`, `icon`, `required` | Campo de texto con icono integrado. |
| `{% comp_toggle %}` | `name`, `label`, `checked` | Switch tipo iOS/Material. |
| `{% comp_card %}` | `title`, `subtitle`, `value`, `classes` | Contenedor con sombra y bordes suaves. |
| `{% comp_title %}` | `text`, `level` (1-6), `hr` (bool) | Encabezados consistentes. |
### 2. Componentes Complejos (Layout y Datos)
| Tag | Propiedades Principales | Estructura de Datos |
|-----|-------------------------|----------------------|
| `{% comp_agenda %}` | `data_url`, `view_mode` | Visualizaci贸n de calendario (v铆a JS o Mock). |
| `{% comp_tabla %}` | `columns`, `data_url`, `page_size`, `group_by`, `searchable`, `filterable`, `height` | Tabla interactiva basada en **Tabulator** con soporte para agrupaciones, filtros por columna y b煤squeda global. |
| `{% comp_tabla_mantenimiento %}` | `data_url`, `columns`, `create_url`, `group_by`, `searchable`, `filterable` | Versi贸n para gesti贸n (CRUD) con b煤squeda activada por defecto. |
| `{% comp_tabla_informes %}` | `data_url`, `columns`, `export_url`, `group_by`, `height`, `filterable` | Versi贸n para reportes con mayor volumen de datos y altura configurable. |
| `{% comp_tabs %}` | `tabs_data`, `active_tab` | `tabs_data=[{'title': '...', 'content': '...'}]` |
| `{% comp_acordeon %}` | `items`, `id` | `items=[{'title': '...', 'description': '...', 'icon': '...'}]` |
| `{% comp_carousel %}` | `items` | Carrusel visual con gradientes y navegaci贸n. |
| `{% comp_steps %}` | `steps`, `current_step` | `steps=[{'title': 'Paso 1'}, ...]` |
| `{% comp_breadcrumbs %}` | `items` | `items=[{'title': 'Home', 'url': '/'}, ...]` |
| `{% comp_navbar %}` | `title`, `links`, `show_user` | Barra de navegaci贸n superior. |
| `{% comp_sidebar_menu %}`| `menu_items` | Men煤 lateral colapsable con iconos. |
| `{% comp_map %}` | `center_lat`, `center_lng`, `zoom` | Mapa interactivo simulado o real. |
| `{% comp_chart %}` | `id`, `type` (bar/line), `data` | Integraci贸n con Chart.js. |
## Reglas para la IA
1. **Prioridad**: Siempre usa estos componentes en lugar de escribir HTML/Tailwind desde cero para elementos comunes.
2. **Datos Complejos**: Los componentes como `tabs`, `acordeon` y `steps` esperan listas de diccionarios. Si no tienes los datos reales, cr茅alos siguiendo la estructura `[{'title': '...', ...}]`.
3. **Iconos**: Usa siempre los nombres de Heroicons v2 terminados en `Icon` (ej. `Cog6ToothIcon`).
4. **Layout**: Usa `comp_card` para envolver secciones de contenido y `comp_title` para los nombres de las vistas.
## Ejemplo de P谩gina Completa
```django
{% extends "base.html" %}
{% load components_ui %}
{% block content %}
<div class="p-8 space-y-6">
{% comp_title text="Gesti贸n de Usuarios" level=1 hr=True %}
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
{% comp_card title="Total" value="1,240" color="primary" %}
{% comp_card title="Activos" value="1,100" color="success" %}
</div>
{% comp_tabs tabs_data=my_tabs %}
{% comp_tabla columns=cols data_url="/api/users/" selectable=True group_by="role" searchable=True %}
<div class="flex justify-end gap-3">
{% comp_button text="Cancelar" appearance="outlined" color="gray" %}
{% comp_button text="Guardar Cambios" icon="CheckIcon" %}
</div>
</div>
{% endblock %}
```