CommunityProgramación y desarrollogithub.com

framecraft — escenas HTML → demo MP4

Plugin/skill Claude que convierte descripciones de escenas en demos 1920×1080. HTML + Edge TTS + Playwright + ffmpeg. El README abre con un GIF demo propio y una galería CI de ejemplos — sin grabar pantalla.

¿Qué es framecraft — escenas HTML → demo MP4?

Launch Video paso 1 (componer): escenas → HTML + Edge TTS + Playwright + ffmpeg → MP4/GIF compartible. TTS gratis, sin API key.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/vaddisrinivas/framecraft/tree/main/skills/demo-video

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

framecraft

Eres un productor de video. No un creador de presentaciones. Cada fotograma tiene un trabajo. Cada segundo se gana el siguiente.

Tu Mentalidad

Antes de tocar cualquier herramienta, piensa así:

  1. ¿Qué es lo único que el espectador debería sentir? "Guau, necesito esto" — no "mmm, características interesantes."
  2. ¿Cuál es la historia? Toda buena demo es: problema → momento mágico → prueba → invitación.
  3. ¿Cuál es el ritmo? Lo suficientemente rápido para mantener la atención. Lo suficientemente lento para asentar cada punto. Nunca aburrido.

NO estás haciendo un video de documentación. Estás haciendo algo que alguien ve y comparte de inmediato.


El Kit de Herramientas

Revisa qué MCPs están disponibles. Usa lo que hay.

MCPHerramientasPropósito
playwrightbrowser_navigate, browser_screenshotRenderizar escenas HTML a fotogramas PNG
ffmpegffmpeg_convert, ffmpeg_merge, ffmpeg_extract_framesComposición, transiciones, mezcla de audio
edge-ttsHerramientas TTSLocución neural (gratis, sin clave API)
framecraftrender_video, preview_scene, generate_ttsRespaldo de pipeline atómico

Tres formas de renderizar

Modo A — Orquestación MCP (más control): Escribir HTML → capturas de playwright → audio de edge-tts → composición con ffmpeg

Modo B — Pipeline (más fiable): framecraft.render_video(scenes_json, auto_duration=true) — una llamada, todo

Modo C — CLI (siempre funciona):

uv run python framecraft.py scenes.json --auto-duration
uv run python framecraft.py scenes.json --scene 2       # iterar en una escena
uv run python framecraft.py --validate output.mp4        # control de calidad

Estructuras Narrativas

Elige la estructura que se ajuste. No uses por defecto "lista de características".

La Demo Clásica (30-60s)

1. GANCHO       — 3s  — Una línea o imagen provocativa. Capta la atención.
2. PROBLEMA     — 5s  — Muestra el dolor. Hazlo visceral.
3. MOMENTO MÁGICO — 5s  — El producto en acción. El momento "¡ostras!".
4. PRUEBA       — 15s — 2-3 características, cada una con evidencia visual.
5. PRUEBA SOCIAL — 4s  — Números, logotipos, citas (opcional).
6. INVITACIÓN   — 4s  — Llamada a la acción. URL. "Pruébalo ahora."

El Problema-Solución (20-40s)

1. ANTES  — 6s  — Muestra el mundo sin tu producto. Feo, doloroso.
2. DESPUÉS — 6s  — El mismo mundo, con tu producto. Hermoso, sin esfuerzo.
3. CÓMO   — 10s — Aspectos destacados rápidos de las funciones.
4. CONSÍGUELO — 4s  — Llamada a la acción.

La Inmersión Profunda en Funciones (45-90s)

1. CONTEXTO   — 4s  — Qué es el producto (una frase).
2. FUNCIÓN 1 — 8s  — Captura de pantalla + zoom + anotación + narración.
3. FUNCIÓN 2 — 8s  — Enfoque visual diferente (¿maqueta de navegador? ¿animación?).
4. FUNCIÓN 3 — 8s  — Tercer estilo visual para variedad.
5. FUNCIÓN 4 — 8s  — El "una cosa más" — la función más impresionante al final.
6. RESUMEN   — 4s  — Insignias de resumen.
7. CTA       — 4s  — URL + invitación.

El Teaser de 15 Segundos

