From 5671b1a6fd3e12ca139a372c1881f26871e91134 Mon Sep 17 00:00:00 2001 From: Lukas Burk Date: Tue, 7 Apr 2026 17:04:46 +0200 Subject: [PATCH 1/6] bypst:0.2.0 --- packages/preview/bypst/0.2.0/CHANGELOG.md | 88 ++ packages/preview/bypst/0.2.0/LICENSE | 21 + packages/preview/bypst/0.2.0/README.md | 258 +++++ packages/preview/bypst/0.2.0/bips-logo.png | Bin 0 -> 54332 bytes packages/preview/bypst/0.2.0/bypst.typ | 10 + .../preview/bypst/0.2.0/template/basic.typ | 36 + .../preview/bypst/0.2.0/template/complete.typ | 77 ++ packages/preview/bypst/0.2.0/theme.typ | 954 ++++++++++++++++++ packages/preview/bypst/0.2.0/thumbnail.png | Bin 0 -> 124592 bytes packages/preview/bypst/0.2.0/typst.toml | 53 + 10 files changed, 1497 insertions(+) create mode 100644 packages/preview/bypst/0.2.0/CHANGELOG.md create mode 100644 packages/preview/bypst/0.2.0/LICENSE create mode 100644 packages/preview/bypst/0.2.0/README.md create mode 100644 packages/preview/bypst/0.2.0/bips-logo.png create mode 100644 packages/preview/bypst/0.2.0/bypst.typ create mode 100644 packages/preview/bypst/0.2.0/template/basic.typ create mode 100644 packages/preview/bypst/0.2.0/template/complete.typ create mode 100644 packages/preview/bypst/0.2.0/theme.typ create mode 100644 packages/preview/bypst/0.2.0/thumbnail.png create mode 100644 packages/preview/bypst/0.2.0/typst.toml diff --git a/packages/preview/bypst/0.2.0/CHANGELOG.md b/packages/preview/bypst/0.2.0/CHANGELOG.md new file mode 100644 index 0000000000..e56601e102 --- /dev/null +++ b/packages/preview/bypst/0.2.0/CHANGELOG.md @@ -0,0 +1,88 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). + +## [Unreleased] + +## [0.2.0] - April 2026 + +### Added +- `title-align` parameter on `bips-theme()` for horizontal alignment of slide titles (left, center, right) +- `base-size` parameter on `bips-theme()` to scale all text proportionally; headings, page numbers, `#small[]`, and `#tiny[]` adjust automatically via em-based sizing +- Size override parameters on `bips-theme()`: `slide-title-size`, `slide-subtitle-size`, `heading-1-size`, `heading-2-size`, `heading-3-size`, `page-number-size`, `small-size`, `tiny-size` +- `#huge[]`, `#large[]`, `#small[]`, and `#tiny[]` text size utility functions that scale proportionally with `base-size` +- `#compact[]` utility for tighter list/enum spacing (applies recursively to nested lists) +- `#vfill` shorthand (equivalent to `#v(1fr)`) +- Color helpers: `#blue[]`, `#orange[]`, `#green[]`, `#gray[]` +- `callout()` blocks with types note, tip, warning, important and optional `title:` parameter +- `two-columns[][]` and `three-columns[][][]` layout helpers with customizable widths and gutter +- `content-align` parameter on `bips-slide()` for body content alignment (e.g. `center + horizon`) +- Per-slide overrides: `text-size`, `title-size`, `subtitle-size`, `code-block-scale`, `code-inline-scale` on `bips-slide()` +- Code scaling parameters `code-block-scale` and `code-inline-scale` on `bips-theme()` +- Heading show rules for levels 1, 2, and 3 in BIPS blue with em-based sizing (1.11em, 1em, 0.89em) +- `bibliography-slide()` for reference lists +- `empty-slide[]` for minimal slides without branding +- tytanic test suite with 10 compile-only tests covering all slide types and features +- typstyle formatting for consistent code style +- GitHub Actions workflow to compile gallery demos and deploy previews to GitHub Pages + +### Changed +- **Upgraded Touying from 0.6.1 to 0.7.0** with new API for aspect ratios, config parameters, and page setup +- Page numbers use Touying's logical slide counter rendered in slide content via `place()`, fixing off-by-one errors on animated slides +- Slides without page numbers (`title-slide`, `section-slide`, `thanks-slide`, `empty-slide`) freeze the slide counter so numbering is sequential without gaps +- Page background overrides use `config: config-page(...)` instead of `set page()` in `setting:` callbacks (Touying 0.7.0 requirement) +- Aspect ratio uses `utils.page-args-from-aspect-ratio()` instead of `paper: "presentation-..."` +- Font size overrides use a state bridge (`_bips-sizes`) to pass computed values from `bips-theme()` to slide functions +- `thanks-slide` uses the `setting:` callback pattern consistently with other slide types +- `empty-slide` simplified from variadic `..content` to single `body` parameter +- `title-slide` no longer redundantly re-sets the page background +- **Renamed package from `bips-typst` to `bypst`** for Typst Universe naming compliance +- Multi-author title slides separate names with horizontal space instead of commas +- Gallery condensed from 13 demos to 5 focused examples (basic, complete, bibliography, aspect-ratio, lecture-demo) +- Emphasis (`_text_`) renders as blue italic; strong (`*text*`) renders as blue bold +- List/enum styling uses ascender/descender edges for consistent bullet alignment +- Nested lists use tighter spacing +- Gallery and test files use relative imports instead of versioned `@local` imports + +### Removed +- Dead `show-page-number` parameter from `section-slide` (was accepted but silently ignored) +- Unused typography variables: `font-weight-base`, `font-color-small`, `font-weight-small`, `font-color-tiny`, `font-weight-tiny`, `font-size-heading-*` +- 8 redundant gallery demos (animations, callouts, columns, content-elements, customization, font-customization, multi-author, qr-code) — all covered by `complete.typ` + +### Fixed +- Size override parameters in `bips-theme()` were silently ignored — now functional +- Heading levels 1–3 had no styling (rendered as default black text) — now styled globally with BIPS blue (h1/h2) and gray (h3) +- Page numbers remain stable across `#pause` subslides +- Content overflow on animated slides no longer creates blank pages for all subslides + +## [0.1.1] - 2025 + +### Changed +- Restructured project layout: moved theme files from `lib/` to project root +- Improved slide number logic to handle presentations with or without title slide +- Expanded and consolidated test suite into single `test-suite.typ` + +### Fixed +- Slide counter properly adjusts numbering based on title slide presence + +## [0.1.0] - 2025 + +### Added +- Initial release of BIPS Typst presentation template +- Core slide types: title-slide, bips-slide, section-slide, thanks-slide, empty-slide +- Multi-author support with institute affiliations via `inst()` +- QR code generation for contact slides via codetastic +- Animation support via Touying (`#pause`, `#uncover`, `#only`, `#alternatives`, `#meanwhile`) +- Bibliography slide helper +- Customizable font sizes and styling +- BIPS branding (colors, logo, Fira Sans / Fira Mono fonts) +- 16:9 and 4:3 aspect ratio support +- Gallery of example presentations +- Test suite for validation + +[Unreleased]: https://github.com/bips-hb/bips-typst/compare/v0.2.0...HEAD +[0.2.0]: https://github.com/bips-hb/bips-typst/compare/v0.1.1...v0.2.0 +[0.1.1]: https://github.com/bips-hb/bips-typst/compare/v0.1.0...v0.1.1 +[0.1.0]: https://github.com/bips-hb/bips-typst/releases/tag/v0.1.0 diff --git a/packages/preview/bypst/0.2.0/LICENSE b/packages/preview/bypst/0.2.0/LICENSE new file mode 100644 index 0000000000..9038be4563 --- /dev/null +++ b/packages/preview/bypst/0.2.0/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Lukas Burk + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/preview/bypst/0.2.0/README.md b/packages/preview/bypst/0.2.0/README.md new file mode 100644 index 0000000000..359f0306ef --- /dev/null +++ b/packages/preview/bypst/0.2.0/README.md @@ -0,0 +1,258 @@ +# bypst — BIPS Presentation Template + +A 16:9 presentation template for [BIPS](https://www.leibniz-bips.de/) using [Typst](https://typst.app/) and [Touying](https://touying-typ.github.io/). Based on the institutional style from [bips-beamer](http://github.com/bips-hb/bips-beamer). + +**Version: 0.2.0** + +## Quick Start + +```typst +#import "@local/bypst:0.2.0": * +#show: bips-theme + +#title-slide( + title: "Your Presentation Title", + author: "Your Name", + institute: bips_en, // or bips_de + date: datetime.today().display(), +) + +#bips-slide(title: "Introduction")[ + - Bullet points + - *Bold* and _italic_ in BIPS blue + - Math: $s^2 = 1/(n-1) sum_(i=1)^n (x_i - overline(x))^2$ + + #pause + + - Revealed on click +] + +#thanks-slide( + contact-author: "Your Name", + email: "your.email@leibniz-bips.de", + qr-url: "https://link-to-slides.example.com", +) +``` + +## Installation + +Clone and install locally: + +```sh +git clone https://github.com/bips-hb/bips-typst.git +cd bips-typst +just install +``` + +Then import in any `.typ` file: + +```typst +#import "@local/bypst:0.2.0": * +``` + +## Slide Types + +| Function | Purpose | +|---|---| +| `#title-slide()` | Opening slide with author, institute, date | +| `#bips-slide()` | Content slide with optional title/subtitle | +| `#section-slide()` | Section divider | +| `#thanks-slide()` | Closing slide with contact info and optional QR code | +| `#bibliography-slide[]` | References | +| `#empty-slide[]` | Blank slide without branding | + +### Content slide options + +```typst +#bips-slide( + title: "Slide Title", + subtitle: "Optional Subtitle", + content-align: center + horizon, // center content vertically and horizontally + text-size: 16pt, // override text size for this slide +)[ + Content here +] +``` + +`content-align` accepts any Typst alignment: `center`, `horizon`, `center + horizon`, etc. + +### Multi-author title slides + +```typst +#title-slide( + title: "Collaborative Research", + authors: ( + "Jane Doe" + inst(1,2), + "John Smith" + inst(1), + ), + institutes: ( + "BIPS", + "University of Bremen", + ), +) +``` + +### Section slides + +```typst +#section-slide("Results") +#section-slide("Methods", show-logo: false) +``` + +## Layout Helpers + +```typst +// Two columns (equal by default) +#two-columns[Left][Right] +#two-columns(columns: (2fr, 1fr), gutter: 2em)[Wide][Narrow] + +// Three columns +#three-columns[A][B][C] +``` + +## Utilities + +### Color helpers + +```typst +#blue[text] #orange[text] #green[text] #gray[text] +``` + +### Callout boxes + +```typst +#callout(type: "note")[Information] +#callout(type: "tip")[Helpful hint] +#callout(type: "warning")[Caution] +#callout(type: "important")[Critical] +#callout(type: "tip", title: "Custom Title")[With a title] +``` + +### Compact list spacing + +For dense layouts (e.g. multi-column slides), use `#compact` to tighten list spacing: + +```typst +#compact[ + - Item A + - Item B + - Item C +] +``` + +Adjustable: `#compact(spacing: 0.2em, leading: 0.2em)[...]` + +For lighter adjustments, `#set list(spacing: 0.4em)` works as a local override. + +### Vertical fill + +```typst +#vfill // shorthand for v(1fr) +``` + +### Institutional names + +```typst +#bips_en // Leibniz Institute for Prevention Research and Epidemiology — BIPS +#bips_de // Leibniz-Institut für Präventionsforschung und Epidemiologie — BIPS +``` + +## Animations + +The theme re-exports Touying's animation functions: + +```typst +#pause // reveal on click +#uncover(2)[On second click] // show on specific subslide +#only(1)[First click only] // only on specific subslide +#alternatives[Version A][Version B] // swap content +``` + +**Note**: Do not use `#pause` inside `#two-columns` / `#three-columns`. Use `#uncover()` or `#only()` instead. + +## Global Customization + +```typst +#show: bips-theme.with( + aspect-ratio: "16-9", // default + // Font families (string or array with fallbacks) + font: "Fira Sans", + code-font: "Fira Mono", + math-font: "New Computer Modern Math", + // Font sizes + base-size: 20pt, // scales headings, small/tiny proportionally + slide-title-size: 28pt, // explicit pt overrides take precedence + slide-subtitle-size: 22pt, + heading-1-size: 22pt, + heading-2-size: 20pt, + heading-3-size: 18pt, + small-size: 16pt, + tiny-size: 14pt, + page-number-size: 16pt, + code-block-scale: 0.9, + code-inline-scale: 1, +) +``` + +### Text size utilities + +```typst +#huge[Largest text for emphasis] +#large[Larger text for subheadings] +#small[Smaller text for captions or notes] +#tiny[Even smaller text for fine print] +``` + +## Examples + +The `gallery/` directory contains example presentations: + +- `basic.typ` — starter template +- `complete.typ` — comprehensive feature showcase +- `bibliography.typ` — citations and references +- `aspect-ratio.typ` — 4:3 format +- `lecture-demo.typ` — realistic 100-slide scale test + +## Development + +```sh +just install # install package locally +just all # compile all gallery demos +just test # run test suite +just clean # remove generated PDFs +``` + +After editing theme files, run `just install` before compiling. + +### Project Structure + +``` +bypst.typ # package entrypoint +theme.typ # theme implementation +bips-logo.png # logo asset +typst.toml # package metadata +template/ # Typst Universe templates +gallery/ # example presentations +tests/ # test suite +``` + +## Fonts + +The theme uses [Fira Sans](https://fonts.google.com/specimen/Fira+Sans) for body text and [Fira Mono](https://fonts.google.com/specimen/Fira+Mono) for code, with automatic fallbacks if they are not installed: + +| Role | Preferred | Fallback | +|------|-----------|----------| +| Body text | Fira Sans | Noto Sans | +| Code | Fira Mono | DejaVu Sans Mono (Typst built-in) | +| Math | New Computer Modern Math | (Typst built-in) | + +For the best results, install the Fira fonts. Override with the `font:`, `code-font:`, and `math-font:` parameters on `bips-theme()`. + +## Requirements + +- Typst >= 0.12.0 +- Dependencies: touying 0.7.0, codetastic 0.2.2 (resolved automatically) + +## License + +MIT diff --git a/packages/preview/bypst/0.2.0/bips-logo.png b/packages/preview/bypst/0.2.0/bips-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ac84a149f9d5620441ce560382d1a20337916908 GIT binary patch literal 54332 zcmZ_01#}g`(lwfd6NR|DJ8|Of#NCy6h`YNBae=tI5O*a`+}+*XiZ0Jb`$k={_Py>O#7*=y^e*n{s#=ih=cCg($@)-!*Jw3+?~+>u~AVmBHr(skZ4qv zo{Hw1zWy*+b>d$sIDumVA}um%++kfX159vy7$Y0-swv`QRDD*YTm0WCF+`?BPak4N zl0hace#e_qA-^F7EQ{KRi1vTRWhRt>UA6^h=jR7egn1LeNGj4w3e-Ay3mPk!xQm7P zlQQNhqVrtE-8iB}ev15rjU}*wpzy+pgqIO%V2We_KaIgD5ndm+be= z58=ayH|4;eIOC4sUQoea4slWuLs@-{%-Af9NShzPhTSA-OW=)80n3RPt4o;3$biuR z$1q?J;3!}pfFp3=2Q0)K4D|0942%N!7ch1f#Q&UuaLxMge~#VWzic=qeP0hKb7gf$ zbs1?cLmMmlZ|~NpceS#8zW|KKl?ynuGIsn%RXPl1aCjW0w)(-!j7BE4E_iq@O=ouOQZ_SKd&HsOzy?^tcX8-2(pYC|x zZ^k8OZ*B|>_Og#TO`2U>ye}~8Oeitrzb5~>c35S7~U=QzbyBkW%+j&SQkDx9)|z3#(Z!Kb9um1DgY)SBB<;N zew+^Ni8tp|iTHcJ&Ba&$EFDE6_ORM$AzW)2JsGWm!_66m+s-Y@uz&O_Lg~22E+Uw{4voSK)Y%+VNkkcsW)S+l-D~_;G?zP(ukG?!6LHe|?t?p}3o5 zUC-rzNZyk&|->fMCEqe$5K^A6AFw-)j^Nr*Rc- zCwh1`bQt=9I7|u#IYyR*|NJAb++{v*b@+sWmRDoY=I8DxN}C@TOk-l_#iKP`P+wxY zuCYRreRXkjz#Q+sQdFWAq`$xE=8*1pY{n{fhZdRvNtOoTYbXdJFbFo}b7*15Vwsh- z%EX|%Rsb>{FX{1%G);M?k!HBuj2vub>mX)2)3Y z`;~cW`Z=AS2kwcx#TzPn{nyt=`<7;Lm;-78RMYSZz#amfx)3yP-gE=1a$SFA)vl&Z zETwg{Bt6c|j>H4}O-T&TzQ%~5-5^L_>KDsse|Ln0Akt^?JM~jgym76R7ldSBp&Q&q zpJZR2=Ro7}%FC$?>Uf-BNt+dBhi+4@l9ndQs0%-W_yzQIjcT?pKlO=%mo-e8n_NOd z5$H=B0yk$~2n;S`@MjCOxXkH9+NnSBv-~e%lr~`EJ>dct(J9$Qf#TrMJgUWHZXA%I z{-P?qN`lG?5gVuvqW5UH)W)hjn6ciAc(hAx~0H&W0;(D5qvCB`HD=BfFvrqeBfCx_IO5t!D z9VGoeo<3U<3xu!NfN7CfAn?5oPuGigr`IKvuR_`QX<1F~0N*7S>B+**7D!1c(`9Hu$pqBHlNG}Zpn!0LWS!P@%&F0E^a z?sBfoCe4P;-~0g_$(9pbB^{b4{MX(mduvCPztuxLimbAkCBu;ekdR|Ab#9AASouq( z=ZKFyR2RtqJYR$;&rDiwCdy0&ftr+3=Li#hwYI)dpB@;@?q%NbHCnt!WP3|HvCnmS z7BmtVIFh`t?|1R+_^--R@U!J+i^CGST51V0?L9T3?~lr-dVwyYC}0r_?wI~(OnzjL z_zR$>@8N|*ZXQ8%^@;gIOsGxE%E0BVDUb{16n9u&E;M^Kk>1Yx;2;5_3>Y$x>E{~s zI4pX�qbxsb<)M!{ku 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 literal 0 HcmV?d00001 diff --git a/packages/preview/bypst/0.2.0/bypst.typ b/packages/preview/bypst/0.2.0/bypst.typ new file mode 100644 index 0000000000..157497d507 --- /dev/null +++ b/packages/preview/bypst/0.2.0/bypst.typ @@ -0,0 +1,10 @@ +// Re-export the main theme file from the lib directory +#import "theme.typ": * + +// Note: Basic Touying functions like `pause` and `slide` are already available +// through theme.typ's `#import "@preview/touying:0.7.0": *` + +// Re-export additional Touying utilities for user convenience +// These animation and utility functions are useful but not in Touying's main namespace +#import "@preview/touying:0.7.0": alternatives, meanwhile, only, uncover +#import "@preview/touying:0.7.0": utils // Includes slide-counter and other utilities diff --git a/packages/preview/bypst/0.2.0/template/basic.typ b/packages/preview/bypst/0.2.0/template/basic.typ new file mode 100644 index 0000000000..db32bd96ed --- /dev/null +++ b/packages/preview/bypst/0.2.0/template/basic.typ @@ -0,0 +1,36 @@ +// To use with a local installation (after `just install`): +// #import "@local/bypst:0.2.0": * +#import "@preview/bypst:0.2.0": * + +#show: bips-theme + +#title-slide( + title: "Your Presentation Title", + subtitle: "Optional Subtitle", + author: "Your Name", + institute: bips_en, + date: datetime.today().display(), +) + +#bips-slide(title: "Introduction")[ + Your content here... + + - Bullet points + - Math: $x^2 + y^2 = z^2$ + - *Bold* and _italic_ text +] + +#section-slide("Results") + +#bips-slide(title: "Main Findings")[ + #two-columns[ + Left column content + ][ + Right column content + ] +] + +#thanks-slide( + contact-author: "Your Name", + email: "your.email@leibniz-bips.de", +) diff --git a/packages/preview/bypst/0.2.0/template/complete.typ b/packages/preview/bypst/0.2.0/template/complete.typ new file mode 100644 index 0000000000..69d93ccd7a --- /dev/null +++ b/packages/preview/bypst/0.2.0/template/complete.typ @@ -0,0 +1,77 @@ +// To use with a local installation (after `just install`): +// #import "@local/bypst:0.2.0": * +#import "@preview/bypst:0.2.0": * + +#show: bips-theme + +#title-slide( + title: "Complete BIPS Presentation Example", + subtitle: "Showcasing all features", + authors: ( + [Jane Doe#inst(1, 2)], + [John Smith#inst(1)], + ), + institutes: ( + bips_en, + "University of Bremen", + ), + date: datetime.today().display(), + occasion: "Annual Conference", +) + +#bips-slide(title: "Features Overview")[ + This template includes: + + - Multiple slide types (content, section, thanks, empty) + - Callout boxes (note, tip, warning, important) + - Animations via `#pause`, `#uncover`, `#only` + - Multi-column layouts + - Bibliography support + - QR code generation +] + +#section-slide("Examples") + +#bips-slide(title: "Callout Boxes")[ + #callout(type: "note")[ + This is a note callout. + ] + + #callout(type: "tip", title: "Pro Tip")[ + Callouts can have custom titles. + ] + + #callout(type: "warning")[ + This is a warning callout. + ] +] + +#bips-slide(title: "Animations")[ + - First item + + #pause + + - Second item appears on click + + #pause + + - Third item appears last +] + +#bips-slide(title: "Two-Column Layout")[ + #two-columns[ + *Left column* + + Text, images, or any content. + ][ + *Right column* + + Side-by-side comparisons. + ] +] + +#thanks-slide( + contact-author: "Jane Doe", + email: "jane.doe@leibniz-bips.de", + qr-url: "https://github.com/bips-hb/bips-typst", +) diff --git a/packages/preview/bypst/0.2.0/theme.typ b/packages/preview/bypst/0.2.0/theme.typ new file mode 100644 index 0000000000..8131c86f74 --- /dev/null +++ b/packages/preview/bypst/0.2.0/theme.typ @@ -0,0 +1,954 @@ +#import "@preview/touying:0.7.0": * +#import "@preview/codetastic:0.2.2": qrcode + +// =================================================================== +// BYPST — BIPS PRESENTATION THEME +// =================================================================== +// +// A modern presentation template for BIPS using Typst and Touying +// https://github.com/bips-hb/bips-typst +// +// =================================================================== + +// =================================================================== +// INSTITUTIONAL SHORTCUTS +// =================================================================== + +#let bips_en = [Leibniz Institute for Prevention Research and Epidemiology --- BIPS] +#let bips_de = [Leibniz-Institut für Präventionsforschung und Epidemiologie --- BIPS] + +// =================================================================== +// COLOR DEFINITIONS +// =================================================================== + +#let bips-blue = rgb(23, 99, 170) +#let bips-logo-blue = rgb(65, 125, 177) +#let bips-text-gray = rgb(66, 66, 66) +#let bips-orange = rgb(250, 133, 55) +#let bips-green = rgb(49, 210, 57) + +// =================================================================== +// TYPOGRAPHY CONFIGURATION +// =================================================================== + +// Font families (with fallbacks for systems without Fira fonts) +// Fallback chains: preferred → common alternatives → Typst built-in +#let font-family-text = ("Fira Sans", "Noto Sans") +#let font-family-code = ("Fira Mono", "DejaVu Sans Mono") +#let font-family-math = ("New Computer Modern Math",) + +// Main content styling +#let font-size-base = 18pt +#let font-color-base = bips-text-gray + +#let font-size-small = 14pt + +#let font-size-tiny = 12pt +#let font-size-large = 22pt +#let font-size-huge = 26pt + +// Heading styling (sizes are em-based in show rules, so they scale with base-size) +// h1: 1.11em, h2: 1em, h3: 1em (h3 distinguished by color, not size) +#let heading-color-1 = bips-blue +#let heading-weight-1 = "bold" +#let heading-color-2 = bips-blue +#let heading-weight-2 = "bold" +#let heading-color-3 = bips-text-gray +#let heading-weight-3 = "bold" + +// Slide title and subtitle styling +#let font-size-slide-title = 26pt +#let font-size-slide-title-only = 30pt // Slightly larger when no subtitle +#let font-color-slide-title = bips-blue +#let font-weight-slide-title = 600 + +// Height of the title area (keeps gradient line at consistent position) +#let slide-title-area-height = 2cm + +#let font-size-slide-subtitle = 20pt +#let font-color-slide-subtitle = bips-blue +#let font-weight-slide-subtitle = "regular" + +// Title slide styling +#let font-size-title-slide-main = 26pt +#let font-color-title-slide-main = bips-blue +#let font-weight-title-slide-main = 500 + +#let font-size-title-slide-subtitle = 20pt +#let font-color-title-slide-subtitle = bips-blue +#let font-weight-title-slide-subtitle = 400 + +#let font-size-title-slide-author = 20pt +#let font-color-title-slide-author = bips-blue +#let font-weight-title-slide-author = 500 + +#let font-size-title-slide-institute = 18pt +#let font-color-title-slide-institute = bips-text-gray +#let font-weight-title-slide-institute = "regular" + +#let font-size-title-slide-date = 16pt +#let font-color-title-slide-date = bips-text-gray +#let font-weight-title-slide-date = "regular" + +// Section slide styling +#let font-size-section-slide = 40pt +#let font-color-section-slide = bips-blue +#let font-weight-section-slide = "bold" + +// Thanks slide styling +#let font-size-thanks-slide-main = 24pt +#let font-color-thanks-slide-main = bips-blue +#let font-weight-thanks-slide-main = "bold" + +#let font-size-thanks-slide-website = 20pt +#let font-color-thanks-slide-website = bips-blue +#let font-weight-thanks-slide-website = "regular" + +#let font-size-thanks-slide-contact = 14pt +#let font-color-thanks-slide-contact = bips-text-gray +#let font-weight-thanks-slide-contact = "regular" + +// Page number styling +#let font-size-page-number = 18pt +#let font-color-page-number = bips-text-gray +#let font-weight-page-number = "regular" + +// Code styling +#let font-scale-code-inline = 1 +#let font-scale-code-block = 0.8 + +// List and enumeration spacing +#let list-spacing = 0.6em +#let enum-spacing = 0.6em + +// Emphasis and strong text styling +#let font-color-emphasis = bips-blue +#let font-color-strong = bips-blue + +// =================================================================== +// UTILITY FUNCTIONS +// =================================================================== + +/// Choose first non-none value from list of options +/// This simplifies the common pattern: if override != none { override } else { default } +/// Usage: #pick-first(user-override, theme-default) +#let pick-first(..options) = { + for option in options.pos() { + if option != none { + return option + } + } + return none +} + +/// State used to pass computed sizes from bips-theme() to slide functions. +/// Initialized with module-level defaults; updated by bips-theme() with +/// effective values that account for base-size scaling and explicit overrides. +#let _bips-sizes = state("bips-sizes", ( + slide-title: font-size-slide-title, + slide-title-only: font-size-slide-title-only, + slide-subtitle: font-size-slide-subtitle, + page-number: font-size-page-number, + small: font-size-small, + tiny: font-size-tiny, + large: font-size-large, + huge: font-size-huge, + title-align: left, +)) + +/// Render content at a smaller size (scales with base-size) +#let small(body) = context text(size: _bips-sizes.get().small)[#body] + +/// Render content at the smallest size (scales with base-size) +#let tiny(body) = context text(size: _bips-sizes.get().tiny)[#body] + +/// Render content at a larger size (scales with base-size) +#let large(body) = context text(size: _bips-sizes.get().large)[#body] + +/// Render content at the largest size (scales with base-size) +#let huge(body) = context text(size: _bips-sizes.get().huge)[#body] + +// =================================================================== +// BACKGROUND UTILITY FUNCTIONS +// =================================================================== + +/// Create background with BIPS logo +/// Page numbers are handled separately via Touying's header system +/// to ensure correct numbering across #pause subslides +#let bips-background(show-logo: true) = { + if show-logo { + place( + top + right, + dx: -1cm, + dy: 1cm, + image("bips-logo.png", width: 3cm), + ) + } +} + +// =================================================================== +// MAIN THEME FUNCTION +// =================================================================== + +#let bips-theme( + aspect-ratio: "16-9", + // Title alignment inside the title area box (e.g. left, center, right) + // Applies to the horizontal alignment of slide titles/subtitles. + title-align: left, + // Font family overrides (string or array of strings with fallbacks) + font: none, + code-font: none, + math-font: none, + // Global font size overrides (optional) + base-size: none, + slide-title-size: none, + slide-subtitle-size: none, + heading-1-size: none, + heading-2-size: none, + heading-3-size: none, + small-size: none, + tiny-size: none, + large-size: none, + huge-size: none, + page-number-size: none, + code-block-scale: none, + code-inline-scale: none, + body, +) = { + // Calculate effective font sizes (use override if provided, otherwise theme default) + let effective-font-size-base = pick-first(base-size, font-size-base) + let effective-code-block-scale = pick-first( + code-block-scale, + font-scale-code-block, + ) + let effective-code-inline-scale = pick-first( + code-inline-scale, + font-scale-code-inline, + ) // Resolve font families + let effective-font = pick-first(font, font-family-text) + let effective-code-font = pick-first(code-font, font-family-code) + let effective-math-font = pick-first(math-font, font-family-math) // Global text and styling configuration + show: set text( + font: effective-font, + size: effective-font-size-base, + fill: font-color-base, + ) + show math.equation: set text(font: effective-math-font) // Heading styles use em-based defaults so they scale proportionally with base-size. + // Explicit pt overrides take precedence over the em-based defaults. + show heading.where(level: 1): set text( + size: pick-first(heading-1-size, 1.11em), + weight: heading-weight-1, + fill: heading-color-1, + ) + show heading.where(level: 2): set text( + size: pick-first(heading-2-size, 1em), + weight: heading-weight-2, + fill: heading-color-2, + ) + show heading.where(level: 3): set text( + size: pick-first(heading-3-size, 1em), + weight: heading-weight-3, + fill: heading-color-3, + ) // Publish effective sizes via state so slide functions can read them. + // Sizes that aren't overridden explicitly use the module-level defaults, + // which means they don't auto-scale with base-size. Use em-based values + // in the state to get proportional scaling where appropriate. + _bips-sizes.update(( + slide-title: pick-first(slide-title-size, font-size-slide-title), + slide-title-only: font-size-slide-title-only, + slide-subtitle: pick-first(slide-subtitle-size, font-size-slide-subtitle), + page-number: pick-first(page-number-size, font-size-page-number), + small: pick-first(small-size, font-size-small), + tiny: pick-first(tiny-size, font-size-tiny), + large: pick-first(large-size, font-size-large), + huge: pick-first(huge-size, font-size-huge), + title-align: title-align, + )) // Emphasis (_text_) in BIPS blue (color only, no italic) + show emph: it => text( + fill: font-color-emphasis, + style: "italic", + weight: "regular", + )[#it.body] // Strong text (*text*) in BIPS blue (color only, no bold) + show strong: it => text(fill: font-color-strong, weight: "bold")[#it.body] // Links in BIPS blue with thin underline to distinguish from emphasis + show link: it => underline(text(fill: bips-blue)[#it]) // Table styling - set elegant defaults + set table( + stroke: none, + fill: (_, y) => if y == 0 { bips-blue.lighten(85%) } else { none }, + inset: (x: 0.7em, y: 0.6em), + ) // Add subtle borders around tables + show table: it => block( + stroke: ( + top: 1pt + bips-blue.lighten(50%), + bottom: 1pt + bips-blue.lighten(50%), + ), + inset: 0pt, + it, + ) // List styling with configurable spacing + // Spacing uses `set` (not `show`) so users can override with local `#set list(spacing: ...)` + set list(spacing: list-spacing) + set enum(spacing: enum-spacing) + // top-edge/bottom-edge ensure consistent line metrics so bullet markers + // stay aligned with text even when emojis or other tall glyphs are present. + // Tighter par leading compensates for the taller ascender line height on line breaks within items. + show list: set text( + fill: font-color-base, + top-edge: "ascender", + bottom-edge: "descender", + ) + show list: set par(leading: 0.4em) + // Nested lists/enums get tighter spacing (including cross-type nesting) + show list: it => { + show list: set list(spacing: 0.4em) + show enum: set enum(spacing: 0.4em) + it + } + show enum: set text( + fill: font-color-base, + top-edge: "ascender", + bottom-edge: "descender", + ) + show enum: set par(leading: 0.4em) + show enum: it => { + show enum: set enum(spacing: 0.4em) + show list: set list(spacing: 0.4em) + it + } // Code styling - Fira Mono pairs with Fira Sans for consistent metrics + show raw: set text(font: effective-code-font) + show raw.where(block: true): set text(size: effective-code-block-scale * 1em) + show raw.where(block: false): set text( + size: effective-code-inline-scale * 1em, + ) // Use Touying's infrastructure with BIPS customizations + touying-slides( + config-page( + ..utils.page-args-from-aspect-ratio(aspect-ratio), + margin: (top: 1.55cm, bottom: 1.55cm, left: 1.55cm, right: 1.75cm), + background: bips-background(show-logo: true), + ), + body, + ) +} + +// =================================================================== +// SLIDE TYPE DEFINITIONS +// =================================================================== + +// ------------------------------------------------------------------- +// Content Slides +// ------------------------------------------------------------------- + +#let bips-slide( + title: none, + subtitle: none, + // Content alignment (e.g. center, center + horizon, horizon) + content-align: none, + // Optional font size overrides for this slide + title-size: none, + subtitle-size: none, + text-size: none, + code-block-scale: none, + code-inline-scale: none, + ..args, + body, +) = { + slide(..args)[ + // Page number — placed in content (not background/header) so the counter + // is evaluated per-subslide AFTER Touying's page-preamble steps it, + // giving correct numbering across #pause states. + #place( + top + right, + dx: -0.5cm, + dy: 2.7cm, + context text( + size: _bips-sizes.get().page-number, + fill: font-color-page-number, + weight: font-weight-page-number, + )[#utils.slide-counter.display()], + ) + // Apply slide-specific styling overrides + #show raw.where(block: true): set text( + size: pick-first(code-block-scale, font-scale-code-block) * 1em, + ) + #show raw.where(block: false): set text( + size: pick-first(code-inline-scale, font-scale-code-inline) * 1em, + ) + + // Helper to wrap body with optional alignment and text size + #let render-body(body) = { + let styled = if text-size != none { text(size: text-size)[#body] } else { + body + } + if content-align != none { + // Only add vertical fills when alignment has a vertical component + let has-vertical = ( + content-align == horizon + or content-align == bottom + or content-align + in ( + center + horizon, + center + bottom, + left + horizon, + left + bottom, + right + horizon, + right + bottom, + ) + ) + if has-vertical { v(1fr) } + align(content-align)[#styled] + if has-vertical { v(1fr) } + } else { + styled + } + } + + // Title area is wrapped in context to read state-based sizes. + // IMPORTANT: body/render-body must stay OUTSIDE context to preserve + // Touying's ability to split content at #pause boundaries. + #if title != none or subtitle != none { + // Fixed-height title area keeps gradient line at same position + // regardless of whether subtitle is present + context { + let sizes = _bips-sizes.get() + let h-align = sizes.title-align + box(height: slide-title-area-height, width: 100%)[ + #if title != none and subtitle != none { + // Both title and subtitle - bottom-aligned in the fixed area + align(bottom + h-align)[ + #block(width: 90%)[ + #text( + size: pick-first(title-size, sizes.slide-title), + weight: font-weight-slide-title, + fill: font-color-slide-title, + )[#title] + ] + #v(-0.25em) + #block(width: 90%)[ + #text( + size: pick-first(subtitle-size, sizes.slide-subtitle), + weight: font-weight-slide-subtitle, + fill: font-color-slide-subtitle, + )[#subtitle] + ] + ] + } else if title != none { + // Title only - centered vertically, slightly larger + align(horizon + h-align)[ + #text( + size: pick-first(title-size, sizes.slide-title-only), + weight: font-weight-slide-title, + fill: font-color-slide-title, + )[#title] + ] + } else if subtitle != none { + // Subtitle only - centered vertically + align(horizon + h-align)[ + #text( + size: pick-first(subtitle-size, sizes.slide-subtitle), + weight: font-weight-slide-subtitle, + fill: font-color-slide-subtitle, + )[#subtitle] + ] + } + ] + } + + // Gradient line after title/subtitle - always at same position + rect( + width: 85%, + height: 0.75pt, + fill: gradient.linear( + bips-text-gray, + white, + angle: 0deg, + ), + ) + + v(1em) + + render-body(body) + } else { + render-body(body) + } + ] +} + +// ------------------------------------------------------------------- +// Title Slide +// ------------------------------------------------------------------- + +#let title-slide( + title: none, + subtitle: none, + author: none, + authors: none, // Alternative: array of authors for multi-affiliation support + institute: none, + institutes: none, // Alternative: array of institutes for multi-affiliation support + date: none, + occasion: none, + // Optional font size overrides + title-size: none, + subtitle-size: none, + author-size: none, + institute-size: none, + date-size: none, +) = { + slide( + config: config-common(freeze-slide-counter: true), + setting: body => { + set align(center) + + v(1fr) + + // Title (width constrained to prevent overlap with logo in top-right) + if title != none { + block( + width: 85%, + text( + size: pick-first(title-size, font-size-title-slide-main), + weight: font-weight-title-slide-main, + fill: font-color-title-slide-main, + )[ + #title + ], + ) + } + + v(0.5fr) + + // Subtitle + if subtitle != none { + block( + width: 85%, + text( + size: pick-first(subtitle-size, font-size-title-slide-subtitle), + weight: font-weight-title-slide-subtitle, + fill: font-color-title-slide-subtitle, + )[ + #subtitle + ], + ) + } + + v(1fr) + + // Author(s) - support both single and multiple authors + if authors != none { + // Multiple authors format + block( + text( + size: pick-first(author-size, font-size-title-slide-author), + weight: font-weight-title-slide-author, + fill: font-color-title-slide-author, + )[ + // #authors.join(linebreak()) + #authors.join([#h(1em)]) + ], + ) + } else if author != none { + // Single author format (backward compatibility) + block( + text( + size: pick-first(author-size, font-size-title-slide-author), + weight: font-weight-title-slide-author, + fill: font-color-title-slide-author, + )[ + #author + ], + ) + } + + v(1fr) + + // Institute(s) - support both single and multiple institutes + if institutes != none { + // Multiple institutes format with numbering + block( + text( + size: pick-first(institute-size, font-size-title-slide-institute), + weight: font-weight-title-slide-institute, + fill: font-color-title-slide-institute, + )[ + #for (i, inst) in institutes.enumerate() [ + #super[#(i + 1)] #inst + #if i < institutes.len() - 1 [\ ] + ] + ], + ) + } else if institute != none { + // Single institute format (backward compatibility) + block( + text( + size: pick-first(institute-size, font-size-title-slide-institute), + weight: font-weight-title-slide-institute, + fill: font-color-title-slide-institute, + )[ + #institute + ], + ) + } + + v(1fr) + + // Date + if date != none { + block( + text( + size: pick-first(date-size, font-size-title-slide-date), + weight: font-weight-title-slide-date, + fill: font-color-title-slide-date, + )[ + #date + ], + ) + } + + // Occasion + if occasion != none { + block( + text( + size: pick-first(date-size, font-size-title-slide-date), + weight: font-weight-title-slide-date, + fill: font-color-title-slide-date, + )[ + #occasion + ], + ) + } + }, + )[] +} + +// ------------------------------------------------------------------- +// Section Slide +// ------------------------------------------------------------------- + +#let section-slide( + section-title, + show-logo: true, // Show BIPS logo by default (institutional default) +) = { + slide( + config: utils.merge-dicts( + config-common(freeze-slide-counter: true), + config-page(background: bips-background(show-logo: show-logo)), + ), + )[ + // Invisible heading for PDF outline/bookmarks + #place(hide[#heading(level: 1, outlined: true)[#section-title]]) + + #align(center + horizon)[ + #text( + size: font-size-section-slide, + weight: font-weight-section-slide, + fill: font-color-section-slide, + )[#section-title] + ] + ] +} + +// ------------------------------------------------------------------- +// Bibliography Slide +// ------------------------------------------------------------------- + +/// Display a bibliography slide with references +/// +/// Due to Typst's path resolution, `bibliography()` must be called from +/// the user's document (not inside this package). Pass the result as content. +/// +/// Example: +/// ``` +/// #bibliography-slide(text-size: 14pt)[ +/// #bibliography("references.bib", style: "apa", full: true) +/// ] +/// ``` +#let bibliography-slide( + title: "References", + text-size: none, + content-align: horizon, + body, +) = { + bips-slide(title: title, text-size: text-size, content-align: content-align)[ + #body + ] +} + +// ------------------------------------------------------------------- +// Thanks Slide +// ------------------------------------------------------------------- + +#let thanks-slide( + thanks-text: "Thank you for your attention!", + contact-author: "", + email: "", + qr-url: none, // Optional: URL to generate QR code for (replaces website URL) +) = { + slide( + config: utils.merge-dicts( + config-common(freeze-slide-counter: true), + config-page(background: none), + ), + )[ + // 3-row grid layout: thanks text, QR/website, contact+logo + #grid( + rows: (1fr, 1fr, auto), + row-gutter: 2em, + [ + // Row 1: Thanks message (centered, taking up available space) + #align(center + horizon)[ + #text( + size: font-size-thanks-slide-main, + weight: font-weight-thanks-slide-main, + fill: font-color-thanks-slide-main, + )[ + #thanks-text + ] + ] + ], + [ + // Row 2: QR code or website (centered) + #align(center + bottom)[ + #if qr-url != none [ + // Show QR code when URL is provided + #qrcode(qr-url, width: 4cm, debug: false, quiet-zone: 0, colors: ( + white, + bips-blue, + )) + ] else [ + // Show website URL as before + #text( + size: font-size-thanks-slide-website, + weight: font-weight-thanks-slide-website, + fill: font-color-thanks-slide-website, + )[ + www.leibniz-bips.de + ] + ] + ] + ], + [ + // Row 3: Contact information and logo + #grid( + columns: (1fr, 1fr), + align: (right, left), + gutter: 2em, + [ + #align(right)[ + #text( + size: font-size-thanks-slide-contact, + weight: font-weight-thanks-slide-contact, + fill: font-color-thanks-slide-contact, + )[ + *Contact* + + #text(fill: font-color-thanks-slide-website)[#contact-author]\ + Leibniz Institute for Prevention Research\ + and Epidemiology -- BIPS\ + Achterstraße 30\ + 28359 Bremen\ + Germany + + #if email != "" [ + #text(fill: font-color-thanks-slide-website)[#email] + ] + ] + ] + ], + [ + #align(left)[ + #image("bips-logo.png", width: 5.5cm) + ] + ], + ) + ], + ) + ] +} + +// ------------------------------------------------------------------- +// Empty Slide +// ------------------------------------------------------------------- + +#let empty-slide(body) = { + slide( + config: utils.merge-dicts( + config-common(freeze-slide-counter: true), + config-page(background: bips-background(show-logo: false)), + ), + )[#body] +} + +// =================================================================== +// LAYOUT AND COLOR UTILITIES +// =================================================================== + +// ------------------------------------------------------------------- +// Color Utility Functions +// ------------------------------------------------------------------- + +/// Apply BIPS blue color to text +/// Example: #blue[This text is blue] +#let blue(content) = text(fill: bips-blue)[#content] + +/// Apply BIPS logo blue color to text +/// Example: #logo-blue[This text is the same shade of blue as the BIPS logo] +#let logo-blue(content) = text(fill: bips-logo-blue)[#content] + +/// Apply BIPS orange color to text +/// Example: #orange[This text is orange] +#let orange(content) = text(fill: bips-orange)[#content] + +/// Apply BIPS green color to text +/// Example: #green[This text is green] +#let green(content) = text(fill: bips-green)[#content] + +/// Apply gray color to text +/// Example: #gray[This text is gray] +#let gray(content) = text(fill: bips-text-gray)[#content] + +// ------------------------------------------------------------------- +// Author Affiliation Helper +// ------------------------------------------------------------------- + +/// Helper function to format author with superscript affiliations +/// Can take single number: inst(1) or multiple numbers: inst(1,4,5) +#let inst(..numbers) = { + let nums = numbers.pos() + if nums.len() == 0 { + "" + } else { + super[#nums.map(str).join(",")] + } +} + +// ------------------------------------------------------------------- +// Multi-Column Layout Helpers +// ------------------------------------------------------------------- + +/// Two-column layout with equal columns by default +/// +/// Example: #two-columns[Left content][Right content] +/// With options: #two-columns(gutter: 2em)[Left][Right] +#let two-columns( + gutter: 1em, + columns: (1fr, 1fr), + ..args, + left, + right, +) = { + grid( + columns: columns, + gutter: gutter, + ..args, + left, + right, + ) +} + +/// Three-column layout with equal columns by default +/// +/// Example: #three-columns[Left][Center][Right] +/// With options: #three-columns(gutter: 1.5em, columns: (1fr, 2fr, 1fr))[L][C][R] +#let three-columns( + gutter: 1em, + columns: (1fr, 1fr, 1fr), + ..args, + left, + center, + right, +) = { + grid( + columns: columns, + gutter: gutter, + ..args, + left, + center, + right, + ) +} + +// ------------------------------------------------------------------- +// Callout Blocks +// ------------------------------------------------------------------- + +/// Create compact styled callout blocks with inline icons +/// +/// Available types: note, tip, warning, important +/// Displays icon inline with content for space efficiency +/// +/// Example: #callout(type: "warning")[Content here] +#let callout( + type: "note", + title: none, + icon: none, + body, +) = { + // Color schemes for different callout types + let colors = ( + note: (border: bips-blue, bg: bips-blue.lighten(90%), icon: bips-blue), + tip: (border: bips-green, bg: bips-green.lighten(90%), icon: bips-green), + warning: ( + border: bips-orange, + bg: bips-orange.lighten(90%), + icon: bips-orange, + ), + important: (border: red, bg: red.lighten(90%), icon: red), + ) + + // Default icons for each type + let icons = ( + note: "📝", + tip: "💡", + warning: "⚠", + important: "❗", + ) + + let color-scheme = colors.at(type, default: colors.note) + let default-icon = icons.at(type, default: icons.note) + let display-icon = pick-first(icon, default-icon) + + block( + width: 100%, + stroke: (left: 4pt + color-scheme.border), + fill: color-scheme.bg, + inset: (left: 0.8em, right: 0.8em, top: 0.5em, bottom: 0.5em), + radius: (right: 4pt), + below: 0.8em, + )[ + #if title != none { + // When title is provided, show icon + title on separate line as before + text( + size: 0.9em, + weight: "bold", + fill: color-scheme.icon, + )[ + #if display-icon != none [#display-icon ] + #title + ] + v(0.3em) + body + } else { + // Default: icon inline with content, no title + if display-icon != none [ + #text(fill: color-scheme.icon, size: 0.9em)[#display-icon] #h(0.5em) + ] + body + } + ] +} + +// ------------------------------------------------------------------- +// Miscellaneous Helpers +// ------------------------------------------------------------------- + +/// Convenience function for vertical fill +#let vfill = v(1fr) + +/// Compact list/enum spacing for tight layouts (e.g. multi-column slides) +/// +/// Example: #compact[- Item A \ - Item B \ - Item C] +#let compact(spacing: 0.4em, leading: 0.4em, body) = { + show list: set list(spacing: spacing) + show enum: set enum(spacing: spacing) + set par(leading: leading) + show list: set text(top-edge: "cap-height", bottom-edge: "baseline") + show enum: set text(top-edge: "cap-height", bottom-edge: "baseline") + body +} diff --git a/packages/preview/bypst/0.2.0/thumbnail.png b/packages/preview/bypst/0.2.0/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..6373dc2e5c534958b2e24e291fb89a0dbd94a2f2 GIT binary patch literal 124592 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"] +license = "MIT" +description = "Create BIPS-branded academic presentations with Touying." +repository = "https://github.com/bips-hb/bips-typst" +keywords = [ + "presentation", + "slides", + "academic", + "beamer", + "BIPS", + "Leibniz Institute for Prevention Research and Epidemiology", +] +categories = ["presentation"] +compiler = "0.12.0" +exclude = [ + "gallery/", + "tests/", + "debug/", + "*.pdf", + "justfile", + "CLAUDE.md", + ".github/", +] + +[tool.tyler] +srcdir = "." +ignore = [ + "dist{,/**}", + ".git{,/**,/**/.*}", + ".github{,/**}", + ".claude{,/**}", + ".DS_Store", + ".gitignore", + ".fonts{,/**}", + "_site{,/**}", + "debug{,/**}", + "gallery{,/**}", + "tests{,/**,/**/.*}", + "*.pdf", + "justfile", + "CLAUDE.md", + "CLAUDE.local.md", + "TODO.md", +] + +[template] +path = "template" +entrypoint = "basic.typ" +thumbnail = "thumbnail.png" From 7c115d26802f7727a636b920b219046627043483 Mon Sep 17 00:00:00 2001 From: Lukas Burk Date: Tue, 7 Apr 2026 17:15:59 +0200 Subject: [PATCH 2/6] Update code block language --- packages/preview/bypst/0.2.0/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/preview/bypst/0.2.0/README.md b/packages/preview/bypst/0.2.0/README.md index 359f0306ef..b0571cf70e 100644 --- a/packages/preview/bypst/0.2.0/README.md +++ b/packages/preview/bypst/0.2.0/README.md @@ -226,7 +226,7 @@ After editing theme files, run `just install` before compiling. ### Project Structure -``` +```txt bypst.typ # package entrypoint theme.typ # theme implementation bips-logo.png # logo asset From b44cdf476f6c3b6bfcf7e101e9a70b2fd06effe3 Mon Sep 17 00:00:00 2001 From: Lukas Burk Date: Tue, 7 Apr 2026 17:18:54 +0200 Subject: [PATCH 3/6] Use kebab-case for institute shorthand --- packages/preview/bypst/0.2.0/CHANGELOG.md | 1 + packages/preview/bypst/0.2.0/README.md | 6 +++--- packages/preview/bypst/0.2.0/template/basic.typ | 2 +- packages/preview/bypst/0.2.0/template/complete.typ | 2 +- packages/preview/bypst/0.2.0/theme.typ | 4 ++-- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/preview/bypst/0.2.0/CHANGELOG.md b/packages/preview/bypst/0.2.0/CHANGELOG.md index e56601e102..ab97ab039b 100644 --- a/packages/preview/bypst/0.2.0/CHANGELOG.md +++ b/packages/preview/bypst/0.2.0/CHANGELOG.md @@ -29,6 +29,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - GitHub Actions workflow to compile gallery demos and deploy previews to GitHub Pages ### Changed +- Renamed built-in institute name variables to kebab case for consistency: `bips_en` -> `bips-en`, `bips_de` -> `bips-de`. - **Upgraded Touying from 0.6.1 to 0.7.0** with new API for aspect ratios, config parameters, and page setup - Page numbers use Touying's logical slide counter rendered in slide content via `place()`, fixing off-by-one errors on animated slides - Slides without page numbers (`title-slide`, `section-slide`, `thanks-slide`, `empty-slide`) freeze the slide counter so numbering is sequential without gaps diff --git a/packages/preview/bypst/0.2.0/README.md b/packages/preview/bypst/0.2.0/README.md index b0571cf70e..28edebbeaa 100644 --- a/packages/preview/bypst/0.2.0/README.md +++ b/packages/preview/bypst/0.2.0/README.md @@ -13,7 +13,7 @@ A 16:9 presentation template for [BIPS](https://www.leibniz-bips.de/) using [Typ #title-slide( title: "Your Presentation Title", author: "Your Name", - institute: bips_en, // or bips_de + institute: bips-en, // or bips-de date: datetime.today().display(), ) @@ -153,8 +153,8 @@ For lighter adjustments, `#set list(spacing: 0.4em)` works as a local override. ### Institutional names ```typst -#bips_en // Leibniz Institute for Prevention Research and Epidemiology — BIPS -#bips_de // Leibniz-Institut für Präventionsforschung und Epidemiologie — BIPS +#bips-en // Leibniz Institute for Prevention Research and Epidemiology — BIPS +#bips-de // Leibniz-Institut für Präventionsforschung und Epidemiologie — BIPS ``` ## Animations diff --git a/packages/preview/bypst/0.2.0/template/basic.typ b/packages/preview/bypst/0.2.0/template/basic.typ index db32bd96ed..dc8004034d 100644 --- a/packages/preview/bypst/0.2.0/template/basic.typ +++ b/packages/preview/bypst/0.2.0/template/basic.typ @@ -8,7 +8,7 @@ title: "Your Presentation Title", subtitle: "Optional Subtitle", author: "Your Name", - institute: bips_en, + institute: bips-en, date: datetime.today().display(), ) diff --git a/packages/preview/bypst/0.2.0/template/complete.typ b/packages/preview/bypst/0.2.0/template/complete.typ index 69d93ccd7a..e662346795 100644 --- a/packages/preview/bypst/0.2.0/template/complete.typ +++ b/packages/preview/bypst/0.2.0/template/complete.typ @@ -12,7 +12,7 @@ [John Smith#inst(1)], ), institutes: ( - bips_en, + bips-en, "University of Bremen", ), date: datetime.today().display(), diff --git a/packages/preview/bypst/0.2.0/theme.typ b/packages/preview/bypst/0.2.0/theme.typ index 8131c86f74..90f55e562b 100644 --- a/packages/preview/bypst/0.2.0/theme.typ +++ b/packages/preview/bypst/0.2.0/theme.typ @@ -14,8 +14,8 @@ // INSTITUTIONAL SHORTCUTS // =================================================================== -#let bips_en = [Leibniz Institute for Prevention Research and Epidemiology --- BIPS] -#let bips_de = [Leibniz-Institut für Präventionsforschung und Epidemiologie --- BIPS] +#let bips-en = [Leibniz Institute for Prevention Research and Epidemiology --- BIPS] +#let bips-de = [Leibniz-Institut für Präventionsforschung und Epidemiologie --- BIPS] // =================================================================== // COLOR DEFINITIONS From 6af9605bf3e26ec96cc24b1ccb13dda9e1651c37 Mon Sep 17 00:00:00 2001 From: Lukas Burk Date: Wed, 8 Apr 2026 20:00:53 +0200 Subject: [PATCH 4/6] Minor text sizing fix --- packages/preview/bypst/0.2.0/theme.typ | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/preview/bypst/0.2.0/theme.typ b/packages/preview/bypst/0.2.0/theme.typ index 90f55e562b..f57c7205e6 100644 --- a/packages/preview/bypst/0.2.0/theme.typ +++ b/packages/preview/bypst/0.2.0/theme.typ @@ -410,6 +410,8 @@ let sizes = _bips-sizes.get() let h-align = sizes.title-align box(height: slide-title-area-height, width: 100%)[ + // Fix text size so block spacing doesn't scale with base-size + #set text(size: font-size-base) #if title != none and subtitle != none { // Both title and subtitle - bottom-aligned in the fixed area align(bottom + h-align)[ @@ -495,6 +497,8 @@ config: config-common(freeze-slide-counter: true), setting: body => { set align(center) + // Fix text size so block spacing (1.2em) doesn't scale with base-size + set text(size: font-size-base) v(1fr) From e49fd1fa7a138305fdb6071076f48132458fba33 Mon Sep 17 00:00:00 2001 From: Lukas Burk Date: Thu, 9 Apr 2026 11:35:48 +0200 Subject: [PATCH 5/6] Bump touying --- packages/preview/bypst/0.2.0/bypst.typ | 6 +++--- packages/preview/bypst/0.2.0/theme.typ | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/preview/bypst/0.2.0/bypst.typ b/packages/preview/bypst/0.2.0/bypst.typ index 157497d507..b37fb29ed1 100644 --- a/packages/preview/bypst/0.2.0/bypst.typ +++ b/packages/preview/bypst/0.2.0/bypst.typ @@ -2,9 +2,9 @@ #import "theme.typ": * // Note: Basic Touying functions like `pause` and `slide` are already available -// through theme.typ's `#import "@preview/touying:0.7.0": *` +// through theme.typ's `#import "@preview/touying:0.7.1": *` // Re-export additional Touying utilities for user convenience // These animation and utility functions are useful but not in Touying's main namespace -#import "@preview/touying:0.7.0": alternatives, meanwhile, only, uncover -#import "@preview/touying:0.7.0": utils // Includes slide-counter and other utilities +#import "@preview/touying:0.7.1": alternatives, meanwhile, only, uncover +#import "@preview/touying:0.7.1": utils // Includes slide-counter and other utilities diff --git a/packages/preview/bypst/0.2.0/theme.typ b/packages/preview/bypst/0.2.0/theme.typ index f57c7205e6..1ee0da34ca 100644 --- a/packages/preview/bypst/0.2.0/theme.typ +++ b/packages/preview/bypst/0.2.0/theme.typ @@ -1,4 +1,4 @@ -#import "@preview/touying:0.7.0": * +#import "@preview/touying:0.7.1": * #import "@preview/codetastic:0.2.2": qrcode // =================================================================== From 63ba37003b223070cab4792ed7b66cece85951a3 Mon Sep 17 00:00:00 2001 From: Lukas Burk Date: Thu, 9 Apr 2026 19:33:52 +0200 Subject: [PATCH 6/6] Use @preview import, switch to placeholder logo --- packages/preview/bypst/0.2.0/README.md | 34 ++++++++++++++++---- packages/preview/bypst/0.2.0/logo.png | Bin 0 -> 45169 bytes packages/preview/bypst/0.2.0/theme.typ | 41 ++++++++++++++++++------ packages/preview/bypst/0.2.0/typst.toml | 2 ++ 4 files changed, 60 insertions(+), 17 deletions(-) create mode 100644 packages/preview/bypst/0.2.0/logo.png diff --git a/packages/preview/bypst/0.2.0/README.md b/packages/preview/bypst/0.2.0/README.md index 28edebbeaa..1cc335827b 100644 --- a/packages/preview/bypst/0.2.0/README.md +++ b/packages/preview/bypst/0.2.0/README.md @@ -2,12 +2,10 @@ A 16:9 presentation template for [BIPS](https://www.leibniz-bips.de/) using [Typst](https://typst.app/) and [Touying](https://touying-typ.github.io/). Based on the institutional style from [bips-beamer](http://github.com/bips-hb/bips-beamer). -**Version: 0.2.0** - ## Quick Start ```typst -#import "@local/bypst:0.2.0": * +#import "@preview/bypst:0.2.0": * #show: bips-theme #title-slide( @@ -36,7 +34,15 @@ A 16:9 presentation template for [BIPS](https://www.leibniz-bips.de/) using [Typ ## Installation -Clone and install locally: +Available from the [Typst package registry](https://typst.app/universe/package/bypst) — no installation needed: + +```typst +#import "@preview/bypst:0.2.0": * +``` + +### Local development + +To work on the theme itself, clone and install locally: ```sh git clone https://github.com/bips-hb/bips-typst.git @@ -44,7 +50,7 @@ cd bips-typst just install ``` -Then import in any `.typ` file: +Then use the local import instead: ```typst #import "@local/bypst:0.2.0": * @@ -172,6 +178,20 @@ The theme re-exports Touying's animation functions: ## Global Customization +### Logo + +The theme ships with a placeholder logo. Replace it with your own: + +```typst +#show: bips-theme.with( + logo: image("my-logo.png"), +) +``` + +Set `logo: none` to hide the logo entirely. + +### Fonts and sizes + ```typst #show: bips-theme.with( aspect-ratio: "16-9", // default @@ -229,7 +249,7 @@ After editing theme files, run `just install` before compiling. ```txt bypst.typ # package entrypoint theme.typ # theme implementation -bips-logo.png # logo asset +logo.png # placeholder logo (replace with your own) typst.toml # package metadata template/ # Typst Universe templates gallery/ # example presentations @@ -251,7 +271,7 @@ For the best results, install the Fira fonts. Override with the `font:`, `code-f ## Requirements - Typst >= 0.12.0 -- Dependencies: touying 0.7.0, codetastic 0.2.2 (resolved automatically) +- Dependencies: touying 0.7.1, codetastic 0.2.2 (resolved automatically) ## License diff --git a/packages/preview/bypst/0.2.0/logo.png b/packages/preview/bypst/0.2.0/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b99850f907963580258a9d756cc6f26199e99dab GIT binary patch literal 45169 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

