✅Cómo Crear un Timeline Animado en Gutenberg solo con HTML y CSS

Hoy te traigo otro snippet útil para Gutenberg: un timeline horizontal animado totalmente personalizado, que puedes insertar directamente desde un bloque de HTML sin depender de constructores visuales o plugins adicionales.

timeline gutenberg wordpress

¿Qué vamos a crear?

Un timeline o línea de tiempo con 8 pasos, perfecto para mostrar procesos, roadmaps o fases de un proyecto, con las siguientes características:

  • Diseño horizontal responsive (que se adapta a móvil/tablet).
  • Animación «en cadena» al cargar.
  • Efecto hover con escala de grises + tooltip.
  • Hecho solo con HTML y CSS.
timeline gutenberg sin plugins wordpress

Código completo del timeline

Simplemente copia y pega este código dentro de un bloque de HTML de Gutenberg:

<style>
  .timeline-container {
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
    padding: 50px 0;
    overflow: hidden;
  }
  .timeline-track {
    display: flex;
    justify-content: space-between;
    position: relative;
    flex-wrap: nowrap;
  }
  .timeline-track:before {
    content: "";
    position: absolute;
    top: 36px;
    left: 0;
    width: 100%;
    height: 2px;
    background: #ccc;
    z-index: 1;
    transition: background 0.3s ease;
  }
  .timeline-step {
    position: relative;
    width: 12.5%;
    text-align: center;
    opacity: 0;
    transform: translateY(20px);
    animation: fadeInUp 0.6s forwards;
  }
  .timeline-step:nth-child(1) { animation-delay: 0.2s; }
  .timeline-step:nth-child(2) { animation-delay: 0.4s; }
  .timeline-step:nth-child(3) { animation-delay: 0.6s; }
  .timeline-step:nth-child(4) { animation-delay: 0.8s; }
  .timeline-step:nth-child(5) { animation-delay: 1s; }
  .timeline-step:nth-child(6) { animation-delay: 1.2s; }
  .timeline-step:nth-child(7) { animation-delay: 1.4s; }
  .timeline-step:nth-child(8) { animation-delay: 1.6s; }

  @keyframes fadeInUp {
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .timeline-step:before {
    content: "";
    position: absolute;
    top: 30px;
    left: 50%;
    transform: translateX(-50%);
    width: 14px;
    height: 14px;
    background: #13b0a0;
    border-radius: 50%;
    z-index: 2;
    transition: background 0.3s ease, transform 0.3s ease;
  }
  .timeline-step:hover:before {
    background: #111;
    transform: translateX(-50%) scale(1.2);
  }
  .timeline-content {
    margin-top: 60px;
  }
  .timeline-content img {
    width: 60px;
    height: 60px;
    object-fit: cover;
    border-radius: 50%;
    margin-bottom: 10px;
    transition: filter 0.3s ease;
  }
  .timeline-step:hover img {
    filter: grayscale(100%);
  }
  .timeline-content h4 {
    font-size: 1rem;
    margin-bottom: 5px;
  }
  .timeline-content p {
    font-size: 0.85rem;
    color: #555;
  }
  /* Tooltip */
  .timeline-step:hover .tooltip {
    opacity: 1;
    transform: translateY(-10px);
  }
  .tooltip {
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(0);
    background: rgba(0,0,0,0.7);
    color: #fff;
    padding: 5px 10px;
    border-radius: 4px;
    font-size: 0.75rem;
    opacity: 0;
    transition: all 0.3s ease;
    white-space: nowrap;
    pointer-events: none;
  }
  /* Responsive */
  @media (max-width: 768px) {
    .timeline-track {
      flex-wrap: wrap;
    }
    .timeline-step {
      width: 50%;
      margin-bottom: 40px;
    }
    .timeline-track:before {
      height: 100%;
      width: 2px;
      left: 50%;
      top: 0;
    }
    .timeline-step:before {
      top: auto;
      left: 50%;
      transform: translateX(-50%);
      margin-top: 0;
    }
  }
</style>

<div class="timeline-container">
  <div class="timeline-track">
    <div class="timeline-step">
      <div class="tooltip">Inicio</div>
      <div class="timeline-content">
        <img src="https://codigos.fransalas-proyectos.com/wp-content/uploads/2022/04/article-image-1.webp" alt="Paso 1">
        <h4>Paso 1</h4>
        <p>Idea inicial y análisis de objetivos.</p>
      </div>
    </div>
    <div class="timeline-step">
      <div class="tooltip">Roadmap</div>
      <div class="timeline-content">
        <img src="https://codigos.fransalas-proyectos.com/wp-content/uploads/2022/05/article-image-2.webp" alt="Paso 2">
        <h4>Paso 2</h4>
        <p>Planificación detallada y cronograma.</p>
      </div>
    </div>
    <div class="timeline-step">
      <div class="tooltip">Diseño UI</div>
      <div class="timeline-content">
        <img src="https://codigos.fransalas-proyectos.com/wp-content/uploads/2022/05/article-image-3.webp" alt="Paso 3">
        <h4>Paso 3</h4>
        <p>Diseño de la interfaz y experiencia.</p>
      </div>
    </div>
    <div class="timeline-step">
      <div class="tooltip">Desarrollo</div>
      <div class="timeline-content">
        <img src="https://codigos.fransalas-proyectos.com/wp-content/uploads/2022/04/article-image-1.webp" alt="Paso 4">
        <h4>Paso 4</h4>
        <p>Programación y desarrollo del proyecto.</p>
      </div>
    </div>
    <div class="timeline-step">
      <div class="tooltip">Testing</div>
      <div class="timeline-content">
        <img src="https://codigos.fransalas-proyectos.com/wp-content/uploads/2022/05/article-image-2.webp" alt="Paso 5">
        <h4>Paso 5</h4>
        <p>Pruebas internas y control de calidad.</p>
      </div>
    </div>
    <div class="timeline-step">
      <div class="tooltip">Feedback</div>
      <div class="timeline-content">
        <img src="https://codigos.fransalas-proyectos.com/wp-content/uploads/2022/05/article-image-3.webp" alt="Paso 6">
        <h4>Paso 6</h4>
        <p>Feedback del cliente y ajustes finales.</p>
      </div>
    </div>
    <div class="timeline-step">
      <div class="tooltip">Entrega</div>
      <div class="timeline-content">
        <img src="https://codigos.fransalas-proyectos.com/wp-content/uploads/2022/04/article-image-1.webp" alt="Paso 7">
        <h4>Paso 7</h4>
        <p>Entrega y formación del cliente.</p>
      </div>
    </div>
    <div class="timeline-step">
      <div class="tooltip">Soporte</div>
      <div class="timeline-content">
        <img src="https://codigos.fransalas-proyectos.com/wp-content/uploads/2022/05/article-image-2.webp" alt="Paso 8">
        <h4>Paso 8</h4>
        <p>Soporte post-lanzamiento y seguimiento.</p>
      </div>
    </div>
  </div>
</div>
Lenguaje del código: HTML, XML (xml)
Inicio
Paso 1

Paso 1

Idea inicial y análisis de objetivos.

Roadmap
Paso 2

Paso 2

Planificación detallada y cronograma.

Diseño UI
Paso 3

Paso 3

Diseño de la interfaz y experiencia.

Desarrollo
Paso 4

Paso 4

Programación y desarrollo del proyecto.

Testing
Paso 5

Paso 5

Pruebas internas y control de calidad.

Feedback
Paso 6

Paso 6

Feedback del cliente y ajustes finales.

Entrega
Paso 7

Paso 7

Entrega y formación del cliente.

Soporte
Paso 8

Paso 8

Soporte post-lanzamiento y seguimiento.

¿Cómo personalizarlo?

Vamos a ver punto por punto cómo modificar este timeline a tu gusto.

html css timeline gutenberg sin plugins wordpress

1. Cambiar las imágenes

Busca esta línea dentro de cada paso:

<img src="URL-DE-LA-IMAGEN" alt="Paso X">

Sustituye URL-DE-LA-IMAGEN por la URL de la imagen que tengas subida en tu biblioteca de WordPress.

2. Editar los textos de cada paso

Modifica directamente el título y la descripción dentro de cada paso:

<h4>Paso X</h4>
<p>Texto descriptivo aquí.</p>

Además, puedes cambiar el texto del tooltip en esta línea:

<div class="tooltip">Texto del tooltip</div>

3. Agregar o eliminar pasos

Si necesitas más de 8 pasos, solo debes duplicar este bloque:

<div class="timeline-step"> ... </div>

Y ajustar esta parte del CSS para recalcular el ancho:

.timeline-step {
  width: calc(100% / N);
}

Por ejemplo, si quieres 10 pasos:

width: 10%; /* 100% / 10 = 10% */

4. Cambiar la animación y la velocidad

La animación está controlada por la propiedad animation-delay de cada paso:

.timeline-step:nth-child(1) { animation-delay: 0.2s; }

Puedes ajustar la velocidad global de todos los pasos aquí:

animation: fadeInUp 0.6s forwards;

Cámbialo por 0.4s o 1s según lo rápido o lento que quieras que aparezcan.

5. Tooltip y efectos hover

El tooltip se muestra al pasar el ratón, pero también puedes personalizar su color, tamaño o posición en esta clase:

.tooltip {
  background: rgba(0,0,0,0.7);
  color: #fff;
  padding: 5px 10px;
}

Además, puedes modificar el punto de la línea y la imagen con este efecto hover:

.timeline-step:hover img {
  filter: grayscale(100%);
}

.timeline-step:hover:before {
  background: #111;
}

6. Estilos generales y colores

Todo el color base del timeline lo controla esta variable:

background: #13b0a0; /* Color del punto y línea */

Puedes cambiarlo por tu color corporativo. También puedes modificar la línea base:

.timeline-track:before {
  background: #ccc;
}

Resultado final

Con este snippet tendrás una línea de tiempo horizontal elegante, animada y responsive, lista para usar directamente en cualquier página creada con Gutenberg.

Nos vemos en el siguiente tutorial. Un saludo.

Compartir Artículo