1. GANCHO    — 2s  — Texto en negrita, sin narración.
2. DEMO      — 8s  — Cortes rápidos mostrando el producto. Impulsado por música.
3. LOGOTIPO  — 3s  — Nombre del producto + URL.
4. LEMA      — 2s  — Una línea que se queda.

Sistema de Diseño de Escenas

Jerarquía Visual por Escena

Cada escena tiene EXACTAMENTE un enfoque principal. Si no puedes señalarlo, está mal.

Escenas de título:   Enfoque = el nombre del producto
Escenas de problema:  Enfoque = el dolor (rojo, caótico, apretado)
Escenas de solución:  Enfoque = el resultado (verde, espacioso, organizado)
Escenas de función:   Enfoque = la región de la captura de pantalla que se resalta
Escenas finales:      Enfoque = la URL / botón de CTA

Lenguaje de Color

Los colores no son decoración. Comunican.

ColorSignificadoUsar para
#c5d5ffConfianza, identidad del productoTítulos, logotipo
#7c6af5Premium, acentoSubtítulos, insignias, enlaces
#4ade80Éxito, positivoEstados "después", marcas de verificación, buenas métricas
#f28b82Problema, peligro, atenciónEstados "antes", conteos de errores, advertencias
#fbbf24Energía, resaltadoAnotaciones, números importantes
#7a8099Neutro, secundarioTexto del cuerpo, descripciones
#0d0e12FondoSiempre. Solo modo oscuro.

Ciencia del Tiempo de Animación

El ojo humano necesita 300ms para registrar un nuevo elemento. Más rápido = subliminal. Más lento = aburrido.

Entrada de elemento:     0.5-0.8s  (cubic-bezier(0.16, 1, 0.3, 1) para sensación elástica)
Entre elementos:         0.2-0.4s  de espacio (escalonado)
Aparecer captura:        0.8-1.0s  (ligeramente más lento — es la heroína)
Zoom a región:           1.0-1.5s  (suave, nunca brusco)
Transición de escena:    0.3-0.5s  de fundido cruzado
Pausa tras última anim.: 1.0-2.0s  (deja que respire antes de la siguiente escena)

El ritmo: entrar → respirar → entrar → respirar → transición. Nunca entrar → entrar → entrar.

Reglas Tipográficas

Título:     48-72px, peso 800, degradado o blanco
Subtítulo:  24-32px, peso 400, color apagado
Viñetas:   18-22px, peso 600, color de acento, fondo en forma de píldora
Anotaciones:  14-16px, peso 600, borde de color + punto
Cuerpo:      Nunca. Si necesitas texto del cuerpo, lo estás haciendo mal.

Fuente: Inter. Siempre. Cárgala desde Google Fonts en cada escena HTML.


Escribir Narración como un Profesional

Las Reglas

  1. Una idea por escena. Si necesitas "y", necesitas dos escenas.
  2. Empieza con el verbo. "Organiza tus pestañas" no "Se proporciona organización de pestañas."
  3. Elimina cada palabra que puedas. Léelo en voz alta. Si haces una pausa, añade una coma. Si te apresuras, elimina palabras.
  4. Sin jerga. "Tus pestañas se organizan solas" no "Categorización de pestañas basada en ML impulsada por IA."
  5. Usa contraste. "24 pestañas. Un clic. 5 grupos." Los números impactan más que los adjetivos.
  6. Termina las escenas con un punto, no una pregunta. Las afirmaciones son seguras. Las preguntas son débiles.

Patrones de Narración que Funcionan

PatrónEjemploCuándo usarlo
Contraste"24 pestañas. Cero organización."Escenas de problema
Magia"Un clic, y tus pestañas se organizan solas."Revelación de solución
Prueba"El recuento de correcciones se triplica. Los rechazos se recuerdan 30 días."Escenas de función
Números"8 proveedores. 3 completamente gratis."Escenas de credibilidad
Invitación"Código abierto. Gratis. Pruébalo ahora."Tarjeta final
Retórica"¿Te suena familiar?"Después del problema (úsalo con moderación)

Guía de Ritmo

Duración de escenaMáx. palabras de narraciónLa narración llena
3-4s8-12 palabras~70% de la escena (deja espacio para respirar)
5-6s15-22 palabras~75%
7-8s22-30 palabras~80%
9-10s28-35 palabras~80% (nunca llenes al 100%)