xh zG+Wbb2(~uPI39(xW9mD}{4vS@zBo==&y!YpYyngv3hF;vJ}w$nBjfd*(Z$5E$!;ew z@3$3Zsf6yG3=>d&$j`uVZ)?}1hJ-?J4=8?tBr>xF>3R?B4)Sc}79cw-!&vJ@P`7Ss@ZHt7c2sH8bz*s-9-NN*BGyUigAJd_QrA#$$m z&wGqSKF&afXnq+__LLsSk|vA;If24YuvIAzZ1Z_<@KWYNjLAcL@obiazZ}Vt=7W-= zJUyZ_51?HH@`CMQtACh1oD#6VprOxhycF|PUb%FLbOj1}NT%S-aN8?Z?#~NW?*=P} zJSI}LEbcGy_c>~sGu~x9W(*`Z`xj#8J*j{S44Od@0H7UeRCWf+rQyVeG7JWw{)dOP zxB0@auaLkigyP&V68t+9at7BbEe^?OeP7j>g~CU8$bN;c*GA8T1%)lu?GEEGX^z;o zzk_~k`*ZR%j|n0nV)~!*%AY|4pX`hG6M24W2*?KZFI*!#mnRbpSxfcZ*O)PeZ+x3g zRtTrmK#)!Nv+cTSxULY^z81J?{e-*!*flnE-GSkFj_De4W;bah%lq*p??3a1&DJN; zKwiV+6B0*RSNC8<&joq2>-vhZ=9tWc{x-jabKF`TNcUc%;J<>O)`}vg-X6=F(~X$c zgO-^!qBFVAB+%HGcpVjL@KrDtX@oB(Za)z3{QZ)H5pH;o95}x}=?utiDH#4GjsR`F zzlQe`L%;wD1%U&P44ut99!?PN!f$3^uoP({zJa9WaKRzzvUzQiU!dTQC;8#nRu0*~ zn2yweJjRzkTM~MC;~fa7sIuIX)ZsV;J)~!~wZ~@6E#cuMpuNlX zJuYGkxIhOZw(x0{+uz?wttbC*L=NnXTp)2Qc@4mO2}+oDDj+^M;MuDK0Zt=d}&O3_@9Znh2f1vN0`w!Aa!rOEej zaPI$#>+kA5y$0i%hRNGEWX3^ iTDOD;c0AL7sH=A?L$^N{A;W(rzx>*ygMXR3=Klah$vxr# literal 0 HcmV?d00001 diff --git a/packages/preview/bypst/0.2.0/theme.typ b/packages/preview/bypst/0.2.0/theme.typ index 1ee0da34ca..b84a6a8d2a 100644 --- a/packages/preview/bypst/0.2.0/theme.typ +++ b/packages/preview/bypst/0.2.0/theme.typ @@ -156,6 +156,10 @@ title-align: left, )) +/// State for the logo image, settable via bips-theme(logo: ...). +/// Default is the bundled placeholder; users should replace with their own. +#let _bips-logo = state("bips-logo", image("logo.png")) + /// Render content at a smaller size (scales with base-size) #let small(body) = context text(size: _bips-sizes.get().small)[#body] @@ -172,17 +176,22 @@ // BACKGROUND UTILITY FUNCTIONS // =================================================================== -/// Create background with BIPS logo +/// Create background with logo in top-right corner. /// Page numbers are handled separately via Touying's header system -/// to ensure correct numbering across #pause subslides +/// to ensure correct numbering across #pause subslides. #let bips-background(show-logo: true) = { if show-logo { - place( - top + right, - dx: -1cm, - dy: 1cm, - image("bips-logo.png", width: 3cm), - ) + context { + let logo = _bips-logo.get() + if logo != none { + place( + top + right, + dx: -1cm, + dy: 1cm, + box(width: 3cm, logo), + ) + } + } } } @@ -192,6 +201,10 @@ #let bips-theme( aspect-ratio: "16-9", + /// Logo image displayed in the top-right corner of content slides and on + /// the thanks slide. Pass an `image()` call to override the default placeholder. + /// Set to `none` to hide the logo entirely. + logo: auto, // Title alignment inside the title area box (e.g. left, center, right) // Applies to the horizontal alignment of slide titles/subtitles. title-align: left, @@ -263,7 +276,12 @@ large: pick-first(large-size, font-size-large), huge: pick-first(huge-size, font-size-huge), title-align: title-align, - )) // Emphasis (_text_) in BIPS blue (color only, no italic) + )) + // Update logo state: auto = bundled placeholder, none = no logo, image() = custom + if logo != auto { + _bips-logo.update(logo) + } + // Emphasis (_text_) in BIPS blue (color only, no italic) show emph: it => text( fill: font-color-emphasis, style: "italic", @@ -757,7 +775,10 @@ ], [ #align(left)[ - #image("bips-logo.png", width: 5.5cm) + #context { + let logo = _bips-logo.get() + if logo != none { box(width: 5.5cm, logo) } + } ] ], ) diff --git a/packages/preview/bypst/0.2.0/typst.toml b/packages/preview/bypst/0.2.0/typst.toml index 66eafd7f43..5415ad8979 100644 --- a/packages/preview/bypst/0.2.0/typst.toml +++ b/packages/preview/bypst/0.2.0/typst.toml @@ -24,6 +24,7 @@ exclude = [ "justfile", "CLAUDE.md", ".github/", + "bips-logo.png", ] [tool.tyler] @@ -45,6 +46,7 @@ ignore = [ "CLAUDE.md", "CLAUDE.local.md", "TODO.md", + "bips-logo.png", ] [template]