Countdown
Widget que muestra un contador regresivo animado en tiempo real. Permite definir una ventana de tiempo activa (start → end) y personalizar el estilo visual (tipo de layout, negrita, centrado, colores y etiquetas). El contador se oculta automáticamente si la campaña aún no ha empezado o si ya ha expirado.
Vista previa
Sin imagen disponible aún. Añade una captura en
./img/countdown.jpgy descomenta la línea siguiente.
Comportamiento
- Ventana de tiempo activa: El contador solo se muestra si la fecha actual está entre
startyend. Si la campaña no ha comenzado todavía o ya ha terminado, el elemento se elimina del DOM automáticamente. - Oculto hasta inicializado: El contenedor arranca con
display: noney solo se hace visible una vez que el JS valida que el contador es activo, evitando flashes de contenido. - Actualización en tiempo real: El contador se recalcula cada segundo.
- Días opcionales: Si
show_days: false, los días no se muestran y las horas pueden superar 23 (ej."125:30:00"en lugar de"05d 01:30:00"). - Etiquetas personalizables: Si
show_labels: true, se muestran las abreviaturas definidas en el objetolabeldebajo de cada unidad de tiempo. - Colores vía CSS variables: Los colores de texto, fondo y opacidad se aplican mediante variables CSS (
--text-color,--bg-color,--bg-opacity).
Configuración
Content Asset
El widget se configura mediante un JSON en Business Manager → Content Assets y se incluye en cualquier página mediante <iscontentasset aid="ID_DEL_ASSET" />.
{
"start": "Jun 01, 2025 10:00:00",
"end": "Jun 30, 2025 23:59:59",
"option": {
"visible": true,
"type": "normal",
"show_days": true,
"show_labels": true,
"is_bold": true,
"is_centered": true
},
"label": {
"days": "d",
"hours": "h",
"minutes": "m",
"seconds": "s"
},
"color": {
"text": "#FFFFFF",
"background": "#000000",
"background_opacity": "0.8"
}
}
Propiedades
Raíz
| Propiedad | Tipo | Obligatorio | Descripción |
|---|---|---|---|
start | string | Sí | Fecha y hora de inicio de la campaña. Formato: Mmm DD, YYYY HH:MM:SS en inglés (ej. "Jun 01, 2025 10:00:00"). |
end | string | Sí | Fecha y hora de fin de la campaña. Mismo formato que start. El contador desaparece del DOM al alcanzar esta fecha. |
option | object | Sí | Opciones de visualización del contador. |
label | object | No | Etiquetas de texto para cada unidad de tiempo (solo visibles si option.show_labels: true). |
color | object | No | Colores del contador aplicados mediante CSS variables. |
option
| Propiedad | Tipo | Obligatorio | Descripción |
|---|---|---|---|
option.visible | boolean | Sí | Si false, el contador no se renderiza en ningún caso aunque las fechas sean válidas. |
option.type | string | No | Estilo de layout del contador. Valores: "normal" (bloques con separador :), "simple" (elementos inline sin separador). |
option.show_days | boolean | No | Si true, muestra los días como unidad separada. Si false, las horas pueden superar 23 sin mostrar días. |
option.show_labels | boolean | No | Si true, muestra las etiquetas de label debajo de cada unidad de tiempo. |
option.is_bold | boolean | No | Si true, aplica font-bold al texto del contador. |
option.is_centered | boolean | No | Si true, centra el contenido del contador horizontalmente. |
label
| Propiedad | Tipo | Obligatorio | Descripción |
|---|---|---|---|
label.days | string | No | Abreviatura de días (ej. "d", "días"). |
label.hours | string | No | Abreviatura de horas (ej. "h", "horas"). |
label.minutes | string | No | Abreviatura de minutos (ej. "m", "min"). |
label.seconds | string | No | Abreviatura de segundos (ej. "s", "seg"). |
color
| Propiedad | Tipo | Obligatorio | Descripción |
|---|---|---|---|
color.text | string | No | Color del texto del contador. Formato hexadecimal ("#FFFFFF") o nombre CSS ("white"). Default: white. |
color.background | string | No | Color de fondo del contador. Formato hexadecimal o nombre CSS. Default: initial (sin fondo). |
color.background_opacity | string | No | Opacidad del fondo. Valor entre "0" (transparente) y "1" (opaco). Default: initial. |
Notas y consejos
- Plantilla de contenido
- Componente
- Clase JS
content/countdown.isml
components/countdown.isml
cartridge/client/default/js/classes/countdown.js
Las fechas deben escribirse en inglés con el formato Mmm DD, YYYY HH:MM:SS:
"start": "Jun 01, 2025 10:00:00",
"end": "Jun 30, 2025 23:59:59"
Los meses abreviados en inglés: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.
Se recomienda usar formato hexadecimal para garantizar consistencia visual:
"color": {
"text": "#FFFFFF",
"background": "#000000",
"background_opacity": "0.5"
}
option.type)Solo hay dos tipos activos en el código:
| Tipo | Descripción |
|---|---|
"normal" | Bloques independientes por unidad de tiempo, separados por :. Es el tipo por defecto. |
"simple" | Unidades en línea con <span> y etiqueta, sin separadores :. |
Si la fecha actual no está dentro del rango start–end, el elemento desaparece completamente del DOM (no solo se oculta con CSS). Esto significa que no ocupará espacio en la página, pero también que no hay indicador visible de por qué no aparece. Comprueba siempre el formato y el rango de fechas si el contador no se muestra.