Universe

Create project in app

A modern, minimalist presentation theme for Touying. Calm, approachable, and intelligent—designed to let your content shine.

License Typst Touying

Installation

Create a new presentation from the template:

typst init @preview/calmly-touying:0.1.0 my-presentation
cd my-presentation
typst compile main.typ

Or import in an existing project:

#import "@preview/calmly-touying:0.1.0": *

Features

  • Three Color Themes: Tomorrow, Warm Amber, and Paper palettes
  • Light/Dark Variants: Adapt to different venues and preferences
  • Moloch-Inspired Design: Clean headers, progress bars, and academic styling
  • Multiple Slide Types: Title, content, focus, standout, section, figure, equation, and more
  • Rich Components: Highlight boxes, alert/example boxes, algorithm containers, citation gadgets
  • Progressive Reveals: #only() and #pause for animations
  • Golden Ratio Spacing: Mathematically pleasing proportions
  • Bibliography Integration: Styled citations and reference slides

Quick Start

#import "@preview/calmly-touying:0.1.0": *

#show: calmly.with(
  config-info(
    title: [Your Presentation Title],
    subtitle: [Event or Context],
    author: [Your Name],
    date: datetime.today(),
    institution: [Your Institution],
  ),
)

#title-slide()

== First Slide

Your content here...

- Bullet points are styled automatically
- *Emphasis* and **strong text** work as expected

#focus-slide[
  Key Takeaway Message
]

#ending-slide(
  contact: ("email@example.com", "github.com/username"),
)

Configuration Options

The theme supports extensive customization through configuration options:

#show: calmly.with(
  config-info(
    title: [Your Title],
    author: [Your Name],
  ),
  variant: "light",           // "light" | "dark"
  colortheme: "tomorrow",     // "tomorrow" | "warm-amber" | "paper"
  progressbar: "foot",        // "foot" | "head" | "frametitle" | "none"
  header-style: "moloch",     // "moloch" | "minimal"
  title-layout: "moloch",     // "moloch" | "centered" | "split"
)
Option Values Description
variant "light", "dark" Color mode for the presentation
colortheme "tomorrow", "warm-amber", "paper" Color palette (tomorrow is default)
progressbar "foot", "head", "frametitle", "none" Progress bar position
header-style "moloch", "minimal" Slide header style (colored bar vs underline)
title-layout "moloch", "centered", "split" Title slide layout variant

Color Themes

  • Tomorrow (default): Programmer-friendly palette based on Tomorrow theme. Balanced colors.
  • Warm Amber: Soft, warm tones with amber accents. Premium, modern feel.
  • Paper: High contrast black/white with blue accents. Academic style.

Slide Types

Title Slide

#title-slide()
#title-slide(layout: "centered")  // Alternative layouts
#title-slide(layout: "split")

Content Slides

Standard slides are created automatically with level-2 headings:

== Slide Title

Content goes here...

Focus Slide

Full-bleed accent gradient background for emphasis:

#focus-slide[
  Important statement or takeaway
]

Standout Slide

High-contrast background for maximum emphasis:

#standout-slide[
  Key Message
]

Section Slide

Clean section dividers with optional progress:

#section-slide[Methods]
#section-slide(show-progress: true)[Results]

Figure Slide

Centered figure with optional caption:

#figure-slide(
  image("figure.svg"),
  title: [Figure Title],
  caption: [Description of the figure],
)

Split Figure Slide

Two figures side-by-side:

#figure-slide-split(
  image("left.svg"),
  image("right.svg"),
  title: [Comparison],
  caption-left: [Before],
  caption-right: [After],
)

Equation Slide

Centered equation with definition box and optional citation:

#equation-slide(
  $E = m c^2$,
  title: [Mass-Energy Equivalence],
  subtitle: [Einstein's famous equation],
  definitions: [
    $E$ — Energy \
    $m$ — Mass \
    $c$ — Speed of light
  ],
  citation: (bib-key: "einstein1905", label: "Einstein 1905"),
)

Bibliography Slide

#bibliography-slide(bib-content: bibliography("refs.bib", title: none, style: "apa"))

Acknowledgement Slide

#acknowledgement-slide(
  subtitle: [We thank the following],
  people: (
    (name: "Prof. Smith", role: "Supervisor"),
    (name: "Dr. Jones", role: "Advisor"),
  ),
  institutions: ("University A", "Lab B"),
  extra: [Special thanks to all contributors.],
)

Ending Slide

#ending-slide(
  title: [Thank You],
  subtitle: [Questions?],
  contact: ("email@example.com", "github.com/username"),
)

