Makuco UI
ComponentesStyles

Typography

Classes CSS utilitárias para aplicar a escala tipográfica do Makuco UI em qualquer elemento HTML.

Typography no Makuco UI não é um web component — são classes CSS globais aplicáveis em qualquer elemento HTML. A fonte utilizada é Plus Jakarta Sans em todas as escalas. O sistema tipográfico garante hierarquia visual consistente em toda a interface ao codificar as decisões de tamanho, peso, altura de linha e espaçamento entre letras em um conjunto de estilos pré-definidos, eliminando ambiguidade e assegurando que a mesma intenção tipográfica se repita em todos os produtos. Cada estilo segue o padrão de nomenclatura mk-typography-{grupo}-{tamanho}-{peso}, com grupos disponíveis: display, heading, title, body, caption, label.

Quando usar

Use os text styles do Makuco sempre que precisar aplicar tipografia com consistência e alinhada ao sistema de design.

Use quando:
  • Precisar aplicar um título, subtítulo, texto de corpo, legenda ou rótulo de interface em qualquer tela do produto.
  • Quiser garantir que o texto respeite a hierarquia visual definida pelo design system.
  • For necessário padronizar estilos tipográficos em diferentes times ou produtos dentro do mesmo ecossistema.
  • Precisar criar conteúdo editorial de alto impacto (landing pages, hero sections) — use os estilos display.
Prefira uma alternativa quando:
  • O texto tiver um estilo completamente personalizado que não pertence à hierarquia do produto (ex.: logotipos, marcas, arte gráfica fora do sistema) — nesse caso, aplique CSS customizado fora do escopo do design system.
  • For necessário usar uma família tipográfica diferente da Plus Jakarta Sans por exigência editorial específica.

Anatomia

O sistema tipográfico é organizado em 6 categorias, cada uma com propósito semântico distinto, combinadas com tamanhos e pesos para compor os tokens de estilo.

#ParteObrigatório?Função
1Prefixo mk-typographySimIdentifica a classe como pertencente ao sistema tipográfico do Makuco.
2Grupo (display, heading, title, body, caption, label)SimDefine o papel semântico do texto na hierarquia visual.
3Tamanho (2xl, xl, lg, md, sm)Depende do grupoSeleciona o tamanho de fonte dentro da categoria. Caption não possui subdivisão de tamanho.
4Peso (regular, semi-bold, bold, extra-bold)SimDefine a espessura da fonte, controlando ênfase e hierarquia visual dentro de um mesmo nível.

Display

Para seções hero, páginas de marketing e layouts editoriais. Use com parcimônia — no máximo uma vez por tela — reservado para momentos de grande destaque visual. Em telas de produto como formulários, tabelas e dashboards operacionais, prefira iniciar a hierarquia pelo heading.

TokenTamanhoAltura de linhaEspaçamentoQuando usar
display-2xl-*72px90px-1.4pxTítulos hero, landing pages, páginas de marketing
display-xl-*60px74px-1.1pxSeções de grande destaque em dashboards ou páginas de produto
<h1 className="mk-typography-display-xxl-bold">Título principal</h1>
<h2 className="mk-typography-display-xl-regular">Subtítulo hero</h2>
<h1 class="mk-typography-display-xxl-bold">Título principal</h1>
<h2 class="mk-typography-display-xl-regular">Subtítulo hero</h2>

Heading

Para títulos de página e seção. Correspondem à hierarquia H1–H2 do conteúdo e devem ser o ponto de partida da tipografia em telas de produto — formulários, tabelas, dashboards e interfaces operacionais.

TokenTamanhoAltura de linhaEspaçamentoQuando usar
heading-xl-*48px60px-0.8pxTítulo principal de uma página (H1), modais grandes, telas de boas-vindas
heading-lg-*40px50px-0.6pxSubtítulos de alto nível (H2), grandes blocos de conteúdo
heading-md-*32px40px-0.4pxSubtítulos de nível intermediário (H2/H3)
heading-sm-*28px36px-0.3pxSubtítulos de nível intermediário (H3)
<h1 className="mk-typography-heading-xl-bold">Página</h1>
<h2 className="mk-typography-heading-md-semi-bold">Seção</h2>
<h1 class="mk-typography-heading-xl-bold">Página</h1>
<h2 class="mk-typography-heading-md-semi-bold">Seção</h2>

Title

Para títulos de cards, dialogs e subseções. Use para títulos de escopo menor — abas, sidebars e seções internas — correspondendo à hierarquia H4 e abaixo do conteúdo.

TokenTamanhoAltura de linhaEspaçamentoQuando usar
title-md-*24px30px-0.2pxTítulos de cards, seções dentro de uma aba, sidebars (H4)
title-sm-*20px24px0pxTítulos de cards menores, subtítulos de seções terciárias

Body

Escala padrão para texto de interface e prosa. É o estilo mais usado na interface — destinado a leitura corrida, parágrafos e descrições. Não o intercambie com label: embora os tamanhos sejam similares (16px e 14px), body é para conteúdo de leitura e label é para nomear elementos interativos.

