diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/CHANGELOG.md b/packages/preview/ricopallazzo-uni-theme/0.1.0/CHANGELOG.md new file mode 100644 index 0000000000..53ee232f0e --- /dev/null +++ b/packages/preview/ricopallazzo-uni-theme/0.1.0/CHANGELOG.md @@ -0,0 +1,28 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on *Keep a Changelog* and this project adheres to Semantic Versioning. + +## [0.1.0] - 2026-06-26 + +### Added + +* Initial public release. +* Modern presentation theme built on Touying. +* Automatic title slide. +* Automatic section outline slides. +* Multiple progress indicator styles: + + * Slide + * Section + * Slide-by-section + * Mini slides +* Customizable color themes. +* Branded header and footer. +* Alert box component. +* Configurable logos and presentation metadata. +* Automatic slide numbering. +* Configurable outline prefixes. +* Public Typst package interface through `lib.typ`. + diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/LICENSE b/packages/preview/ricopallazzo-uni-theme/0.1.0/LICENSE new file mode 100644 index 0000000000..3937699cc3 --- /dev/null +++ b/packages/preview/ricopallazzo-uni-theme/0.1.0/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 RicoPallazzo + +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/ricopallazzo-uni-theme/0.1.0/README.md b/packages/preview/ricopallazzo-uni-theme/0.1.0/README.md new file mode 100644 index 0000000000..295005447d --- /dev/null +++ b/packages/preview/ricopallazzo-uni-theme/0.1.0/README.md @@ -0,0 +1,196 @@ +# Ricopallazzo UNI Theme + +A modern, customizable presentation theme for **Typst** built on top of **Touying**. It provides a polished academic presentation layout with automatic section slides, progress indicators, branded headers and footers, and configurable color themes. + +> **Status:** Initial release (v0.1.0) + +--- + +## Features + +* Modern title slide +* Automatic section overview slides +* Branded header and footer +* Multiple progress indicator styles +* Configurable color themes +* Custom alert boxes +* Automatic slide numbering +* Fully compatible with Touying +* Designed for academic and technical presentations + +--- + +## Installation + +Once published on Typst Universe: + +```typst +#import "@preview/ricopallazzo-uni-theme:0.1.0": * +``` + +For local development : + +```typst +#import "@local/ricopallazzo-uni-theme:0.1.0": * +``` + +--- + +## Quick Start + +```typst +#import "@preview/touying:0.7.4": * +#import "@preview/ricopallazzo-uni-theme:0.1.0": * + +#show: ricopallazzo-uni-theme.with( + aspect-ratio: "presentation-16-9", + title: "My Presentation", + short_title: "Presentation", + author: "Alberto Bertoncini", + institute: "University of Milan", + theme: "blue", + logo: "../assets/logo_RGB_negative_circle.png", + logo_name: "../assets/logo_coutour_name.png" +) + +#title-slide() + += Introduction + +== Motivation + +Hello, world! +``` + +--- + +## Configuration + +The theme can be customized through the following parameters. + +| Parameter | Description | Default | +| -------------- | ----------------------------------- | --------------------- | +| `theme` | Color theme | `"blue"` | +| `aspect-ratio` | Presentation aspect ratio | `"16-9"` | +| `title` | Presentation title | — | +| `short_title` | Short title displayed in the footer | — | +| `author` | Author name | — | +| `institute` | Institution | — | +| `logo` | Header logo | `assets/logo_RGB.png` | +| `logo_name` | Title slide logo | `assets/logo_RGB.png` | +| `date` | Display today's date | `true` | +| `progress` | Progress indicator style | `"slide"` | +| `prefix` | Outline bullet style | `"numbering"` | + +--- + +## Progress Indicators + +Four progress visualization modes are available: + +* `slide` +* `section` +* `slide-by-section` +* `mini` + +Example: + +```typst +#show: ricopallazzo-uni-theme.with( + progress: "slide-by-section", +) +``` + +--- + +## Color Themes + +Themes are defined in + +```text +src/themes_colors.typ +``` + +and selected with + +```typst +theme: "orange" +``` + +Adding a new theme only requires defining a new color palette. + +--- + +## Alert Boxes + +The package provides a customizable alert component. + +```typst +#alert-box[ +Important message. +] +``` + +It also supports custom colors and gradients. + +--- + +## Package Structure + +``` +ricopallazzo-uni-theme/ +├── assets/ +│ └── ... +├── src/ +│ ├── theme.typ +│ ├── exports.typ +│ └── themes_colors.typ +├── CHANGELOG.md +├── LICENSE +├── README.md +├── lib.typ +└── typst.toml +``` + +--- + +## Public API + +The package exports: + +* `ricopallazzo-uni-theme` +* `title-slide` +* `alert-box` + +All implementation details remain internal to the package. + +--- + +## Local Development + +Clone the repository and install it as a local Typst package: + +``` +~/.local/share/typst/packages/local/ +└── ricopallazzo-uni-theme/ + └── 0.1.0/ +``` + +Then import it with + +```typst +#import "@local/ricopallazzo-uni-theme:0.1.0": * +``` + +--- + +## License + +This project is released under the MIT License. + +--- + +## Acknowledgements + +This package is built on top of the excellent **Touying** presentation framework and follows the Typst package conventions. + diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/background.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/background.png new file mode 100644 index 0000000000..cdad7e034f Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/background.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/background_alternative.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/background_alternative.png new file mode 100644 index 0000000000..0ddd1e1d6a Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/background_alternative.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/background_negative.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/background_negative.png new file mode 100644 index 0000000000..1a9adca51d Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/background_negative.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/logo_RGB.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/logo_RGB.png new file mode 100644 index 0000000000..3640deafb2 Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/logo_RGB.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/logo_RGB_circle.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/logo_RGB_circle.png new file mode 100644 index 0000000000..23dd3799a4 Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/logo_RGB_circle.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/logo_RGB_name.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/logo_RGB_name.png new file mode 100644 index 0000000000..61cdf287d7 Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/logo_RGB_name.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/logo_RGB_negative.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/logo_RGB_negative.png new file mode 100644 index 0000000000..b59d8ae2aa Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/logo_RGB_negative.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/logo_RGB_negative_circle.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/logo_RGB_negative_circle.png new file mode 100644 index 0000000000..34fdc2a875 Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/logo_RGB_negative_circle.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/logo_coutour_name.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/logo_coutour_name.png new file mode 100644 index 0000000000..00c9364867 Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/assets/logo_coutour_name.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/background.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/background.png new file mode 100644 index 0000000000..cdad7e034f Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/background.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/background_alternative.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/background_alternative.png new file mode 100644 index 0000000000..0ddd1e1d6a Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/background_alternative.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/background_negative.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/background_negative.png new file mode 100644 index 0000000000..1a9adca51d Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/background_negative.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/logo_RGB.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/logo_RGB.png new file mode 100644 index 0000000000..3640deafb2 Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/logo_RGB.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/logo_RGB_circle.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/logo_RGB_circle.png new file mode 100644 index 0000000000..23dd3799a4 Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/logo_RGB_circle.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/logo_RGB_name.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/logo_RGB_name.png new file mode 100644 index 0000000000..61cdf287d7 Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/logo_RGB_name.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/logo_RGB_negative.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/logo_RGB_negative.png new file mode 100644 index 0000000000..b59d8ae2aa Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/logo_RGB_negative.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/logo_RGB_negative_circle.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/logo_RGB_negative_circle.png new file mode 100644 index 0000000000..34fdc2a875 Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/logo_RGB_negative_circle.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/logo_coutour_name.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/logo_coutour_name.png new file mode 100644 index 0000000000..00c9364867 Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/assets/logo_coutour_name.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/main.typ b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/main.typ new file mode 100644 index 0000000000..67889bc21c --- /dev/null +++ b/packages/preview/ricopallazzo-uni-theme/0.1.0/examples/main.typ @@ -0,0 +1,30 @@ +#import "@preview/touying:0.7.4": * +#import "../src/theme.typ": * + +#show: ricopallazzo-uni-theme.with(aspect-ratio: "presentation-16-9", + theme: "orange", + title: "Test Title", + short_title: "Short Test Title", + author: "Alberto Bertoncini", + institute: "UNIMI", + logo: "assets/logo_RGB_negative_circle.png", + logo_name: "assets/logo_coutour_name.png", + progress: "slide-by-section", + prefix: "triangle") + +#title-slide() + += First section +== First Slide +#lorem(100) + +== Second Slide +#lorem(300) + += Second Section + +== First slide + +== Second Slide + + diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/lib.typ b/packages/preview/ricopallazzo-uni-theme/0.1.0/lib.typ new file mode 100644 index 0000000000..1f418d696e --- /dev/null +++ b/packages/preview/ricopallazzo-uni-theme/0.1.0/lib.typ @@ -0,0 +1,5 @@ +#import "src/theme.typ": * + +#let ricopallazzo-uni-theme = ricopallazzo-uni-theme +#let alert-box = alert_box +#let title-slide = title-slide diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/src/exports.typ b/packages/preview/ricopallazzo-uni-theme/0.1.0/src/exports.typ new file mode 100644 index 0000000000..3ca7ede0d8 --- /dev/null +++ b/packages/preview/ricopallazzo-uni-theme/0.1.0/src/exports.typ @@ -0,0 +1,54 @@ +#import "core.typ": ( + alert, + alternatives, + alternatives-cases, + alternatives-fn, + alternatives-match, + appendix, + effect, + empty-slide, + from-wp, + get-first, + get-last, + handout-only, + item-by-item, + item-by-item-fn, + item-by-item-functions, + jump, + lr-navigation, + meanwhile, + next-wp, + not-wp, + only, + pause, + prev-wp, + slide, + speaker-note, + touying-diagram, + touying-equation, + touying-fn-wrapper, + touying-fn-wrapper-raw, + touying-mitex, + touying-raw, + touying-recall, + touying-reduce, + touying-reducer, + touying-set-config, // touying-get-config from configs.typ + touying-slide, + touying-slide-wrapper, + uncover, + until-wp, + waypoint, +) +#import "configs.typ": ( + config-colors, config-common, config-info, config-methods, config-page, + config-store, default-config, touying-get-config, +) +#import "slides.typ": touying-slides +#import "utils.typ" +#import "magic.typ" +#import "pdfpc.typ" +#import "components.typ": cols, lazy-h, lazy-layout, lazy-v, side-by-side +#import "components.typ" + +#import "extern.typ": touying-disable-warnings, touying-enable-warnings diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/src/theme.typ b/packages/preview/ricopallazzo-uni-theme/0.1.0/src/theme.typ new file mode 100644 index 0000000000..452a605d40 --- /dev/null +++ b/packages/preview/ricopallazzo-uni-theme/0.1.0/src/theme.typ @@ -0,0 +1,447 @@ +#import "@preview/touying:0.7.4": * +#import "themes_colors.typ":* + +#let alert_box(content, angle: 0deg, content_color: black) = { + box( + radius: 0.1em, + stroke: (2pt + oklch(40%, 0.2, angle, 100%)), + fill: oklch(95%, 0.05, angle, 80%), + inset: (x: 0.3em), + outset: (y: 0.3em), + )[#text(content_color)[#content]] +} + +#let section-counter = counter("section") + +#show heading.where(level: 1): it => { + section-counter.step() + it +} + + +#let dots( + current, + total, + active-color, + section-breaks: (), + inactive-color: none, + stroke-color: none, + radius: 0.15cm, + spacing: 0.1cm, +)={ + context { + + let elems = () + + let slides = query().filter( + it => utils.is-kind(it, "touying-new-slide") + ) + + for i in range(calc.min(total, slides.len())) { + + if section-breaks.contains(i + 1) { + elems.push(h(0.5em)) + } + + let slide = slides.at(i) + + elems.push( + link(slide.location())[ + #circle( + radius: radius, + fill: if i + 1 <= current { + active-color + } else { + inactive-color + }, + stroke: 2pt + if stroke-color == none { + active-color + } else { + stroke-color + }, + ) + ] + ) + } + + stack( + dir: ltr, + spacing: spacing, + ..elems, + ) + } +} + + +#let progress-indicator(self) = context { + let active = self.colors.neutral-lightest + let light-grey = self.colors.light-grey + let dark-grey = self.colors.dark-grey + + if self.store.progress == "slide" { + + context { + let current = utils.slide-counter.get().first() + let total = utils.slide-counter.final().first() + + dots(current, total, active) + } + } + + else if self.store.progress == "section" { + + context { + let current_page = utils.current-heading().location().page() + + let sections = query(heading.where(level: 1)) + + let current_idx = 0 + + for sec in sections { + if sec.location().page() <= current_page { + current_idx += 1 + } + } + dots(current_idx, sections.len(), active) + } + + } + + else if self.store.progress == "slide-by-section" { + + context{ + let current = utils.slide-counter.get().first() + let total = utils.slide-counter.final().first() + + let section_breaks = query(heading.where(level: 1)).map(sec => sec.location().page()).slice(1) + + dots( + current, + total, + active, + section-breaks: section_breaks, + ) + } + + } + + else if self.store.progress == "mini" { + context components.mini-slides(display-section:false) + } +} + +#let header(self) = { + set align(top) + + show: components.cell.with( + fill: self.colors.primary, + inset: ( + top: 0.1em, + right: 1em, + bottom: 0em, + left: 1em, + ) + ) + + let outline = utils.is-kind(self, "new-section-slide") + + + grid( + columns: (1fr, 1fr, auto), + gutter: 1em, + [ + #v(1em) + #stack( + dir: ttb, + spacing: 0.15em, + + text( + size: .7em, + fill: self.colors.neutral-lightest, + utils.display-current-heading(level: 1), + ), + + text( + size: 1.5em, + fill: self.colors.neutral-lightest, + if self.store.title != none { + utils.call-or-display(self, self.store.title) + } else { + utils.display-current-heading(level: 2) + }, + ), + ) + ], + [ + #if not self.store.is_outline{ + align(center + horizon)[ + #progress-indicator(self) + ]} + ], + [ + #if self.store.logo != none { + image(self.store.logo, height: 1.85cm) + } + ], + ) + +} + +#let footer(self) = { + set align(bottom) + + grid( + columns: (2fr, auto), + gutter: 0pt, + // Left part + grid( + columns: (2fr, 1fr), + rect( + fill: self.colors.neutral-darkest, // or a light theme color + width:100%, + inset: (x: 0.8em, y: 0.2em), + )[ + #set text(size: 0.8em, fill: black) + + #align(right)[ + #utils.call-or-display(self, self.store.short_title) + ] + + ], + + rect( + fill: self.colors.neutral-lightest, // or a light theme color + width:100%, + inset: (x: 0.8em, y: 0.2em), + )[ + #set text(size: 0.8em, fill: black) + + #utils.call-or-display(self, self.store.author) + + ] + ), + + // Right part + rect( + fill: self.colors.primary, + inset: (x: 0.8em, y: 0.2em), + )[ + #set text( + size: 0.8em, + fill: self.colors.neutral-lightest, + weight: "bold", + ) + + #context[ + #utils.slide-counter.display() / #utils.last-slide-number + ] + ], + ) +} +#let title-slide( + ..args, +) = touying-slide-wrapper(self => { + self = utils.merge-dicts( + self, + config-page( + margin: (top:0pt, left:5%, bottom:0pt, right:0pt), + header: none, + footer: none, + ), + ) + + touying-slide( + self: self, + ..args, + [ + #place(top + right)[ + #polygon( + fill: self.colors.primary, + (70%, 0%), + (100%, 0%), + (100%, 100%), + (60%, 100%) + , + ) + ] + + #place(right + bottom, dx:-1%, dy:-3%)[ + #image( + self.store.logo_name, + width: 10cm, + ) + ] + // Foreground + #place(left + horizon)[ + #block(width: 55%)[ + #align(left + horizon)[ + #block(width: 60%)[ + #stack( + spacing: 1em, + + text(size: 34pt, weight: "bold")[#self.store.title], + + if self.store.title != none { + text(size: 22pt, fill: self.colors.dark-grey)[#self.store.short_title] + }, + + v(2em), + + if self.store.author != none { + text(size: 18pt)[#self.store.author] + }, + + if self.store.institute != none { + text(size: 16pt)[#self.store.institute] + }, + + if self.store.date { + text(size: 16pt)[#datetime.display(datetime.today())] + }, + ) + ] + ] + ]] + ] + ) +}) + +#let new-section-slide( + ..args + ) = touying-slide-wrapper(self => { + self.store.is_outline = true + self = utils.merge-dicts( + self, + config-page( + header: header, + footer: footer, // or simply omit if you want the normal footer + ), + ) + + + + touying-slide( + self: self, + [ + #show outline.entry: it => { + + let prefix = if self.store.prefix == "triangle" { + text( + fill: self.colors.primary, + size: 0.7em, + )[▶] + } else if self.store.prefix == "numbering" { + it.prefix() + } else { + [] + } + + let relationship = utils.section-relationship(it) + let current = utils.current-heading() + + let alpha = if relationship < 0 { + 40% + } else { + 100% + } + + let weight = if relationship == 0 and current.level == it.level { + "bold" + } else { + "regular" + } + + let size = 15pt + + if calc.abs(relationship) < 0 { + text(fill: self.colors.dark-grey, weight:weight, size: size, it) + } else { + text( + fill: utils.update-alpha(self.colors.dark-grey, alpha), + weight: weight, + size:size, + link( + it.element.location(), + it.indented(prefix, it.inner()), + ), + ) + } + } + #outline(title: none, depth:1) + + ], + ) + }) + +#let slide(title: auto, ..args) = touying-slide-wrapper(self => { + self.store.is_outline = false + if title != auto { + self.store.title = title + } + self = utils.merge-dicts( + self, + config-page( + header: header, + footer: footer, + ), + ) + touying-slide(self: self, ..args) +}) + +#let ricopallazzo-uni-theme( + aspect-ratio: "presentation-16-9", + theme: "blue", + title: none, + short_title: none, + author: none, + institute: none, + date: true, + footer: none, + logo: "../assets/logo_RGB_negative_circle.png", + logo_name: "../assets/logo_coutour_name.png", + progress: "slide", + prefix: "numbering", + ..args, + body, +) = { + + let colors = themes.at(theme, default: themes.blue) + set text(size: 20pt) + + show: touying-slides.with( + config-page( + paper: aspect-ratio, + margin: (top: 4em, bottom: 1.5em, x: 2em), + ), + config-common( + slide-fn: slide, + new-section-slide-fn: new-section-slide, + title-slide-fn: title-slide, + ), + config-methods( + alert: utils.alert-with-primary-color, + ), + config-colors( + primary: colors.primary, + neutral-lightest: colors.lightest, + neutral-darkest: colors.darkest, + light-grey: colors.light-grey, + dark-grey: colors.dark-grey + ), + config-store( + title: title, + short_title: short_title, + author: author, + institute: institute, + date:date, + footer: footer, + logo: logo, + logo_name: logo_name, + progress: progress, + prefix: prefix + ), + ..args, + ) + + body +} diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/src/themes_colors.typ b/packages/preview/ricopallazzo-uni-theme/0.1.0/src/themes_colors.typ new file mode 100644 index 0000000000..a18f0364b1 --- /dev/null +++ b/packages/preview/ricopallazzo-uni-theme/0.1.0/src/themes_colors.typ @@ -0,0 +1,43 @@ +#import "@preview/touying:0.7.4": * + +#let themes = ( + blue: ( + primary: rgb(0, 51, 102), + lightest: rgb(204, 214, 224), + darkest: rgb(128, 153, 179), + light-grey: rgb(235, 235, 235), + dark-grey: rgb(60, 60, 60), + ), + + green: ( + primary: rgb(20, 185, 120), + lightest: rgb(208, 236, 224), + darkest: rgb(110, 165, 140), + light-grey: rgb(235, 235, 235), + dark-grey: rgb(60, 60, 60), + ), + + red: ( + primary: rgb(190, 60, 55), + lightest: rgb(236, 214, 213), + darkest: rgb(183, 140, 138), + light-grey: rgb(235, 235, 235), + dark-grey: rgb(60, 60, 60), + ), + + orange: ( + primary: rgb(230, 130, 20), + lightest: rgb(242, 225, 205), + darkest: rgb(192, 160, 128), + light-grey: rgb(235, 235, 235), + dark-grey: rgb(60, 60, 60), + ), + + yellow: ( + primary: rgb(200, 155, 20), + lightest: rgb(239, 231, 204), + darkest: rgb(179, 166, 128), + light-grey: rgb(235, 235, 235), + dark-grey: rgb(60, 60, 60), + ), +) diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/background.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/background.png new file mode 100644 index 0000000000..cdad7e034f Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/background.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/background_alternative.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/background_alternative.png new file mode 100644 index 0000000000..0ddd1e1d6a Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/background_alternative.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/background_negative.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/background_negative.png new file mode 100644 index 0000000000..1a9adca51d Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/background_negative.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/logo_RGB.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/logo_RGB.png new file mode 100644 index 0000000000..3640deafb2 Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/logo_RGB.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/logo_RGB_circle.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/logo_RGB_circle.png new file mode 100644 index 0000000000..23dd3799a4 Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/logo_RGB_circle.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/logo_RGB_name.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/logo_RGB_name.png new file mode 100644 index 0000000000..61cdf287d7 Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/logo_RGB_name.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/logo_RGB_negative.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/logo_RGB_negative.png new file mode 100644 index 0000000000..b59d8ae2aa Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/logo_RGB_negative.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/logo_RGB_negative_circle.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/logo_RGB_negative_circle.png new file mode 100644 index 0000000000..34fdc2a875 Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/logo_RGB_negative_circle.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/logo_coutour_name.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/logo_coutour_name.png new file mode 100644 index 0000000000..00c9364867 Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/assets/logo_coutour_name.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/template/main.typ b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/main.typ new file mode 100644 index 0000000000..f8e2c78e09 --- /dev/null +++ b/packages/preview/ricopallazzo-uni-theme/0.1.0/template/main.typ @@ -0,0 +1,30 @@ +#import "@preview/touying:0.7.4": * +#import "@preview/ricopallazzo-uni-theme:0.1.0": * + +#show: ricopallazzo-uni-theme.with( + aspect-ratio: "presentation-16-9", + title: "Presentation title", + short_title: "Presentation", + author: "Your Name", + institute: "Your Institution", + + theme: "blue", +) + +#title-slide() + += Introduction + +== Motivation + +Replace this text. + +== Goals + +Replace this text. + += Results + +== Conclusion + +Thank you! diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/thumbnail.png b/packages/preview/ricopallazzo-uni-theme/0.1.0/thumbnail.png new file mode 100644 index 0000000000..d5efc498c4 Binary files /dev/null and b/packages/preview/ricopallazzo-uni-theme/0.1.0/thumbnail.png differ diff --git a/packages/preview/ricopallazzo-uni-theme/0.1.0/typst.toml b/packages/preview/ricopallazzo-uni-theme/0.1.0/typst.toml new file mode 100644 index 0000000000..e859e81436 --- /dev/null +++ b/packages/preview/ricopallazzo-uni-theme/0.1.0/typst.toml @@ -0,0 +1,26 @@ +[package] +name = "ricopallazzo-uni-theme" +version = "0.1.0" +entrypoint = "lib.typ" +authors = ["Alberto Bertoncini"] +license = "MIT" +description = "A modern Touying presentation theme with automatic section slides, progress indicators and customizable branding." +repository = "https://github.com/Bertonc98/ricopallazzo-uni-theme" +keywords = [ + "slides", + "presentation", + "touying", + "theme" +] +categories = [ + "presentation" +] + +exclude = [ + "example/main.pdf" +] + +[template] +path = "template" +entrypoint = "main.typ" +thumbnail = "thumbnail.png"