Slides
Motor de presentaciones HTML interactivas. Crea slides programaticamente con Python, incluyendo graficos Plotly, animaciones CSS, temas profesionales y controles de navegacion.
Descripcion general
ViewX Slides permite crear presentaciones HTML completas desde Python:
- 6 temas profesionales (dark, light, neon, ocean, sunset, corporate)
- 20+ animaciones de entrada y loop
- Graficos Plotly integrados
- Grid CSS para layouts complejos
- Controles de navegacion, barra de progreso, dots
- Soporte para notas del presentador
- Modo kiosko y auto-avance
Temas disponibles
dark
light
neon
ocean
sunset
corporate
Animaciones disponibles
Animaciones de entrada (aplicar una vez):
fadeIn
slideInLeft
slideInRight
slideInUp
slideInDown
zoomIn
zoomOut
bounce
flip
spin
Animaciones loop (repetir infinitamente):
shake
pulse
glow
float
floatX
rotate
orbit
drift
wave
heartbeat
shimmer
Inicio rapido
Python
from viewx.Slides import Presentation, Slide, Grid, Title, Text, BulletList, BarPlot
from viewx.datasets import load_iris
# Manual deck
pres = Presentation("Mi presentacion", theme="dark")
with Slide(title="Portada") as s:
s.add(Title("Hello ViewX").center("x").pos(top=20).zoom_in())
pres.export("slides.html")
# Auto deck from DataFrame
df = load_iris()
Presentation.auto_generate(df, title="Iris Overview", theme="ocean")
Clase Presentation
Presentation(title, theme, width, height, transition, show_numbers)
Clase principal que contiene todas las slides y configuracion global de la presentacion.
title str - Titulo de la presentacion
theme str, default="dark" - Tema a usar
width int, default=1280 - Ancho en pixels
height int, default=720 - Alto en pixels
transition str, default="slide" - Transicion entre slides
show_numbers bool, default=True - Mostrar numeracion
Metodos de configuracion
set_theme(name) → Presentation
Cambia el tema de la presentacion.
custom_theme(name, **colors) → Presentation
Define un tema personalizado con colores custom (bg, surface, primary, accent, text, muted, border, shadow).
font(name, weights) → Presentation
Carga una fuente de Google Fonts.
logo(url) → Presentation
Agrega un logo fijo en la esquina superior izquierda.
music(url) → Presentation
Agrega musica de fondo (autoplay, loop).
auto_advance(seconds) → Presentation
Avanza automaticamente cada N segundos.
kiosk(value=True) → Presentation
Modo kiosko: oculta controles de navegacion.
export()
export(filename, open_browser=False) → str
Genera el archivo HTML de la presentacion. Opcionalmente abre en el navegador.
filename str - Ruta del archivo de salida
open_browser bool - Abrir automaticamente en navegador
Clase Slide
Slide(title, bg, overlay_opacity, notes, transition)
Representa una diapositiva. Usar con context manager (with) para agregar contenido.
title str - Titulo de la slide (metadata)
bg str - Color o URL de imagen de fondo
overlay_opacity float - Opacidad del overlay oscuro (0-1)
notes str - Notas del presentador
Clase Grid
Grid(columns, rows, gap, **styles)
Contenedor CSS Grid para layouts complejos. Usar con context manager para agregar hijos.
columns int | str - Numero de columnas o template CSS
rows int | str - Numero de filas o template CSS
gap int | str - Espacio entre celdas
Python
with Slide(title="Layout Grid"):
with Grid(columns=3, gap=24).pos(left=5, top=20).size(width="90%"):
Card(title="Item 1", content="Descripcion")
Card(title="Item 2", content="Descripcion")
Card(title="Item 3", content="Descripcion")
Componentes disponibles
Importar desde viewx.components:
Title(text)
Titulo grande con estilos de presentacion.
Subtitle(text)
Subtitulo con color muted.
Text(content)
Parrafo de texto normal.
Bullets(items)
Lista con vinetas.
Image(src, width, height)
Imagen con estilos de media.
Card(title, content)
Tarjeta con fondo surface y sombra.
IconStat(icon, value, label)
Estadistica con icono, valor grande y etiqueta.
Plot(fig)
Grafico Plotly interactivo.
Button(text, href)
Boton con gradiente y link.
Todos los componentes soportan los metodos .pos(), .size(), .anim(), .center() para posicionamiento y animacion.
auto_generate()
Presentation.auto_generate(df, title, theme, filename, show=True) → str
Genera automaticamente una presentacion HTML con portada, KPIs, calidad, graficos y muestra de datos.
Python
from viewx.Slides import Slides
from viewx.datasets import load_iris
Slides(load_iris(), auto=True, title="Dataset Deck", theme="dark")