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")