TokenTamanhoAltura de linhaEspaçamentoQuando usar
body-md-*16px20px0pxTexto padrão — parágrafos, descrições, conteúdo de artigos, textos de ajuda
body-sm-*14px18px0pxTexto secundário — descrições compactas, detalhes, conteúdo em espaço reduzido
<p className="mk-typography-body-md-regular">Texto de conteúdo principal.</p>
<p className="mk-typography-body-sm-regular">Texto de apoio ou metadados.</p>
<p class="mk-typography-body-md-regular">Texto de conteúdo principal.</p>
<p class="mk-typography-body-sm-regular">Texto de apoio ou metadados.</p>

Caption

Para legendas, notas de rodapé e texto auxiliar. Não deve ser usado para conteúdo de leitura corrida nem para mensagens críticas ou instruções de preenchimento — reservado para informações verdadeiramente auxiliares de baixa hierarquia visual.

TokenTamanhoAltura de linhaEspaçamentoQuando usar
caption-*12px14px0pxLegendas de imagem, mensagens de erro pequenas, informações legais, tooltips

Label

Para rótulos de controles interativos: botões, abas, campos de formulário. Texto de interface — não para leitura corrida, mas para nomear ações e elementos interativos. Não o intercambie com body: embora os tamanhos se sobreponham, label é especificamente pensado para elementos de UI que demandam ação ou identificação.

TokenTamanhoAltura de linhaEspaçamentoQuando usar
label-lg-*16px20px0pxBotões grandes, rótulos de campos, itens de menu principais
label-md-*14px18px0pxBotões médios, abas, checkboxes, radios, badges, chips
label-sm-*12px14px0pxBotões pequenos, rótulos compactos, elementos de baixa hierarquia

Comportamento

Os text styles são imutáveis por design — cada token encapsula todas as propriedades tipográficas (tamanho, peso, altura de linha, espaçamento entre letras) de forma indivisível. Isso significa que não é possível, por exemplo, aplicar o tamanho de body-md com o peso de heading-xl: o par grupo+tamanho+peso forma uma unidade semântica.

Ao trocar o estilo de um elemento (por exemplo, de body-md-regular para body-md-bold), apenas o peso muda — tamanho e altura de linha permanecem idênticos, garantindo estabilidade no layout. Essa característica permite criar ênfase visual dentro de um bloco de texto sem deslocar o espaçamento vertical.

A família tipográfica Plus Jakarta Sans é carregada como parte do pacote do Makuco UI. Não é necessário importar a fonte separadamente; ela estará disponível assim que o CSS do sistema for incluído na aplicação.

Composição

Os text styles funcionam de forma independente de outros tokens — podem ser aplicados em qualquer elemento HTML sem dependência de componentes específicos do Makuco. Eles compõem bem com tokens de cor (--db1-text-color-*), espaçamento (--db1-spacing-*) e os próprios componentes do sistema, que internamente já usam os text styles corretos para cada contexto.

Ao construir layouts hierárquicos, combine as categorias do sistema para criar uma progressão legível: display ou heading para o título principal, title para subdivisões, body para o conteúdo e caption ou label para metadados e ações.

Ao aplicar tipografia, use sempre um token de text style — nunca configure os valores manualmente. Ajustes manuais de tamanho, peso, altura de linha ou espaçamento entre letras quebram a consistência e dificultam atualizações globais do sistema.

Referência de pesos

Sufixofont-weightFonte real (Plus Jakarta Sans)Uso recomendado
extra-bold700BoldMáximo impacto — títulos hero, ênfase em display e heading.
bold600SemiBoldTítulos, labels primários e estados ativos.
semi-bold500MediumDestaque suave — subheadings, rótulos secundários.
regular400RegularLeitura corrida, corpo de texto e prosa.

Diretrizes

  • Use o grupo semântico que corresponde ao papel do texto, não ao tamanho visual desejado.
  • Prefira regular para texto de corpo; use semi-bold ou bold para criar hierarquia dentro de um parágrafo.
  • Evite mais de dois ou três tamanhos tipográficos em uma única tela. Em geral, use no máximo 2–3 pesos diferentes na mesma tela — misturar muitos pesos fragmenta a hierarquia visual.
  • Não use extra-bold em body ou caption — o ganho de peso sem aumento de tamanho gera ruído visual.
  • Body vs Label: ambos têm tamanhos similares (16px e 14px), mas têm propósitos distintos: body é para leitura corrida; label é para nomear elementos interativos. Não os intercambie.
  • Display é para impacto, não para estrutura: em telas de produto (formulários, tabelas, dashboards operacionais), comece a hierarquia pelo heading.

Acessibilidade

Tamanho mínimo de leitura: Body/sm (14px) é o menor tamanho recomendado para texto de conteúdo. Caption (12px) deve ser reservado para informações verdadeiramente auxiliares — nunca para mensagens críticas ou instruções de preenchimento.

Altura de linha generosa: todos os estilos body e label têm altura de linha maior ou igual a 125% do tamanho — isso garante legibilidade adequada para usuários com dislexia ou baixa visão.

Espaçamento negativo em Display e Heading: os estilos maiores usam letter-spacing negativo para melhorar a legibilidade em tamanhos grandes. Não ajuste esses valores manualmente — eles são parte integral do token.

Não use apenas variação de peso para comunicar significado: usuários com baixa visão podem não perceber a diferença entre regular e semi-bold em tamanhos pequenos. Complemente com cor, ícone ou estrutura quando precisar destacar informação crítica.

On this page