Juleflet generator geometry, generated 2026-10-20. Rebuild from the repository root: python3 -m pip install -r scripts/generator/requirements.txt python3 scripts/generator/build-outlines.py Use --fonts-only to rebuild only the fonts and their previews. The generated assets are checked in; deployment does not require Python. Motifs: 1,525 filled Phosphor icons, Phosphor core 2.1.1. Source: https://github.com/phosphor-icons/core Retrieved from @iconify-json/ph 1.2.2: https://cdn.jsdelivr.net/npm/@iconify-json/ph@1.2.2/icons.json License and author attribution: phosphor-LICENSE.txt. Only names ending in -fill are included, with the suffix removed. The catalogue retains the original SVG preview geometry. The individual JSON files contain flattened, normalised contours derived from those SVGs. Fifteen simple motifs, among them a nisse, a julebuk and an angel, and the Danish search aliases are authored for Juleflet. Additional motifs: 1,088 filled Tabler icons. Source: https://github.com/tabler/tabler-icons Retrieved from @iconify-json/tabler 1.2.42: https://cdn.jsdelivr.net/npm/@iconify-json/tabler@1.2.42/icons.json License and author attribution: tabler-LICENSE.txt (MIT). The filled source bodies are vendored in scripts/generator/vendor/tabler-filled.json. Use --icons-only to rebuild motifs without rebuilding fonts. Christmas motifs and animals: 40 icons from eight open sets, chosen for the figure list. Their SVG bodies are vendored in scripts/generator/vendor/curated.json, retrieved 2026-10-19 from https://cdn.jsdelivr.net/npm/@iconify-json/@/icons.json. Changes: the outlines are flattened into polygons for cutting, and the hearts weave them into the paper strips. Motif ids start with the set's prefix. fa- Font Awesome Free 7 by Fonticons, Inc. (fa7-solid 1.2.5), CC BY 4.0, https://creativecommons.org/licenses/by/4.0/, fontawesome-LICENSE.txt gi- Icons made by Delapouite (polar star, santa hat, squirrel) and Lorc (mouse, swan), https://game-icons.net (game-icons 1.2.4), CC BY 3.0, https://creativecommons.org/licenses/by/3.0/, game-icons-LICENSE.txt pin- Pinhead Map Icons (pinhead 1.2.34), CC0, pinhead-LICENSE.txt mdi- Material Design Icons by Pictogrammers (mdi 1.2.3), Apache-2.0, mdi-LICENSE.txt ms- Material Symbols by Google (material-symbols 1.2.95), Apache-2.0, material-symbols-LICENSE.txt mc- MingCute (mingcute 1.2.8), Apache-2.0, mingcute-LICENSE.txt hi- Healthicons by Resolve to Save Lives (healthicons 1.2.13), MIT, healthicons-LICENSE.txt fe- Fluent Emoji, high contrast, by Microsoft (fluent-emoji-high-contrast 1.2.6), MIT, fluent-emoji-LICENSE.txt Fonts: Nunito (800), Bree Serif (400), Oswald (600), Kalam (700), Cinzel (900), Righteous (400), Josefin Sans (700), Alfa Slab One (400) and Bungee (400), from the corresponding ofl// directories at: https://github.com/google/fonts Each family is covered by its own OFL license in fonts/-OFL.txt. The original source TTF files are in docs/design-start/assets/fonts/. These are derived, flattened glyph outlines, not redistributed font binaries. Cinzel and Kalam have slightly thickened outlines where doing so preserves the number of contours, to leave more paper around fine details. The sample SVGs show the exact outlines used by the generator. Fonts found in the search over Google Fonts are not part of this site: the visitor's browser fetches each, when chosen, from Fontsource's copy of Google Fonts on jsDelivr (https://fontsource.org) and outlines it there, untested and not thickened. Each family keeps its own licence (mostly OFL), listed at https://fonts.google.com. The list of families in google-fonts.json comes from Fontsource's list and Google Fonts' popularity ranking. Construction: independently implemented contour routing; no image solver. Dense text framing is inspired by Gerth Stolting Brodal's explanation and slides: https://cs.au.dk/~gerth/julehjerter/ https://cs.au.dk/~gerth/julehjerter/slides.pdf No code, glyphs or templates from that site are copied. Enclosed regions use paired coincident cuts in both sheets, never removed paper.