Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions packages/preview/ricopallazzo-uni-theme/0.1.0/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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`.

21 changes: 21 additions & 0 deletions packages/preview/ricopallazzo-uni-theme/0.1.0/LICENSE
Original file line number Diff line number Diff line change
@@ -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.
196 changes: 196 additions & 0 deletions packages/preview/ricopallazzo-uni-theme/0.1.0/README.md
Original file line number Diff line number Diff line change
@@ -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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since you seem ship assets for the Milan University by default, I think it would be worth mentioning here.

By the way, does the template conform to the University guidelines, or is it just re-using the logos?


> **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:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can assume that the package is already published, otherwise people wouldn't be able to read this version of the README.


```typst
#import "@preview/ricopallazzo-uni-theme:0.1.0": *
```

For local development :

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a bit redundant with the later section, I would advise removing this first instance and only keep the later, to first give users the information they need, and then give more information to potential contributors if needed.


```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",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Passing a string literal won't work in most cases. You should use path or take a piece of content directly.

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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This won't be easy to access from Typst Universe, where the README is the only file being displayed. I would advise listing the available colors directly here, or at least linking to the file so that it can be easily opened:

Themes are defined in [`src/themes_colors.typ`](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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section is not really relevant to users. I would advise removing it entirely, moving it to a "Development" or "Contributing" section at the end of the README, or to a dedicated CONTRIBUTING.md file (that can then be left out from this copy of the package and only exist in your own repository).


```
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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding the assets:

  • Do you have the right to distribute them?
  • If so, can you specify under which license/terms they are placed (in the "License" section of your README for example)?
  • If not, can you please remove them or replace them with placeholder images?

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once you will have fixed the str versus path issue, you will be able to delete this copy of the assets.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 30 additions & 0 deletions packages/preview/ricopallazzo-uni-theme/0.1.0/examples/main.typ

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file is not linked to from your README: it will be quite hard to discover for people browsing Typst Universe. Can you either remove it (along with the rest of the examples directory) or link to it in your README?

Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#import "@preview/touying:0.7.4": *
#import "../src/theme.typ": *

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is generally appreciated to use @preview/… imports in example files, so that they can be copy/pasted as is by users.


#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


5 changes: 5 additions & 0 deletions packages/preview/ricopallazzo-uni-theme/0.1.0/lib.typ
Original file line number Diff line number Diff line change
@@ -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
Comment on lines +3 to +5

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The first and last let don't change anything, and the second one could also be avoided by naming the function correctly in the first place. I would suggest replacing all of this file with

#import "src/theme.typ": ricopallazzo-uni-theme, alert-box, title-slide

54 changes: 54 additions & 0 deletions packages/preview/ricopallazzo-uni-theme/0.1.0/src/exports.typ

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From a quick look, this file doesn't seem to be used anywhere. Can you remove it please?

Original file line number Diff line number Diff line change
@@ -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
Loading
Loading