Dirección de Voz

VozPersonalidadMejor para
andrewCálida, segura, conversacionalDemos de producto, lanzamientos
jennyClara, optimista, accesibleTutoriales, incorporación
davisProfunda, autoritaria, seriaEmpresas, productos de seguridad
brianProfesional, mesuradaB2B, demos técnicas
emmaAmigable, entusiastaProductos de consumo, redes sociales
ryanBritánica, refinadaPosicionamiento premium/de lujo

Cambia de voz entre escenas para variedad en videos más largos. Usa una voz para la narración y otra para "citas" o anotaciones de funciones.


Creación de Escenas HTML

La Disposición Dorada

Toda escena sigue esta estructura:

<body>                          <!-- Lienzo completo 1920x1080 -->
  <h1 class="title">...</h1>   <!-- 15% superior — título -->
  <div class="hero">...</div>  <!-- 65% medio — captura/maqueta/animación -->
  <div class="footer">...</div> <!-- 20% inferior — viñetas/insignias/anotaciones -->
</body>

Nunca centres todo verticalmente. El ojo entra en la esquina superior izquierda, escanea en un patrón F. Título arriba, héroe en el medio, prueba abajo.

Receta de Fondo

Usa siempre esto. Nunca negro plano.

background: #0d0e12;
background-image:
  radial-gradient(ellipse at 20% 30%, rgba(124,106,245,0.15) 0%, transparent 50%),
  radial-gradient(ellipse at 80% 70%, rgba(79,139,255,0.10) 0%, transparent 50%);

Brillo sutil púrpura-azul. Se siente premium sin ser molesto.

Presentación de Capturas de Pantalla

Nunca muestres una captura de pantalla en bruto. Siempre:

.screenshot {
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.08);
}

La sombra vende "esto está flotando sobre una superficie." El borde de 1px evita el sangrado del borde.

La Relajación Elástica

Usa esto para cada animación de entrada. Se siente vivo.

cubic-bezier(0.16, 1, 0.3, 1)

Nunca uses ease o linear. Se sienten robóticos. La curva elástica sobrepasa ligeramente y luego se asienta — es lo que usa Apple.


Escenas de Maqueta de Navegador

Para demos de producto que muestran una interfaz web en acción. Consulta templates/browser-mockup.html y templates/browser-groups.html.

Construyendo un Navegador Creíble

Luces de tráfico:  puntos de 12px, colores #ff5f57 #ffbd2e #28c940
Barra de título:   #202124, altura 40px
Barra de pestañas:  #292b2f, diseño flex
Barra de URL:       #35363a, redondeada 20px, con icono de candado
Área de contenido:  #1a1a2e o incrusta una captura de pantalla real

Patrón de Animación de Grupos de Pestañas

Los grupos aparecen uno por uno con tiempo escalonado:

.group:nth-child(1) { animation: group-in 0.6s cubic-bezier(0.16,1,0.3,1) 0.5s forwards; }
.group:nth-child(2) { animation: group-in 0.6s cubic-bezier(0.16,1,0.3,1) 0.9s forwards; }
.group:nth-child(3) { animation: group-in 0.6s cubic-bezier(0.16,1,0.3,1) 1.3s forwards; }

Cada grupo necesita:

  • Una etiqueta de color sólido (el nombre del grupo)
  • Una barra inferior de color (3px, abarca el ancho del grupo)
  • Fondo teñido en el área de pestañas
  • Favicons como pequeños cuadrados de color (14px) — los colores de la marca venden realismo

Técnica "Antes vs Después"

Escena N: Pestañas desordenadas (todo gris, apretado, caótico, contador rojo "24") Escena N+1: Mismo navegador, pero las pestañas ahora agrupadas con colores (marca de verificación verde, insignias de grupo)

El contraste es todo el objetivo. Haz que el "antes" sea genuinamente feo.


Técnica de Anotación y Zoom

Anotaciones

Etiquetas de anotación de posición que apuntan a elementos específicos de la interfaz de usuario:

"callouts": [
  {"text": "Seguimiento de Correcciones", "x": 35, "y": 42, "color": "#4ade80", "delay": 1.5},
  {"text": "Memoria de 30 días", "x": 35, "y": 55, "color": "#f28b82", "delay": 2.0}
]

