# Componentes

> Más de 90 componentes de UI de Pyzed para GUIs de escritorio en Python: botones, tablas, árboles, editores, gráficos y diálogos, con ejemplos y API.

Source: https://albakore.github.io/pyzed/es/library/

Todos los componentes de `pyzed.ui`, más los widgets de disposición y contenido de `pyzed`, con
una vista previa, el código que la dibuja, ejemplos y su API. Los componentes son **funciones que
devuelven widgets**, así que se combinan libremente entre sí y con los
[widgets base](https://albakore.github.io/pyzed/es/reference/widgets/).

```python
import pyzed as pz
from pyzed import ui

ui.button("Guardar", self.guardar, icon="save", variant="solid", keys="ctrl-s")
```

- **Colores del tema.** Todos los componentes leen el tema actual (`App.theme`, o el de la
  ventana en apps [multiventana](https://albakore.github.io/pyzed/es/guides/windows/)) y aceptan `theme=` para usar otro.
- **Tokens o hex.** Los parámetros de color (`color`, `icon_color`, `tint`…) aceptan un token del
  tema como `"accent"`, `"text_muted"` o `"error"`, o un color `"#rrggbb"`.
- **Mensajes o funciones.** `on_press`, `on_select`, `on_toggle`… aceptan un mensaje para
  `update` o una función; los que producen un valor (texto, `bool`, id) la llaman con ese valor.
- **Iconos.** `icon=` acepta cualquier nombre de [Lucide](https://lucide.dev) (`pyzed icons` los lista).

Para verlos todos funcionando, abre la galería: `python examples/gallery.py`.
¿Buscas pantallas completas hechas con ellos (login, dashboard, ajustes, chat, kanban...)? Mira los
[Bloques](https://albakore.github.io/pyzed/es/blocks/).

:::note[Qué hay en cada página]
Una explicación en pocas palabras, una vista previa con su código, cada variante, tamaño y estado
capturados en claro y oscuro con el fragmento que los dibuja, ejemplos, consejos y la tabla de la API.
Las páginas de componentes interactivos, como [Botón](https://albakore.github.io/pyzed/es/library/button/) y
[Campo de texto](https://albakore.github.io/pyzed/es/library/input/), también muestran una grabación corta de su uso.
:::

:::tip[Inspiración]
El aspecto de estos componentes se inspira en la interfaz del editor [Zed](https://zed.dev); la
idea de construir herramientas de escritorio con piezas listas para usar viene de Godot, Unreal
Engine, Visual Basic y Qt Designer. pyzed es un proyecto independiente.
:::

## Acciones

Botones y controles pequeños que ejecutan algo.

## Visualización

Texto, insignias, teclas, avatares y superficies.

## Formularios

Controles controlados: muestran tu estado y te avisan de cada cambio.

## Fechas y horas

Calendarios y campos para fechas, rangos y horas, en el formato que elijas.

## Estado y avisos

Progreso, carga, avisos y estados vacíos.

## Datos

Tablas, cifras y gráficos pequeños con los colores del tema.

## Listas y menús

Filas, árboles de archivos, menús contextuales y secciones plegables.

## Navegación

Pestañas, migas de pan y barras de herramientas.

## Capas flotantes

Lo que se dibuja encima de la interfaz: capas, modales, paletas y notificaciones.

## Diálogos

Diálogos listos para usar con los botones traducidos.

## Sistema

Piezas que hablan con el sistema operativo: sus diálogos de archivos y los archivos soltados desde el escritorio.

## Espacio de trabajo

El marco de una ventana estilo editor: docks, barra de título, barra de estado y paneles.

## Código y herramientas

El editor de código, una vista de terminal, una consola de registro y cajas de ayuda.

## Agentes de IA

Las piezas del chat y los ajustes de un agente de IA: llamadas a herramientas, diferencias, planes, historial e inicio de sesión.

## Disposición

Los widgets de disposición de `pyzed` (`pz.*`) con los que se construye todo.

## Contenido

Widgets base para texto, iconos, imágenes, Markdown, códigos QR y dibujo.
