z-uiDesign system
Componentes · z-ui

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.

Marina Couto assinou o Contrato de locação às 14:08. Faltam 2 assinaturas: Rafael Antunes e Lívia Prado.

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

PropTipoPadrãoDescriçã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.coma—E-mail vira link mailto, na mesma aba.
<MarkdownText>{envelope.message}</MarkdownText>

<MarkdownText inline size="sm" className="line-clamp-1">{envelope.message}</MarkdownText>

Props

PropTipoPadrãoDescrição
childrenstring—Texto-fonte com a marcação.
inlinebooleanfalsespan em vez de p, com as quebras de linha juntadas.
size"sm" | "md""md"text-body-sm ou text-body-md.
classNamestring—Classe extra no elemento raiz.