Components

Box Components

// Key concepts and summaries
#highlight-box(title: "Key Point")[
  Important information here.
]

// Warnings and critical notes
#alert-box(title: "Warning")[
  Critical information.
]

// Examples and demonstrations
#example-box(title: "Example")[
  Illustrative content.
]

// Generic themed container
#themed-block(title: "Block Title")[
  General content.
]
#themed-block(title: "Filled", fill-mode: "fill")[...]

Algorithm Box

#algorithm-box(title: "Algorithm 1: Example")[
  *Input:* Data $X$ \
  *Output:* Result $Y$ \
  1: Process data \
  2: Return result
]

Text Helpers

This is #alert[important] information.     // Accent colored
This is #muted[secondary] information.     // Muted grey
This is #subtle[tertiary] information.     // Light subtle

Citations

Inline Citations (grey-boxed):

Recent work has shown improvements @smith2023.

Renders with a subtle grey background pill.

Citation Box (positioned in corners):

#cite-box("key", display-label: "Author 2023", position: "bottom-right")

// Multiple citations
#cite-box(
  ("key1", "key2"),
  display-label: "Author1; Author2",
  position: "top-right"
)

Positions: "top-right", "bottom-left", "bottom-right"

Multi-Column Layouts

#two-col(
  [Left column content],
  [Right column content],
)

#three-col([A], [B], [C])

Progressive Reveals

Using #only(n)[...]

Show content only on specific sub-slides:

== Building Concepts

#only(1)[Step 1: Introduction]
#only(2)[Step 2: Details]
#only(3)[Step 3: Conclusion]

Using #pause

Reveal content progressively:

== Points

- First point
#pause
- Second point (appears after click)
#pause
- Third point

Spacing Utilities

Flexible Spacing

#v(1fr)          // Flexible vertical space
#v(spacing-md)   // Fixed spacing (16pt)

Vertical Centering

#v(1fr)
#align(center)[Centered content]
#v(1fr)

Spacing Constants

Constant Size
spacing-xs 6pt
spacing-sm 10pt
spacing-md 16pt
spacing-lg 24pt
spacing-xl 36pt
spacing-2xl 48pt

Typography Constants

Constant Size
size-display 42pt
size-title 34pt
size-slide-title 26pt
size-body 17pt
size-small 15pt
size-caption 13pt

Golden Ratio Utilities

#phi                  // 1.618... constant
#golden-major         // ~0.618 proportion
#golden-minor         // ~0.382 proportion
#golden-center(body)  // Vertically center with golden ratio offset

For best results, install:

The theme will gracefully fall back to system fonts if these aren’t available.

License

MIT License - feel free to use and modify for your presentations.

Credits & References

  • Built on Touying presentation framework by OrangeX4
  • Layout inspired by Moloch (Beamer theme) by Johan Larsson, itself based on Metropolis by Matthias Vogelgesang
  • Color palette based on Tailwind CSS Stone and Amber scales

Function Reference

Slide Types

Function Description
slide() Enhanced slide with Moloch headers and progress bars
title-slide() Router for title layout variants
title-slide-moloch() Left-aligned title with separator line
title-slide-centered() Centered title with accent underline
title-slide-split() Two-column title with vertical separator
focus-slide() Gradient background emphasis slide
standout-slide() High-contrast emphasis slide
section-slide() Section divider with optional progress
figure-slide() Single centered figure display
figure-slide-split() Side-by-side figure comparison
equation-slide() Equation with definitions and citation
acknowledgement-slide() People and institution cards
ending-slide() Thank you / closing slide
bibliography-slide() Styled references slide

Layout Helpers

Function Description
two-col() Two-column grid layout
three-col() Three-column grid layout
spacer() Vertical spacing helper

Box Components

Function Description
highlight-box() Left-accent gradient box with title
alert-box() Red-accented warning box
example-box() Green-accented example box
themed-block() Generic themed container
algorithm-box() Code/algorithm container with header
quote-block() Blockquote with attribution
code-block() Styled code display
soft-shadow-box() Elevated box with subtle stroke

Text Helpers

Function Description
alert() Accent-colored inline text
muted() Grey muted text
subtle() Light subtle text
fig-caption() Italic figure caption

Visual Elements

Function Description
cite-box() Corner-positioned citation gadget
accent-line() Gradient accent line
soft-divider() Subtle horizontal divider
pill() Rounded tag/label

Theme Variants

Function Description
calmly() Main theme configuration function
moloch-style-theme Preconfigured Moloch settings
minimal-style-theme Preconfigured minimal settings
dark-theme Preconfigured dark variant