🎨 Temas en Newsday

Guía completa para crear, personalizar, subir y compartir temas visuales.
Versión aplicable: Newsday v0.8 en adelante.

¿Qué es un tema?

Un tema en Newsday es un archivo .php que devuelve un array con la paleta de colores, tipografía, ajustes de imagen y otros valores visuales que se aplican automáticamente a todas las páginas generadas del sitio. Los temas no modifican el contenido; solo cambian la apariencia.

Newsday incluye cuatro temas predefinidos (Newsday, Claro, Oscuro, Clásico) que no se pueden eliminar pero sí usar como base para crear otros nuevos. Puedes crear tantos temas propios como quieras.

💡 Los temas se guardan en la carpeta temas/ de tu instalación de Newsday. Cada tema es un archivo independiente nombrado como su ID: temas/mi-tema.php.

Estructura de un archivo de tema

El archivo PHP debe devolver un array con los siguientes campos:

<?php
/**
 * Newsday — Tema: Ejemplo
 * Guarda este archivo como: temas/ejemplo.php
 */
return [
    'id'          => 'ejemplo',         // slug único, solo letras, números y guiones
    'name'        => 'Mi Tema Ejemplo',   // nombre visible en el panel
    'description' => 'Un tema de ejemplo minimalista.',

    // Colores para la miniatura del selector de temas
    'preview'     => [
        'header' => '#12122a',   // color fondo cabecera
        'accent' => '#5068e8',   // color acento
        'body'   => '#e8ebf0',   // color fondo página
    ],

    // String de variables CSS (separadas por punto y coma)
    'vars' => '--th-header-bg:#12122a;--th-header-fg:#ffffff;'
           . '--th-nav-bg:#1e293b;--th-nav-fg:#94a3b8;'
           . '--th-footer-bg:#1e293b;--th-footer-fg:#64748b;'
           . '--th-body-bg:#e8ebf0;--th-wrap-bg:#ffffff;'
           . '--th-wrap-shadow:0 4px 32px rgba(0,0,0,.12);'
           . '--th-text:#334155;--th-heading:#0f172a;'
           . '--th-accent:#5068e8;--th-accent-hover:#3d55d6;'
           . '--th-muted:#94a3b8;--th-border:#e2e8f0;'
           . '--th-sidebar-bg:#f8fafc;--th-sidebar-border:#e2e8f0;'
           . '--th-pullquote-bg:#eff6ff;--th-pullquote-fg:#1d4ed8;--th-pullquote-border:#3b82f6;'
           . '--th-card-bg:#ffffff;--th-card-border:#e2e8f0;'
           . '--th-tag-bg:#f1f5f9;--th-tag-fg:#64748b;'
           . '--th-body-font:Georgia,serif;--th-ui-font:system-ui,sans-serif;'
           . '--th-fallback-accent:#7c9ff5;'
           . '--th-img-radius:4px;--th-img-shadow:none;--th-img-max-width:100%;',
];
⚠ El ID del tema debe ser único y usar solo letras minúsculas, números y guiones (a-z 0-9 -). No puede tener espacios ni caracteres especiales. Un ID duplicado sobreescribirá el tema existente con ese ID.

Referencia de variables CSS

Todas las variables deben incluirse en el campo 'vars' separadas por punto y coma (;). A continuación, la lista completa con descripción y valor típico:

Cabecera y Navegación

VariableQué controlaValor típico
--th-header-bgFondo de la cabecera del sitio#12122a
--th-header-fgTexto e iconos en la cabecera#ffffff
--th-nav-bgFondo de la barra de navegación#1e293b
--th-nav-fgColor de los enlaces de nav#94a3b8

Cuerpo de página

VariableQué controlaValor típico
--th-body-bgFondo general de la página#e8ebf0
--th-wrap-bgFondo del contenedor central#ffffff
--th-wrap-shadowSombra del contenedor central0 4px 32px rgba(0,0,0,.12)
--th-textColor de texto de los párrafos#334155
--th-headingColor de los titulares (h1, h2…)#0f172a
--th-mutedTexto secundario y metadatos#94a3b8
--th-borderLíneas divisorias y bordes sutiles#e2e8f0

Color acento

VariableQué controlaValor típico
--th-accentColor principal de enlace y acento#5068e8
--th-accent-hoverAcento al pasar el ratón#3d55d6
--th-fallback-accentAcento alternativo / más claro#7c9ff5

Pie de página

VariableQué controlaValor típico
--th-footer-bgFondo del pie de página#1e293b
--th-footer-fgTexto en el pie de página#64748b

Sidebar

VariableQué controlaValor típico
--th-sidebar-bgFondo de la barra lateral#f8fafc
--th-sidebar-borderBorde de la barra lateral#e2e8f0

Cita destacada (pullquote)

VariableQué controlaValor típico
--th-pullquote-bgFondo del bloque de cita#eff6ff
--th-pullquote-fgTexto de la cita#1d4ed8
--th-pullquote-borderFranja de color lateral#3b82f6

Tarjetas y etiquetas

VariableQué controlaValor típico
--th-card-bgFondo de tarjetas de artículo#ffffff
--th-card-borderBorde de tarjetas#e2e8f0
--th-tag-bgFondo de las etiquetas (sección/tag)#f1f5f9
--th-tag-fgTexto de las etiquetas#64748b

Tipografía