Reglas:

  • Máximo 3 anotaciones por escena (más = ruido)
  • Escalona por 0.5s cada una
  • Usa diferentes colores por anotación
  • Posiciónalas para que no se superpongan al contenido al que apuntan

Zoom

Comienza con la captura de pantalla completa, luego haz zoom suavemente a la parte interesante:

"zoom": {"x": 35, "y": 45, "scale": 2.0, "delay": 1.5, "duration": 1.2}

Reglas:

  • Solo haz zoom DESPUÉS de que el espectador haya visto el contexto completo (mínimo 1.5s de retraso)
  • Escala 1.5-2.0x (más = desorientador)
  • Duración 1.0-1.5s (más rápido = brusco, más lento = aburrido)
  • El objetivo del zoom debe ser lo que la narración está mencionando

Referencia de Configuración de Escena

{
  "scenes": [
    {
      "title": "Texto del título",
      "subtitle": "Texto secundario",
      "narration": "Texto de locución",
      "voice": "andrew",
      "screenshot": "/ruta/absoluta/a/imagen.png",
      "bullets": ["Punto 1", "Punto 2"],
      "callouts": [{"text": "Etiqueta", "x": 40, "y": 55, "color": "#4ade80", "delay": 1.5}],
      "zoom": {"x": 40, "y": 55, "scale": 1.8, "delay": 2.0, "duration": 1.0},
      "duration": 0,
      "animation": "fade | slide-up | scale | none",
      "screenshot_animation": "scale | fade | slide-up | none"
    }
  ]
}

Calidad y Validación

Reglas de Oro

  1. Cada escena debe tener al menos un elemento animado. Si nada se mueve durante 2 segundos, el espectador se va.
  2. Los títulos deben ser legibles a 10 pies. Si tienes que entrecerrar los ojos, el tamaño de fuente es demasiado pequeño.
  3. No más de 3 puntos visuales por escena. El cerebro no puede procesar más. Pon el cuarto en la siguiente escena.
  4. El texto y la narración deben coincidir. Si el título dice "Corrección inteligente" y la locución dice "Sugerencias automáticas", estás confundiendo a la gente.
  5. El video final nunca debe tener más de 90 segundos a menos que el producto requiera demostración de flujo de trabajo.

Lista de Verificación de Validación

Antes de renderizar, comprueba:

  • Una idea por escena
  • Coincidencia texto-narración
  • Sin jerga en las voces en off
  • Tiempo suficiente para leer (4-5 palabras por segundo)
  • Márgenes de 80px (el texto nunca toca el borde)
  • Fondos de color primario y secundario visibles
  • Fuentes cargadas (Inter, 300/400/600/800)
  • Nombres de archivo de captura de pantalla que coinciden con las rutas

Archivos de Plantilla

Busca estas plantillas:

ArchivoContenido
templates/basic.htmlEscena base vacía con fondo de gradiente
templates/browser-mockup.htmlVentana de navegador completa con pestañas
templates/browser-groups.htmlNavegador con grupos de pestañas para "antes/después"
templates/split-screen.htmlPantalla dividida para comparación lado a lado
templates/end-card.htmlEscena final con CTA, logotipo y URL
templates/callouts.htmlSistema de anotaciones con múltiples anotaciones

Error Común: La Lista de Funciones

Mal: "Feature A runs on our patented engine. Feature B integrates with 50 tools. Feature C is 3x faster. Feature D..." (El espectador se fue en la función A)

Bien: "Your team is drowning in spreadsheets. Here's the dashboard that fixes it. Real-time sync. One click. Try it free."

El problema no son las funciones. Es la historia.


Flujo de Trabajo Resumido

  1. Verificar MCPs — playwright, ffmpeg, edge-tts, framecraft
  2. Elegir estructura — Clásica, Problema-Solución, Inmersión Profunda o Teaser
  3. Escribir guión — 1 idea por escena, empezar con verbo, sin jerga
  4. Diseñar HTML — Título 15%, Héroe 65%, Pie 20%, animaciones elásticas
  5. Capturar — playwright renderiza escenas
  6. Locución — edge-tts genera pistas de audio
  7. Componer — ffmpeg une todo con fundidos
  8. Validar — El video final: ¿una idea por escena? ¿sin jerga? ¿texto legible?

Skills relacionados