Storybook para documentar componentes

Cómo usar Storybook para desarrollar, documentar y testear componentes de interfaz de forma aislada

9 min

Storybook se ha consolidado como la herramienta estándar para desarrollar y documentar componentes de interfaz en aislamiento. Con más de 80.000 estrellas en GitHub y adopción por parte de equipos como Airbnb, BBC, Shopify y GitLab, ofrece un entorno donde cada componente se visualiza fuera del contexto de la aplicación, con todos sus estados y variantes.

Más allá de ser una galería visual, Storybook funciona como documentación viva, sandbox de desarrollo y plataforma de testing. Esta guía cubre desde la configuración inicial hasta la integración con CI y testing visual automatizado.

¿Qué es Storybook y por qué usarlo?

Storybook es una herramienta open source que permite construir componentes de UI de forma aislada, sin necesidad de levantar la aplicación completa. Cada componente se documenta mediante "stories": representaciones de un componente en un estado o variante específica.

Su valor principal es doble. Para desarrolladores, proporciona un entorno de desarrollo rápido donde iterar sobre un componente sin depender del resto de la aplicación. Para equipos de producto y diseño, ofrece un catálogo navegable de todos los componentes disponibles con sus variantes y reglas de uso.

Configuración inicial

Storybook soporta React, Vue, Angular, Svelte, Web Components y más. La instalación se realiza con un solo comando (npx storybook@latest init) que detecta tu framework y configura todo automáticamente. El resultado es una carpeta .storybook con la configuración y un servidor de desarrollo independiente.

La configuración principal se gestiona en .storybook/main.ts, donde defines qué archivos contienen stories (normalmente *.stories.tsx), qué addons cargar y qué opciones del framework usar. El archivo preview.ts controla los decoradores globales, parámetros por defecto y el tema visual de Storybook.

  • npx storybook@latest init para instalación automática
  • main.ts: globs de stories, addons, configuración de framework
  • preview.ts: decoradores globales, parámetros por defecto, tema
  • Storybook levanta un servidor de desarrollo independiente (por defecto en puerto 6006)

Escribir stories efectivas

Una story es una función que devuelve un componente renderizado con un conjunto específico de props. El formato Component Story Format (CSF) es el estándar actual: cada archivo exporta un default meta con la configuración del componente y exports con nombre para cada variante.

Las mejores stories cubren los casos de uso reales del componente, no solo las variantes de props. Incluye stories para estados (loading, error, empty, success), tamaños de viewport, temas (light/dark) y combinaciones con otros componentes. Cada story debería poder entenderse sin leer el código fuente.

  • Usa CSF 3 (Component Story Format): exporta objetos en lugar de funciones para mayor claridad
  • Crea una story por cada variante y estado relevante del componente
  • Nombra las stories de forma descriptiva: Primary, WithIcon, Loading, ErrorState
  • Incluye args por defecto y usa argTypes para documentar los tipos de cada prop

Addons esenciales

Los addons amplían Storybook con funcionalidad que no viene de serie. Los essentials (incluidos por defecto) cubren controles interactivos, documentación automática, viewports, backgrounds y acciones. Más allá de estos, hay addons para accesibilidad, internacionalización, testing y diseño.

  • Controls: panel interactivo para modificar las props del componente en tiempo real
  • Docs: genera documentación automática con tabla de props, código fuente y descripción
  • a11y: ejecuta auditorías de accesibilidad (axe-core) en cada story y muestra violaciones
  • Interactions: permite escribir y ejecutar tests de interacción directamente en Storybook
  • Design: integra diseños de Figma junto a cada story para comparar implementación vs diseño

Testing visual con Chromatic

Chromatic es la plataforma de testing visual creada por los mantenedores de Storybook. Captura una imagen de cada story en cada build y las compara pixel a pixel con la versión anterior. Cuando detecta un cambio visual, lo marca para revisión humana antes de aprobar o rechazar.

Este flujo es especialmente potente en pull requests: Chromatic comenta en el PR mostrando qué componentes han cambiado visualmente, permitiendo a diseñadores y desarrolladores revisar los cambios antes de hacer merge. Esto elimina las regresiones visuales que pasan desapercibidas en revisiones de código tradicionales.

  • Captura automática de cada story en cada build de CI
  • Comparación pixel-a-pixel entre versiones con diff visual claro
  • Revisión integrada en pull requests de GitHub/GitLab
  • Soporte para múltiples viewports y temas en una sola ejecución

Integración con CI/CD

Storybook se integra en tu pipeline de CI de varias formas. La más básica es ejecutar npx storybook build para generar un sitio estático que puedes desplegar en cualquier hosting. La más avanzada incluye testing visual con Chromatic, tests de interacción con el test-runner de Storybook y checks de accesibilidad automatizados.

Una buena práctica es publicar el Storybook de cada branch como un preview deployment (en Vercel, Netlify o Chromatic) para que diseñadores y product managers puedan revisar los cambios sin levantar nada en local.

  • Build estático: npx storybook build genera un site desplegable a cualquier hosting
  • Storybook test-runner: ejecuta los interaction tests de todas las stories en CI
  • Preview deployments: publica cada branch para revisión por parte del equipo
  • Smoke test: verifica que Storybook compila sin errores como check mínimo en cada PR

Buenas prácticas y errores a evitar

Storybook es tan útil como el esfuerzo que inviertas en mantenerlo. Las stories desactualizadas o incompletas generan desconfianza y hacen que los equipos dejen de consultarlo. Trata las stories como parte del definition of done de cada componente: no se considera terminado hasta que sus stories están actualizadas.

Evita crear stories que dependan de datos externos o APIs. Las stories deben ser deterministas y reproducibles. Usa mock data y decoradores para simular contextos (providers, temas, estados de autenticación) sin depender de servicios externos.

Puntos clave

  • Storybook permite desarrollar y documentar componentes de forma aislada, acelerando el ciclo de desarrollo
  • Escribe stories que cubran estados reales, no solo variantes de props
  • Los addons de accesibilidad e interacción convierten Storybook en una plataforma de testing
  • Chromatic automatiza el testing visual y previene regresiones en pull requests
  • Integra Storybook en CI/CD y trata las stories como parte del definition of done

¿Quieres documentar tu librería de componentes con Storybook?

Configuramos Storybook, definimos las convenciones de stories y lo integramos en tu pipeline de CI para que cada componente esté siempre documentado y testeado.