VariableQué controlaValor típico
--th-body-fontFuente del texto de artículosGeorgia,serif
--th-ui-fontFuente de la interfaz (nav, títulos UI)system-ui,sans-serif

Imágenes

VariableQué controlaValor típico
--th-img-radiusRadio de esquinas en imágenes0 / 8px / 50%
--th-img-shadowSombra en imágenesnone / 0 4px 16px rgba(0,0,0,.18)
--th-img-max-widthAncho máximo de las imágenes100% / 75%
💡 No es obligatorio incluir todas las variables. Las que omitas tomarán el valor del tema Newsday por defecto.

Crear un tema desde el panel

La forma más cómoda. No requiere editar código.

1

Ir a Modelar → Temas

Abre el panel de administración de Newsday y navega a la pestaña Modelar. Luego haz clic en el subtab 🎨 Temas.

2

Hacer clic en «+ Nuevo tema»

Aparecerá el editor de temas debajo del selector. Rellena el Nombre (obligatorio) y opcionalmente el ID y la descripción. Si dejas el ID vacío, se generará automáticamente desde el nombre al guardar.

3

Ajustar colores, fuentes e imágenes

Usa los controles de la columna izquierda. La vista previa de la derecha se actualiza en tiempo real para que veas el resultado sin publicar.

4

Guardar

Pulsa 💾 Guardar tema. El tema aparecerá en el selector de temas y podrás activarlo haciendo clic en la tarjeta.

5

(Opcional) Exportar como archivo .php

Pulsa ⬇ Exportar .php para descargar el tema como un archivo PHP portable que puedes compartir o usar como base para otros proyectos Newsday.

Editar un tema existente

Haz clic en el botón ✏ Editar que aparece en la esquina inferior de cualquier tarjeta de tema (incluidos los predefinidos). El editor se abrirá con los valores actuales del tema.

⚠ Los temas predefinidos (Newsday, Claro, Oscuro, Clásico) no se pueden eliminar desde el panel, pero sí editar y guardar (sobreescribiendo el archivo). Si prefieres conservar el original, crea un tema nuevo a partir de uno existente usando «Exportar .php» y luego sube el archivo con otro ID.

Subir un tema desde archivo

1

Haz clic en «⬆ Subir tema»

En la sección Modelar → Temas, haz clic en el botón «⬆ Subir tema» y selecciona el archivo .php del tema.

2

Validación automática

El servidor valida que el archivo:

  • Sea un archivo PHP válido que devuelva un array.
  • Contenga los campos obligatorios: id, name y vars.
  • Tenga un ID con caracteres válidos (letras, números, guiones).

Si el archivo pasa la validación, el tema queda disponible de inmediato en el selector. Si no, se muestra un mensaje de error descriptivo.

💡 El contenido PHP del archivo subido nunca se ejecuta directamente. El servidor extrae los datos del array y reconstruye un archivo limpio, por lo que no hay riesgo de inyección de código.

Crear un tema manualmente (avanzado)

Si prefieres trabajar directamente en el servidor:

  1. Crea un archivo PHP en la carpeta temas/ con el nombre mi-tema.php (donde mi-tema es el ID).
  2. El archivo debe devolver un array con la estructura mostrada en la sección anterior.
  3. El tema aparecerá automáticamente en el selector la próxima vez que abras Modelar → Temas.

Ejemplo mínimo válido

<?php
return [
    'id'    => 'minimalista',
    'name'  => 'Minimalista',
    'vars'  => '--th-header-bg:#ffffff;--th-header-fg:#0f172a;'
             . '--th-nav-bg:#f8fafc;--th-nav-fg:#334155;'
             . '--th-body-bg:#f8fafc;--th-wrap-bg:#ffffff;'
             . '--th-text:#334155;--th-heading:#0f172a;'
             . '--th-accent:#0f172a;--th-accent-hover:#334155;'
             . '--th-footer-bg:#0f172a;--th-footer-fg:#64748b;',
    'preview' => ['header'=>'#ffffff', 'accent'=>'#0f172a', 'body'=>'#f8fafc'],
];

Preguntas frecuentes

¿Puedo usar fuentes de Google Fonts?

Sí, pero debes cargarlas en la plantilla HTML del tema. En el campo --th-body-font especifica solo el nombre de la familia (ej: 'Merriweather',serif) y asegúrate de que la hoja de estilos de Google Fonts esté incluida en el layout del sitio generado. El panel no carga fuentes externas automáticamente.

¿Los temas se incluyen en las copias de seguridad?

Sí. Todos los temas personalizados en la carpeta temas/ se incluyen en los backups tanto al descargar como al guardar en servidor. Al restaurar un backup, los temas se restauran con el resto del contenido.

¿Qué pasa si dos temas tienen el mismo ID?

El segundo sobreescribe al primero. Si subes un tema con un ID ya existente (por ejemplo un predefinido como newsday), el predefinido quedará sobreescrito. Para evitarlo, usa siempre un ID único.

¿Puedo eliminar un tema que está activo?

Sí, pero el sitio seguirá mostrando el tema hasta la próxima publicación. Tras eliminar el tema, Newsday volverá automáticamente al tema predeterminado en la próxima generación del sitio.

¿Puedo compartir mis temas?

Sí. Usa el botón ⬇ Exportar .php en el editor de temas. El archivo descargado es portable y se puede instalar en cualquier Newsday con el botón ⬆ Subir tema.