Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Revealjs: code block at the end of a callout lost its bottom spacing since 1.8.15

Open Beginner friendly
#15,014 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
72/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
html, scss
Domain
frontend

Research direction

The two rules are in src/resources/formats/revealjs/quarto.scss, around lines 919-926 and 975-977, and they match a last div.sourceCode but not the div.code-copy-outer-scaffold wrapper added by the HTML postprocessor (see src/format/reveal/format-reveal.ts around line 260). Render a revealjs deck with a callout ending in a code block, then check the gap below the code in the browser. Done when both selectors also match the scaffold as last child and the spacing matches 1.7.34 for both callout types.

Written by the indexing model from the issue text.

Description

bug callouts regression revealjs

In Revealjs, when a code block is the last element of a callout, it now sits against the bottom of the callout. With appearance="simple" and no title, the code block border touches the callout border.

Gap between the bottom of the code block and the bottom of the callout, measured with Chromium on the example below:

Callout 1.7.34 main
Default, titled, ending with code 12.03px 8.33px
Simple, untitled, ending with code 15.74px 0.93px

The 0.93px is only the 1px callout border. Callouts ending with a paragraph render the same in both versions.

#13024 is first released in 1.8.15, so I expect the change to start there. I only rendered with 1.7.34 and main, not with 1.8.14 or 1.8.15.

Reproducible example

---
title: Callout last child code
format: revealjs
---

## Titled ending with code

::: {.callout-note}
## Titled

Some text.

```python
x = 1
```
:::

## Simple untitled ending with code

::: {.callout-note appearance="simple"}
Some text.

```python
x = 1
```
:::

What happens

Since #13024, the HTML postprocessor wraps code blocks in a div.code-copy-outer-scaffold for the copy button. Revealjs uses the same postprocessor with copyCode: true:

https://github.com/quarto-dev/quarto-cli/blob/e63ace9e50f55dd3ab3152d068738ed44a0987d0/src/format/reveal/format-reveal.ts#L260

So the last child of .callout-content is now the scaffold div and not div.sourceCode. Two rules added in #11251 to handle a code block in last position no longer match.

For simple untitled callouts, #11251 added a margin below a last div.sourceCode so that the code border does not merge with the callout border. This rule never matches now, which is the visible part:

https://github.com/quarto-dev/quarto-cli/blob/e63ace9e50f55dd3ab3152d068738ed44a0987d0/src/resources/formats/revealjs/quarto.scss#L975-L977

For titled callouts, the last child gets padding-bottom: 0.5rem and no margin, except when it is a div.sourceCode, which keeps the var(--r-block-margin) margin. This exclusion was there to avoid the duplicated background color on a code block in last position. The scaffold is not excluded, so it gets the 8px padding instead of the 12px margin. This one is more cosmetic.

https://github.com/quarto-dev/quarto-cli/blob/e63ace9e50f55dd3ab3152d068738ed44a0987d0/src/resources/formats/revealjs/quarto.scss#L919-L926

We could make both selectors also target div.code-copy-outer-scaffold when it is the last child.

Related: #13446 and #13238 are about the same scaffold change on HTML callouts, which use different rules in the Bootstrap stylesheets.

Dominant language
JavaScript
Stars
6.1k
Forks
463
Avg merge
21h 53m
Merged PRs (30d)
58

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from quarto-dev/quarto-cli

All issues in quarto-dev/quarto-cli

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.