Swiss Calendar Creator
Swiss Calendar Creator draws calendars in the International Typographic Style —strict grid, flush-left sans-serif, hairline rules, one accent ink— as an Affinity (by Canva) script and as a browser tool. Both run the same drawing engine: the four view functions are pure geometry over a handful of primitives. Porting to the web meant swapping the layer that lays down rectangles and text — and letting go of a strict 1:1 where the medium asked for it.
El calendario es uno de esos ejercicios que el diseño suizo resolvió hace sesenta años y que las herramientas digitales todavía no entienden. Una retícula estricta, palo seco alineado a la izquierda, filetes finos, mucho blanco y una sola tinta de acento. Ninguna app de calendario ni plantilla lo genera con esa disciplina: hay que armarlo a mano, celda por celda, cada vez.
Swiss Calendar Creator lo dibuja solo, sobre una retícula real, en dos entornos: un script para Affinity (by Canva) y una web app. Es la tercera herramienta de la familia Swiss ___, junto a Swiss Grid Explorer.

Dos plataformas, un motor
Las cuatro funciones de dibujo —drawYear, drawMonth, drawWeek, drawDay— reciben un área {x, y, w, h} y un objeto de configuración, y todo el trazado se reduce a cinco primitivas: rectángulo, filete horizontal, filete vertical, texto en marco y texto de varios estilos en una línea.
Esa restricción es la que hace portable el proyecto. En Affinity, las primitivas crean nodos vectoriales dentro de un artboard. En el navegador, escriben <rect> y <text> de SVG. La lógica de fechas —qué día cae en qué columna, el cálculo ISO-8601 de la semana, la fila parcial de meses contiguos— es idéntica en las dos.
Portar a la web no fue reescribir el calendario, fue cambiar la capa que apoya los rectángulos.

Cuatro vistas, y una decisión de no ser fiel
Año son doce mini-meses en la retícula de columnas × filas que elijas —4×3, 3×4, 6×2, 2×6, o tiras largas de 12×1 y 1×12 para un faldón o una banda lateral— o automática, según la proporción de la hoja. Mes es la cuadrícula clásica, con columna de números de semana opcional (ISO 8601 o “desde 1”, como en las agendas comerciales) y días de los meses contiguos atenuados. Esas dos comparten lógica en las dos plataformas.
Semana y Día no. En Affinity, el calendario llena la forma que seleccionaste, y esa forma puede tener cualquier proporción. En la web el usuario solo controla la hoja, así que estas dos vistas se rehicieron para estirarse y llenar el lienzo: la semana pasa a siete columnas de altura completa con renglones de escritura —una agenda semanal de verdad—, y el día, cuando no hay franjas horarias, rellena el espacio en blanco en vez de dejarlo vacío. En un lienzo apaisado, el día parte la pantalla: fecha a la izquierda, agenda a la derecha.

Lo que suma cada plataforma
En Affinity, el script puede rellenar una serie de artboards con períodos consecutivos —las doce páginas de un calendario en una sola pasada—, recuerda tus ajustes dentro del propio documento y deja fijar el cuerpo del texto en puntos para casar con el resto de la maqueta.
La web, al ser navegador, es más visual y agrega lo que en un script tendría poco sentido: previsualización en vivo, título y subtítulo editables, feriados nacionales por país (con Pascua y feriados móviles calculados) y notas propias por fecha. Todo el contenido —nombres de meses y días, rótulos— funciona en español o inglés.

Lo que exporta
Un SVG con los grupos en capas nombradas (Paper, Calendar), con los atributos que Illustrator, Affinity e Inkscape necesitan para reconocerlas —el mismo criterio que Swiss Grid Explorer, no el mínimo viable sino el archivo que abre bien en todos los destinos— o un PNG para el que solo quiere la imagen. El PNG se rasteriza en un <canvas>, sin librerías: se mantiene el “cero dependencias”.