MarkdownText
Texto com marcação leve vindo do remetente: instruções ao signatário, cláusulas e mensagens do envelope. O parser é próprio e monta elementos React, sem dangerouslySetInnerHTML e sem dependência; qualquer HTML digitado aparece como texto.
Instruções ao signatário
Negrito, itálico, código, link com rótulo e e-mail viram elementos. As quebras de linha são mantidas.
Olá, Rafael! Você é o 2º signatário do envelope Contrato de prestação de serviços.
1. Confira se o CPF 123.456.789-09 está correto.
2. Leia o documento até a última página antes de assinar.
3. Tenha um documento com foto em mãos para a selfie.
Dúvidas? Escreva para contratos@exemplo.com.br ou leia o guia de assinatura (abre em nova aba).
Cláusula do contrato
Tachado mostra o que mudou entre versões. O texto fica sobre o papel do documento, que é sempre claro.
Cláusula 4ª · Do prazo. O presente contrato vigora por 12 (doze) meses a contar da última assinatura, renovável por igual período. Prazo de 6 meses alterado na versão 3, conforme aditivo de 14/10/2026.
Parágrafo único. A rescisão antecipada exige aviso prévio de 30 dias, enviado para juridico@exemplo.com.br.
Prévia em uma linha
inline troca o parágrafo por span e junta as quebras num espaço. O corte com line-clamp fica com quem usa.
Conteúdo inseguro
Só links http, https e mailto são aceitos. javascript:, ftp: e caminhos relativos ficam como texto, e tags HTML nunca são interpretadas.
<img src=x onerror="alert(1)"> continua texto. [Link falso](javascript:alert(1)) e [outro](ftp://arquivos.exemplo.com.br/contrato.pdf) também. Só https://exemplo.com.br/verificar (abre em nova aba) vira link.
Sintaxe
| Prop | Tipo | Padrão | Descrição |
|---|---|---|---|
| *texto* ou **texto** | strong | — | Negrito. |
| _texto_ | em | — | Itálico. Não dispara dentro de palavras, como em nome_do_arquivo. |
| ~texto~ ou ~~texto~~ | s | — | Tachado. |
| `texto` ou ```texto``` | code | — | Trecho monoespaçado. O conteúdo não recebe outra marcação. |
| [rótulo](https://…) | a | — | Link com rótulo. Abre em nova aba com rel noopener noreferrer. |
| https://… ou www.… | a | — | URL solta vira link. |
| nome@dominio.com | a | — | E-mail vira link mailto, na mesma aba. |
<MarkdownText>{envelope.message}</MarkdownText>
<MarkdownText inline size="sm" className="line-clamp-1">{envelope.message}</MarkdownText>Props
| Prop | Tipo | Padrão | Descrição |
|---|---|---|---|
| children | string | — | Texto-fonte com a marcação. |
| inline | boolean | false | span em vez de p, com as quebras de linha juntadas. |
| size | "sm" | "md" | "md" | text-body-sm ou text-body-md. |
| className | string | — | Classe extra no elemento raiz. |