Esta página resume a linguagem inteira em tabelas curtas. Para explicações passo a passo, veja os guias; para os valores aceitos por cada atributo, veja Atributos.
Estrutura do documento
Seção intitulada “Estrutura do documento”Um documento tem duas partes, nesta ordem:
- Preâmbulo (opcional): linhas que começam com
@, só no topo do arquivo. - Slides: todo o resto. O primeiro conteúdo que não é definição começa o slide 1, e cada
---começa um slide novo.
@title Resultados do trimestre@theme paper
# Primeiro slide
--- {.dark align=center}# Segundo slideDefinições do preâmbulo
Seção intitulada “Definições do preâmbulo”| Definição | Forma | Efeito |
|---|---|---|
@title | @title Texto | Título da apresentação. |
@author | @author Nome | Autor da apresentação. |
@theme | @theme paper | Tema embutido: paper (padrão), ink ou editorial. |
@version | @version 1 | Versão da linguagem. A única versão atual é 1. |
@aspect | @aspect 16:9 | Proporção: 16:9 (1920×1080, padrão) ou 4:3 (1440×1080). |
@color | @color marca #ff6b4a | Cria ou substitui um token de cor. |
@font | @font titulo "Bebas Neue" 400 700 | Cria ou substitui um token de fonte (família do Google Fonts e pesos de 100 a 900). |
@style | @style destaque {color=marca weight=bold} | Cria um estilo reutilizável, aplicado com .destaque. |
@component … @end | @component nome {param param=padrão} | Define um componente. O corpo vai até a linha @end. |
@header … @end | @header {atributos} | Cabeçalho repetido em todos os slides, menos na capa. Veja Cabeçalho e rodapé. |
@footer … @end | @footer {atributos} | Rodapé repetido em todos os slides, menos na capa. @footer none desliga o rodapé do tema do projeto. |
Nomes de cores, fontes, estilos e componentes usam letras minúsculas, números e hífens, começando por uma letra. Linhas vazias e comentários podem aparecer entre as definições. Uma definição depois do primeiro slide é erro (F103).
Separador de slides
Seção intitulada “Separador de slides”| Forma | Efeito |
|---|---|
--- | Começa um slide novo. Três ou mais hífens, sozinhos na linha. |
--- {atributos} | Começa um slide novo e aplica atributos ao slide inteiro. |
--- {#id} | Dá um id ao slide, usado em links internos como [voltar](#id). |
- Se o documento começa com
---logo depois do preâmbulo, esse separador configura o primeiro slide; não é criado um slide vazio. - Um
---dentro de um bloco de código não separa slides. - O título do slide (usado nas miniaturas e no modo apresentador) é o primeiro título
#do slide; sem título, vale “Slide N”.
Markdown suportado
Seção intitulada “Markdown suportado”| Construção | Sintaxe | Observações |
|---|---|---|
| Títulos | # Título … ###### Título | Seis níveis. É preciso um espaço depois dos #. |
| Parágrafo | Linhas de texto seguidas | Cada quebra de linha vira uma quebra de linha no slide. Uma linha vazia separa parágrafos. |
| Negrito | **texto** | Só com asteriscos. |
| Itálico | *texto* | Só com asteriscos; _texto_ não é itálico. |
| Riscado | ~~texto~~ | |
| Código em linha | `código` | O conteúdo não é interpretado. |
| Link | [texto](https://…) | Aceita https://, http://, mailto: e #id-do-slide. |
| Trecho com atributos | [texto]{color=accent} | As chaves vêm coladas no ]. |
| Imagem em linha |  | Dentro de um parágrafo; aceita atributos colados: {h=60}. |
| Imagem em bloco | {fit=cover} | Sozinha na linha. Aceita https://, http://, data:image/… e asset:<id>. |
| Lista | - item, * item ou + item | Itens aninhados com indentação. Linhas indentadas continuam o item. |
| Lista numerada | 1. item ou 1) item | O primeiro número define o início da contagem. |
| Citação | > texto | Pode conter outros blocos, como listas e títulos. |
| Bloco de código | ```js … ``` | A linguagem é opcional; atributos podem vir no fim da linha de abertura. |
| Tabela | | A | B | + | --- | --- | | A segunda linha é obrigatória. :---, :---: e ---: alinham a coluna. |
HTML não é interpretado: <b> aparece como texto no slide.
Atributos
Seção intitulada “Atributos”Atributos ficam entre chaves e configuram o bloco, o trecho ou o slide em que estão.
| Forma | Exemplo | Significado |
|---|---|---|
.estilo | {.card} | Aplica um estilo embutido, um @style ou um token de cor ({.coral} equivale a {color=coral}). |
#id | --- {#resumo} | Id do slide. Só tem efeito no separador. |
chave=valor | {size=5xl} | Valor sem espaços. |
chave="valor" | {pad="sm lg"} | Valor com espaços, entre aspas duplas ou simples. Use \" para uma aspa dentro do valor. |
chave | {italic} | Liga um atributo booleano. Para desligar: italic=false. |
Valores booleanos aceitam true, yes e sim para ligar e false, no e não para desligar.
Onde os atributos ficam
Seção intitulada “Onde os atributos ficam”| Onde | Posição | Exemplo |
|---|---|---|
| Títulos, parágrafos, itens de lista, linha de abertura de código | No fim da linha, com espaço antes | # Título {size=5xl} |
Blocos ::: e :: | No fim da linha do bloco | ::: box {.card} |
| Separador de slide | Depois de --- | --- {bg=ink color=white} |
| Trecho de texto | Colado no ] | [38%]{color=accent} |
| Imagem | Colado no ) | {fit=cover} |
Num parágrafo de várias linhas, os atributos no fim de uma linha valem para o parágrafo inteiro e encerram o parágrafo. Estilos (.estilo) são aplicados primeiro, e os pares chave=valor escritos no próprio bloco prevalecem sobre eles.
| Forma | Uso |
|---|---|
::: nome {atributos} … ::: | Bloco contêiner. Um ::: sozinho na linha fecha o último bloco aberto. |
:: nome valor {atributos} | Bloco de uma linha só, sem conteúdo. |
Blocos podem ser aninhados. A indentação é opcional e serve apenas para leitura.
::: columns {widths="2 1"}::: stack## EsquerdaTexto::::: icon rocket {size=3xl color=accent}:::| Bloco | Forma | Função |
|---|---|---|
columns | ::: | Colunas lado a lado; cada filho é uma coluna. |
stack | ::: | Empilha os filhos na vertical. |
row | ::: | Coloca os filhos em linha, na horizontal. |
grid | ::: | Grade com número fixo de colunas. |
box | ::: | Caixa com fundo, borda e espaçamento. |
steps | ::: | Revela cada filho, ou cada item de lista, um por vez. |
notes | ::: | Notas do apresentador; não aparecem no slide. |
chart | ::: | Gráfico a partir de uma tabela. |
slot | ::: | Preenche um espaço nomeado de um componente. |
icon | :: | Ícone: :: icon rocket. |
spacer | :: | Espaço vazio: :: spacer lg. |
divider | :: | Linha divisória. |
Detalhes de cada bloco em Blocos.
Componentes
Seção intitulada “Componentes”| Forma | Significado |
|---|---|
@component nome {a b=padrão} | Define o componente nome com o parâmetro obrigatório a e o parâmetro b com valor padrão. |
@end | Fecha a definição. |
:: nome {a=valor} | Usa o componente sem conteúdo. |
::: nome {a=valor} … ::: | Usa o componente com conteúdo, que vai para $content. |
::: slot lado … ::: | Dentro do uso de um componente, preenche o espaço nomeado $lado. |
{step=N} no uso | Revela o componente inteiro na etapa N. |
Componentes recebem apenas parâmetros nomeados: .estilo, #id e texto solto depois do nome são erro. Componentes não podem usar a si mesmos, direta ou indiretamente.
Marcadores $
Seção intitulada “Marcadores $”| Marcador | Onde | Efeito |
|---|---|---|
$param | No corpo de um componente, em texto ou valor de atributo | Trocado pelo valor do parâmetro: ## $titulo, {color=$cor}. |
$content | Sozinho numa linha do corpo | Recebe o conteúdo passado entre ::: nome e :::. |
$nome | Sozinho numa linha do corpo, quando nome não é parâmetro | Espaço nomeado, preenchido com ::: slot nome. Fica vazio se não for preenchido. |
$page, $pages, $title, $author, $date | Dentro de @header e @footer | Número do slide, total de slides, título, autor e data de hoje. Outro nome é erro (F522). |
Fora de um componente, de @header e de @footer, $palavra é texto comum. A única exceção é $content sozinho numa linha, que é erro (F401).
Comentários
Seção intitulada “Comentários”Uma linha que começa com // (com ou sem espaços antes) é ignorada, tanto no preâmbulo quanto nos slides.
// Revisar estes números antes da reunião# Resultados//no meio de uma linha é texto comum.- Dentro de blocos de código e de
::: notes, linhas com//são mantidas.
Escapes
Seção intitulada “Escapes”| Escreva | Para obter |
|---|---|
\*, \~, \`, \[, \], \! | O caractere literal, sem formatação. |
\{ | Uma chave literal; impede que {…} no fim da linha vire atributos. |
| `\ | ` |
\# no início da linha | Um # literal, sem virar título. |
\" dentro de um valor entre aspas | Uma aspa dentro do valor. |
A barra invertida escapa qualquer sinal de pontuação ASCII. Antes de outros caracteres, ela aparece normalmente.
Exemplo completo
Seção intitulada “Exemplo completo”// Preâmbulo: só definições, no topo do arquivo@title Relatório trimestral@theme paper@color marca #2f6fdb@style destaque {color=marca weight=bold}@component metrica {valor rotulo cor=accent}::: box {.card align=center}$valor {size=4xl weight=black color=$cor}$rotulo {.muted}:::@end
// Slide 1: o primeiro conteúdo começa o slideRelatório trimestral {.kicker}# Crescemos [38%]{.destaque} em receita {size=5xl}Novos clientes, mais retençãoe uma equipe maior. {.lead}
// Slide 2: separador com id e atributos de slide--- {#numeros align=center}## Números que importam::: grid {cols=3 gap=lg}:: metrica {valor=+38% rotulo=Receita}:: metrica {valor=12k rotulo=Clientes cor=green}:: metrica {valor=4,8 rotulo=Avaliação cor=blue}:::
::: notesDestacar a avaliação dos clientes.:::
// Slide 3: fundo em gradiente e revelação por etapas--- {bg=ink..violet color=white}## Próximos passos::: steps- Abrir duas novas regiões- Lançar o plano anual- Contratar o time de suporte:::Detalhes na [página de números](#numeros). {opacity=0.7}