flowchart LR
A[Start] --> B{Decision}
B -->|Yes| C[Action A]
B -->|No| D[Action B]
C --> E[End]
D --> E
Complete Guide
Thursday, the 29th of January, 2026
This document showcases all features of the Mickaël CANOUIL template for Quarto. It covers HTML, Typst (PDF), and Reveal.js (presentations) formats. It serves as both an educational resource and a quick reference guide.
Navigate using the table of contents to find specific features. Each section includes working examples you can copy and adapt for your own documents.
This demonstration is organised into five main sections:
Cross-references work throughout this document. For example, see Section 2 for template components or Figure 1 for a figure example.
The template provides nine specialised components for professional document creation. These components are unique to this Typst template and enhance visual communication.
Value boxes display metrics, KPIs, and statistics in a visually appealing format. They are ideal for dashboards, reports, and presentations.
Value boxes support icons to indicate trends or status:
Arrange multiple value boxes using Quarto’s layout-ncol feature:
Value Box Parameters:
value: The numeric value to display (required).unit: Unit symbol (%, €, $, etc).label: Description text (required).icon: Icon shortcuts (up ↑, down ↓, stable —) or any UTF-8 character.colour: Colour types (success, warning, danger, info, neutral) or hex colours (#ff0000).background: Optional background colour override.show-border: Display border around the box (default: true).alignment: Content alignment (center, left, right; default: center).alt: Optional alt text for accessibility when using grid layouts (wraps grid in figure with alt text).Info panels highlight content with eight distinct styles. They provide more flexibility than callouts and support rich content.
Subtle panels provide minimal emphasis for background information or supplementary notes. Use when you want gentle visual separation without strong emphasis.
Emphasis panels offer moderate highlighting for important information that deserves attention. They create visual hierarchy without being overwhelming.
Accent panels create strong visual impact for key insights or critical information. Use sparingly for maximum effect.
Outline panels provide clean borders without background fill. They maintain clarity whilst keeping the design minimal and unobtrusive.
Info panels use note callout colours for explanatory content. Panel titles can be set via the title attribute or as the first heading inside the panel.
Success panels highlight positive outcomes, achievements, or completed tasks. They use green tones to convey accomplishment and success.
Warning panels alert readers to important caveats, limitations, or potential issues. Use them to draw attention to matters that require careful consideration.
Danger panels emphasise critical information, errors, or severe warnings. They demand immediate attention through bold red styling.
Panels support any content type:
function().This versatility makes panels ideal for technical documentation and reports.
Panel Parameters:
style: Style variant (subtle, emphasis, accent, outline, info, success, warning, danger).title: Optional title text (or use first heading inside panel).icon: Optional icon (any UTF-8 character or emoji).border-width: Border thickness (default: 1pt).radius: Corner radius (default: 8pt).inset: Internal padding (default: 1.2em).breakable: Allow page breaks inside panel (default: false).Status badges provide compact inline indicators for status, categories, tags, and labels. They appear inline with text and use colour-coded styling.
Project Status: Approved
Draft This section is under review.
Critical Requires immediate attention.
New Feature Recently added capability.
Internal For internal use only.
Badges support optional icons using any UTF-8 character or emoji:
✓ Completed ⏳ Pending ⚠ Error
ℹ Beta 📄 Documentation
Combine multiple badges to provide comprehensive status information:
Document Status: Active High Priority Review Required
Badge Syntax:
[Text]{.badge colour="success" icon="✓"}.{{< badge text="Text" colour="success" icon="✓" >}}.Badge Parameters:
colour: Badge colour type (success, warning, danger, info, neutral).icon: Optional icon (any UTF-8 character or emoji).inline: Display inline or as block (default: true).Decorative dividers provide visual separation between sections without using headings.
Divider Parameters:
style: Divider style (solid, dashed, dotted, ornamental, gradient).label: Optional centred label text.thickness: Line thickness (default: 1pt).width: Line width as percentage (default: 50%).Progress bars visualise completion, distribution, or proportions.
Progress Bar Parameters:
value: Progress percentage (0-100, required).label: Description text (required).colour: Colour type (success, warning, danger, info, neutral) or hex colour.height: Bar height (default: 1.5em).show-percentage: Display percentage label (default: true).Card grids provide flexible layouts for displaying content in card format.
Optimised for speed with minimal overhead and efficient rendering across all platforms.
99.9% uptime guarantee
Enterprise-grade security with end-to-end encryption, compliance, and regular audits.
SOC 2 Type II certified
Scales effortlessly from small teams to global enterprises with millions of users.
10M+ active users
Cards support three distinct styles:
Light background with subtle border. This is the default card style.
Clear border with transparent background. Clean and minimal appearance.
Bold filled background with contrasting text. Maximum visual impact.
Card Grid Parameters:
columns: Number of columns (1-4).alt: Optional alt text for accessibility (wraps grid in figure with alt text).style: subtle, outlined, or filled.colour: Custom accent colour (for filled style).Individual cards can be used outside of card grids for single-item emphasis:
This card is used independently, not within a card-grid. It provides the same styling options as cards within grids.
Filled cards with custom colours work perfectly as standalone components. Ideal for call-to-action blocks or featured content.
Executive summary blocks provide prominent, professional summary sections for reports.
This quarter exceeded all strategic targets across revenue, customer satisfaction, and project delivery.
Key Achievements:
Strategic Priorities for Next Quarter:
Overall Project Status: On Track High Confidence
Executive Summary Parameters:
title: Custom title (default: “Executive Summary”).show-corner-brackets: Include decorative corner brackets (default: true).The template supports all standard Quarto features with enhanced styling.
Reference the figure using Figure 1 in your text.
See Figure 2 for the wider figure example.
Reference the complete figure as Figure 3, or individual subfigures as Figure 3 (a) and Figure 3 (b).
| Column A | Column B | Column C |
|---|---|---|
| Value 1 | Value 2 | Value 3 |
| Value 4 | Value 5 | Value 6 |
| Value 7 | Value 8 | Value 9 |
Reference tables using Table 1 in your text.
| Alpha | Beta |
|---|---|
| A1 | B1 |
| Gamma | Delta |
|---|---|
| G1 | D1 |
| Left Aligned | Centre Aligned | Right Aligned |
|---|---|---|
| Text | Text | Text |
| 123 | 456 | 789 |
| Alpha | Beta | Gamma |
See Table 3 for alignment examples.
| Feature | Light Mode | Dark Mode | Notes |
|---|---|---|---|
| Background | #fafafa |
#333333 |
Page background colour |
| Foreground | #333333 |
#fafafa |
Primary text colour |
| Muted | #666666 |
#999999 |
Secondary text colour |
| Accent | #e67e22 |
#e67e22 |
Brand accent colour |
| Link | #0066cc |
#66aaff |
Hyperlink colour |
| Corner Brackets | Enabled | Enabled | Signature branding element |
Detailed colour information is available in Table 4.
Inline mathematical expressions like \(\alpha + \beta = \gamma\), \(\int_0^1 f(x) \, dx\), and \(\sum_{i=1}^{n} i = \frac{n(n+1)}{2}\) integrate seamlessly with text.
The quadratic formula \(x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}\) and Euler’s identity \(e^{i\pi} + 1 = 0\) demonstrate mathematical typesetting quality.
Einstein’s famous mass-energy equivalence relation:
\[ E = mc^2 \tag{1}\]
The quadratic formula for solving \(ax^2 + bx + c = 0\):
\[ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \tag{2}\]
Maxwell’s equations governing electromagnetic fields:
\[ \begin{aligned} \nabla \cdot \mathbf{E} &= \frac{\rho}{\epsilon_0} \\ \nabla \cdot \mathbf{B} &= 0 \\ \nabla \times \mathbf{E} &= -\frac{\partial \mathbf{B}}{\partial t} \\ \nabla \times \mathbf{B} &= \mu_0 \mathbf{J} + \mu_0 \epsilon_0 \frac{\partial \mathbf{E}}{\partial t} \end{aligned} \tag{3}\]
Matrix equation demonstrating linear algebra:
\[ \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} = \begin{bmatrix} b_1 \\ b_2 \\ b_3 \end{bmatrix} \tag{4}\]
Cross-reference equations using Equation 1, Equation 2, Equation 3, or Equation 4.
Quarto’s standard callout blocks provide contextual information.
Note
Note callouts provide additional information or context without interrupting the main narrative flow. They are ideal for supplementary details that enhance understanding.
Pro Tip
Tip callouts offer helpful suggestions, best practices, or recommendations. Use them to share expertise and guide readers towards optimal approaches.
Important Information
Important callouts highlight essential details that readers must not miss. They emphasise critical information that affects understanding or outcomes.
Warning
Warning callouts alert readers to caveats, limitations, or potential issues. They help readers avoid common pitfalls or misunderstandings.
Caution
Caution callouts warn about significant risks, dangers, or problematic scenarios. They demand attention to prevent errors or adverse consequences.
Panel tabsets organise content into tabs in HTML-based formats. In Typst (PDF), tabs are converted to a hierarchical heading structure since Typst does not support tabs.
Tabset Behaviour:
Variable names like my_variable, function calls like calculate_mean(), and commands like quarto render appear inline with special formatting.
When extensions.mcanouil.code-window.enabled: true is set (the default), code blocks with a filename attribute display a macOS-style window header. With extensions.mcanouil.code-window.auto-filename: true (the default), code blocks without explicit filenames automatically show the language name in small-caps styling.
fibonacci.py
With auto-filename: true, code blocks without explicit filenames show the language name:
python
def fibonacci(n: int) -> int:
"""Calculate the nth Fibonacci number using recursion."""
if n <= 1:
return n
return fibonacci(n - 1) + fibonacci(n - 2)
def fibonacci_iterative(n: int) -> int:
"""Calculate the nth Fibonacci number iteratively."""
if n <= 1:
return n
a, b = 0, 1
for _ in range(2, n + 1):
a, b = b, a + b
return b
# Example usage
result = fibonacci_iterative(10)
print(f"F(10) = {result}")r
# Load required libraries
library(ggplot2)
library(dplyr)
# Create sample data
data <- data.frame(
x = 1:10,
y = c(2, 4, 6, 8, 10, 12, 14, 16, 18, 20)
)
# Create visualisation
ggplot(data, aes(x = x, y = y)) +
geom_point(size = 3, colour = "steelblue") +
geom_line(colour = "steelblue") +
labs(
title = "Linear Relationship",
x = "X Variable",
y = "Y Variable"
) +
theme_minimal()bash
#!/bin/bash
# Automated backup script
SOURCE="/home/user/documents"
BACKUP="/backup/documents"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
# Create backup directory if it doesn't exist
mkdir -p "${BACKUP}"
# Compress and archive
tar -czf "${BACKUP}/backup_${TIMESTAMP}.tar.gz" "${SOURCE}"
# Verify backup
if [ $? -eq 0 ]; then
echo "Backup completed successfully: backup_${TIMESTAMP}.tar.gz"
else
echo "Backup failed" >&2
exit 1
fiThe template supports a subtle grid background overlay for HTML and Reveal.js formats. This is controlled via the extensions.mcanouil.grid-background option.
YAML Configuration:
When enabled, a faint grid pattern appears behind all content. The grid uses a 50px spacing with a colour derived from the foreground and background colours.
Format Availability:
The template supports Mermaid diagrams with automatic dark theme styling.
flowchart LR
A[Start] --> B{Decision}
B -->|Yes| C[Action A]
B -->|No| D[Action B]
C --> E[End]
D --> E
See Figure 4 for the rendered diagram.
Code annotations allow readers to explore code explanations interactively. In Reveal.js, the code-annotation-fragments plugin enables fragment-based navigation through annotations.
python
math module for access to pi.
Configuration:
This section demonstrates all six heading levels with their respective styling.
Content under level 3 heading demonstrating hierarchy and spacing.
Content under level 4 heading with appropriate font sizing.
Content under level 5 heading maintaining visual consistency.
Content under level 6 heading (the deepest available level).
inline code to demonstrate rich formatting within definition lists.
“The best way to predict the future is to invent it.”
— Alan Kay
Longer block quotes demonstrate styling across multiple lines and paragraphs. They maintain consistent formatting, proper indentation, and visual hierarchy.
Multi-paragraph quotes preserve spacing and readability whilst clearly distinguishing quoted content from the main narrative.
Caution
.aside and .column-margin are not implemented in Typst yet.
This is regular paragraph text in the main column.
More regular text continues in the main column after the aside.
Margin notes offer another way to include supplementary content. They appear in the page margin and support rich formatting.
Column 1: Content in the first column demonstrating side-by-side layout capabilities. This column contains the first half of the content with proper formatting and spacing.
Column 2: Content in the second column showing parallel information. This column contains the second half, creating a balanced two-column presentation.
First: Brief content in column one.
Second: Brief content in column two.
Third: Brief content in column three.
This block uses highlighted styling for emphasis and visual impact. Use highlighted blocks for key takeaways, important statements, or critical information that deserves special attention. They create visual hierarchy whilst maintaining readability.
When section-page: true is enabled, level-1 headings are rendered on dedicated section pages with special styling:
toc-depth).Section pages apply to all level-1 headings except those with outlined: false (such as TOC and list-of sections).
YAML Configuration:
yaml
This document includes comprehensive cross-references throughout:
Sections:
Figures:
Tables:
Equations:
This sentence includes a footnote.1 Another sentence demonstrates multiple footnotes working together.2
Extended discussion with several footnotes creates a rich layer of supplementary information.3
Citations integrate seamlessly with the bibliography system. See Example and Author (2024) for a comprehensive example of citation formatting.
Multiple citations can be grouped together (Example and Author 2024, 2024), and citations work with inline text as well. According to Example and Author (2024), proper citation practices enhance academic rigour.
The bibliography appears automatically at the end of the document.
The template supports custom cross-reference types beyond the standard sections, figures, tables, and equations.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sagittis posuere ligula sit amet lacinia. Duis dignissim pellentesque magna, rhoncus congue sapien finibus mollis. Ut eu sem laoreet, vehicula ipsum in, convallis erat. Vestibulum magna sem, blandit pulvinar augue sit amet, auctor malesuada sapien. Nullam faucibus leo eget eros hendrerit, non laoreet ipsum lacinia. Curabitur cursus diam elit, non tempus ante volutpat a. Quisque hendrerit blandit purus non fringilla. Integer sit amet elit viverra ante dapibus semper. Vestibulum viverra rutrum enim, at luctus enim posuere eu. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
Reference custom floats using Text 1 in your text.
The Typst format supports multiple document types via the document-type parameter. Each type provides a distinct layout and structure suited to its purpose.
Available Document Types:
report (default): Standard report layout with title page, table of contents, and section pages.invoice: Invoice layout for billing documents.letter: Formal letter layout.cv: Curriculum vitae layout.YAML Configuration:
The Reveal.js format supports a custom closing slide with a photo and social links.
YAML Configuration:
yaml
The closing slide displays the author photo alongside social media links, providing a professional end to presentations.
The Reveal.js format supports several extension-specific options under the extensions.mcanouil namespace:
yaml
extensions:
mcanouil:
section-outline: true # Show subsection outline on section slides.
date-superscript: true # Format ordinal dates (1st, 2nd, 3rd).
hide-title-slide-chrome: true # Hide menu/logo/footer on title slide.
favicon-from-logo: true # Generate favicon from slide logo.
code-annotation-fragments: true # Enable annotation fragment navigation.
debug-borders: false # Show debug borders on slides.Special sections (appendix and supplementary) automatically relocate to the document end with customised numbering.
This demonstration showcases the complete feature set of the Mickaël CANOUIL template across HTML, Typst (PDF), and Reveal.js (presentations) formats.
The template provides specialised components:
Standard Quarto features work seamlessly with enhanced styling:
Comprehensive typography and layout features:
The template supports extensive customisation through YAML parameters:
The template is designed with PDF accessibility (PDF/UA-1) compliance in mind:
pdf-standard: ua-1 (requires Typst >= 0.14).alt parameter for accessibility descriptions.To use these features in your own documents:
quarto add mcanouil/quarto-mcanouil@0.9.0.format: mcanouil-html, format: mcanouil-typst, or format: mcanouil-revealjs.This appendix section demonstrates the special sections feature. Content marked with the .appendix class automatically relocates to the document end with special numbering (A.1, A.2, etc).
Additional YAML configuration examples for advanced customisation:
yaml
format:
mcanouil-typst:
# Advanced Typography
heading-colour: "#e67e22" # Custom heading colour
# Advanced Table Styling
table-stroke: 1pt # Custom border thickness
table-inset: 8pt # Custom cell padding
table-fill: alternating # Striped table rows
# Advanced Quote Styling
quote-width: 85% # Custom blockquote width
quote-align: left # Custom blockquote alignment
# Advanced Link Styling
link-underline: false # Disable link underlines
link-colour: "#3498db" # Custom link colourThis section documents all available YAML front matter options for customising the template.
yaml
# Document style
style: "professional" # "academic" or "professional"
# Colour mode
brand-mode: "light" # "light" or "dark"
# Document type (Typst only)
document-type: "report" # "report", "invoice", "letter", or "cv"
# Override default colours (optional)
colour-background: "#FFFFFF" # Hex colour code
colour-foreground: "#333333" # Hex colour code
colour-muted: "#999999" # Hex colour codeyaml
yaml
yaml
yaml
# Fonts
font-body: "Alegreya Sans" # Body text font
font-headings: "Alegreya Sans" # Heading font
font-size: 11pt # Base font size
# Heading styling
heading-weight: "bold" # Font weight
heading-style: "normal" # Font style (normal/italic)
heading-colour: null # Override colour (null uses foreground)
heading-line-height: 0.65em # Line height for headings
title-size: 24pt # Title font size
subtitle-size: 14pt # Subtitle font sizeyaml
yaml
toc: true # Include table of contents
list-of: true # Include list of figures/tables
number-sections: true # Number section headings
section-numbering: "1.1.1." # Numbering pattern
section-pagebreak: true # Page break before level 1 headings
section-page: true # Dedicated section pages for level-1 headingsyaml
yaml
special-sections:
references:
name: "References" # Section name
numbering: "none" # Numbering pattern ("none" for unnumbered)
prefix: false # Show section name prefix
appendix:
name: "Appendix"
numbering: "A.a." # Appendix numbering (A.1, A.2, etc.)
prefix: true # Show "Appendix" prefix
supplementary:
name: "Supplementary"
numbering: "I.i." # Roman numerals (I.1, I.2, etc.)
prefix: trueyaml
yaml
Additional options available when style: "professional":
yaml
yaml
extensions:
mcanouil:
# Grid background (HTML and Reveal.js)
grid-background: false # Subtle grid overlay (default: false)
# Code window styling (all formats)
code-window:
enabled: true # macOS-style code windows (default: true)
auto-filename: true # Auto-show language name (default: true)
# HTML only
hide-navbar-title: true # Hide title from navbar (default: true)
# Reveal.js only
section-outline: true # Subsection outline on section slides
date-superscript: true # Ordinal date formatting (1st, 2nd)
hide-title-slide-chrome: true # Hide chrome on title slide
favicon-from-logo: true # Generate favicon from logo
code-annotation-fragments: true # Fragment navigation for annotations
debug-borders: false # Debug borders on slidesyaml
Note: Margin sections are only displayed in professional style. Currently, margin section styling is controlled by internal constants in margin-section.typ:
MARGIN-SECTION-REFERENCE-SIZE: Reference font size for measuring text widths (default: 12pt).MARGIN-SECTION-FILL-RATIO: Target fill ratio for vertical constraint; the longest heading occupies at most this percentage of available height (default: 90%).MARGIN-SECTION-MAX-MARGIN-RATIO: Maximum font size as percentage of left margin width after rotation (default: 50%).MARGIN-SECTION-POSITION-HORIZONTAL: Horizontal position percentage within margin (default: 85%).MARGIN-SECTION-OPACITY: Text opacity level (default: 70%).MARGIN-SECTION-WEIGHT: Font weight (default: “bold”).MARGIN-SECTION-ROTATION: Rotation angle (default: -90deg for vertical text).MARGIN-SECTION-MIN-SIZE: Minimum text size for accessibility (default: 9pt).MARGIN-SECTION-HEADING-LEVEL: Heading level to display (default: 1 for top-level sections).Behaviour:
Configuration options may be added in future versions for user customisation via YAML.
If an option is not specified, the following defaults apply:
| Option | Default | Description |
|---|---|---|
style |
"academic" |
Academic style with simple header/footer |
document-type |
"report" |
Document layout type (Typst only) |
brand-mode |
"light" |
Light colour scheme |
show-corner-brackets |
true |
Decorative brackets enabled |
show-logo |
true |
Logo displayed when provided |
font-size |
11pt |
Standard readable size |
columns |
1 |
Single-column layout |
section-pagebreak |
true |
Level 1 headings start new page |
section-page |
false |
Dedicated section pages disabled |
toc |
false |
Table of contents not generated |
list-of |
true |
List of figures/tables generated |
number-sections |
true |
Section headings numbered |
pdf-standard |
ua-1 |
PDF/UA-1 accessibility standard |
The template validates options and provides helpful error messages:
true or false.| Component | Shortcode/Class | Key Parameters |
|---|---|---|
| Value Box | |
value, unit, label, icon, colour, alt |
| Panel | .panel |
style, title, icon |
| Badge | .badge |
colour, icon |
| Divider | |
style, label, width, thickness |
| Progress Bar | |
value, label, colour |
| Card | .card |
style, colour |
| Card Grid | .card-grid |
columns, alt |
| Executive Summary | .executive-summary |
title |
| Highlight | .highlight |
(none) |
This supplementary section demonstrates additional special section functionality. Content marked with .supplementary appears after appendices with Roman numeral numbering (I.1, I.2, etc).
| Element | Hex Code | RGB | Usage |
|---|---|---|---|
| Background | #fafafa |
rgb(250,250,250) | Page background |
| Foreground | #333333 |
rgb(51,51,51) | Primary text |
| Muted | #666666 |
rgb(102,102,102) | Secondary text |
| Accent | #e67e22 |
rgb(230,126,34) | Brand colour |
| Element | Hex Code | RGB | Usage |
|---|---|---|---|
| Background | #333333 |
rgb(51,51,51) | Page background |
| Foreground | #fafafa |
rgb(250,250,250) | Primary text |
| Muted | #999999 |
rgb(153,153,153) | Secondary text |
| Accent | #e67e22 |
rgb(230,126,34) | Brand colour |
| Callout Type | Hex Code | Contrast Ratio | Accessibility |
|---|---|---|---|
| Note | #0066cc |
7.5:1 | AA Large Text, AAA Normal |
| Tip | #009955 |
6.8:1 | AA Large Text, AAA Normal |
| Warning | #cc6600 |
5.2:1 | AA Large Text |
| Important | #cc0000 |
5.9:1 | AA Large Text |
| Caution | #b38f00 |
6.1:1 | AA Large Text, AAA Normal |