Categorias do Site

Como usar CSS line-clamp para limitar texto

Aprenda a usar a propriedade CSS line-clamp para limitar linhas de texto e melhorar a aparência do layout.

Fundo gradiente em tons de laranja e violeta com o texto

Se você já precisou limitar a quantidade de linhas de um elemento sem recorrer ao JavaScript, a propriedade CSS line-clamp pode ajudar. É uma forma prática de controlar o conteúdo criado por usuários, manter cartões alinhados ou evitar que o texto quebre o layout.

Em termos simples, line-clamp limita o número de linhas em um contêiner de bloco a uma quantidade especificada (desde que não seja multi-coluna). Quando ocorre o clamp, o texto excedente é cortado e substituído por reticências () para indicar que há mais a ser lido. Não há uma alternância embutida para expandir o texto, mas é uma abordagem limpa e leve para controle de layout.

Neste artigo, você aprenderá a usar line-clamp de forma eficaz em diversos navegadores, quais peculiaridades observar e como isso impacta a UX e acessibilidade.

Por que usar line-clamp?

A propriedade pode ser útil em vários cenários: aparar texto gerado por usuário, garantir layouts de cartões consistentes ou até mesmo restringir conteúdo atrás de um paywall.

Por exemplo, para restringir conteúdo criado por usuários:

Veja o Pen line-clamp user content por Daniel Schwarz (@mrdanielschwarz) no CodePen.

Ou para alinhar layouts de cartões de forma mais ordenada:

Veja o Pen line-clamp cards por Daniel Schwarz (@mrdanielschwarz) no CodePen.

Ou até mesmo para truncar uma pré-visualização de artigo para um paywall:

Veja o Pen line-clamp paywall por Daniel Schwarz (@mrdanielschwarz) no CodePen.

Apesar de sua utilidade, line-clamp possui várias peculiaridades que vão desde inconsistências entre navegadores até falhas sutis de UX, e requer um conjunto específico de propriedades complementares para funcionar corretamente.

Como usar line-clamp (solução entre navegadores)

Em um mundo ideal, você poderia simplesmente escrever line-clamp: 2; para limitar o texto a duas linhas. Em navegadores Chromium como Chrome, Edge e Opera, isso funciona bem, embora a documentação no MDN ou Can I use… ainda sugira o contrário. Na prática, você precisará de algumas propriedades extras para garantir resultados consistentes em todos os navegadores.

Aqui está uma implementação funcional entre navegadores:

p {
  /* Safari & Firefox */
  -webkit-line-clamp: 2;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;

  /* Chromium */
  line-clamp: 2;
}

Essa configuração usa tanto as versões com prefixo de fornecedor quanto as não prefixadas lado a lado. O Firefox suporta a sintaxe com prefixo WebKit, portanto, isso funciona em todos os principais navegadores.

Se você preferir um código condicional mais limpo, pode usar a regra @supports:

p {
  @supports (line-clamp: 2) {
    line-clamp: 2;
  }

  @supports not (line-clamp: 2) {
    -webkit-line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
}

Dito isso, a primeira abordagem é mais segura, pois o suporte a navegadores para a propriedade line-clamp sem prefixo ainda está evoluindo.

Personalizando ou substituindo as reticências

Infelizmente, não há uma maneira embutida de personalizar ou remover as reticências () geradas por line-clamp. A propriedade text-overflow não se aplica, pois só afeta o overflow inline. Mesmo usar text-overflow: clip não funciona aqui.

A propriedade proposta block-ellipsis pode eventualmente permitir que os desenvolvedores estilizem ou substituam as reticências, mas por enquanto, não é suportada. Você também não pode adicionar um link “Leia mais” dentro do mesmo contêiner — ele apareceria após o conteúdo truncado, que não é visível.

Não há uma solução elegante ainda, embora alguns desenvolvedores experimentem sobreposições ou máscaras de desvanecimento. Por enquanto, é melhor abraçar as reticências embutidas ou projetar em torno delas.

As falhas de UX de line-clamp

Embora line-clamp pareça ótimo visualmente, ele levanta algumas questões sutis de UX e acessibilidade.

  • Busca na página: A pesquisa do navegador ainda detecta o texto truncado, mesmo que esteja oculto, confundindo os usuários que não conseguem rolar até ele.
  • Leitores de tela: O conteúdo truncado é acessível para tecnologias assistivas, o que pode causar expectativas confusas se você estiver ocultando intencionalmente parte do conteúdo (como um paywall).
  • SEO: Os motores de busca podem indexar o texto truncado, já que ele permanece no código fonte, potencialmente mostrando conteúdo oculto em snippets.

Em resumo, line-clamp corta o conteúdo visualmente, mas não semanticamente. Isso pode ser aceitável para casos de uso estético, mas problemático para trechos ou conteúdo restrito.

Como line-clamp pode melhorar a UX

Apesar dessas limitações, line-clamp pode aumentar a clareza visual e a legibilidade quando usado intencionalmente.

Em layouts de cartões, ele mantém descrições uniformes, permitindo que os usuários analisem mais conteúdo de uma vez:

Veja o Pen line-clamp cards por Daniel Schwarz (@mrdanielschwarz) no CodePen.

Quando aplicado ao conteúdo gerado por usuários, ele evita que layouts sejam quebrados por bios ou mensagens muito longas:

Veja o Pen line-clamp bios por Daniel Schwarz (@mrdanielschwarz) no CodePen.

E quando usado de forma criativa, pode até mesmo impor pré-visualizações de paywall em múltiplos elementos aninhados, aplicando line-clamp ao elemento pai

:

Veja o Pen line-clamp article por Daniel Schwarz (@mrdanielschwarz) no CodePen.

Este truque é raramente documentado, mas é uma maneira inteligente de lidar com trechos de múltiplos elementos.

Alternativas ao line-clamp

Uma alternativa envolve usar unidades de altura de linha para simular um clamp:

p {
  max-height: 3lh; /* equivalente a aproximadamente três linhas de texto */
  overflow: hidden;
}

Esta abordagem evita prefixos de fornecedor e sintaxe não padrão, mas não possui uma reticência nativa. Alguns desenvolvedores desvanecem a última linha com um gradiente, mas é menos preciso do que line-clamp, que corta exatamente na fronteira do caractere.

O veredicto

O objetivo do line-clamp é simples — limitar o texto visível a um número fixo de linhas. É uma maneira elegante e nativa do navegador de organizar layouts e gerenciar conteúdo imprevisível. Mas enquanto funciona visualmente, ainda não é perfeito para acessibilidade ou SEO.

As reticências ainda não são personalizáveis, e o suporte a navegadores, embora esteja melhorando, permanece desigual. A futura propriedade block-ellipsis pode resolver algumas dessas lacunas no futuro.

Até lá, line-clamp continua sendo a melhor opção para truncamento de múltiplas linhas. É confiável o suficiente para uso em produção — apenas esteja ciente de suas peculiaridades antes de depender dele para fluxos críticos de UX.

  • Enfrentando a Complexidade com GraphQL

    Descubra como GraphQL facilita o desenvolvimento de soluções inteligentes com IA.

    Descubra como GraphQL facilita o desenvolvimento de soluções inteligentes com IA.

    Ler notícia completa
    Banner de podcast da UX Magazine intitulado
  • UX: Emoções Além das Telas no Design

    Descubra como o design emocional transforma experiências, indo além das telas e criando conexões humanas.

    Descubra como o design emocional transforma experiências, indo além das telas e criando conexões humanas.

    Ler notícia completa
    Símbolo abstrato em tons de marrom e laranja que se assemelha a uma pessoa estilizada com braços estendidos e uma perna erguida.
  • Como usar CSS line-clamp para limitar texto

    Aprenda a usar a propriedade CSS line-clamp para limitar linhas de texto e melhorar a aparência do layout.

    Aprenda a usar a propriedade CSS line-clamp para limitar linhas de texto e melhorar a aparência do layout.

    Ler notícia completa
    Fundo gradiente em tons de laranja e violeta com o texto
  • Promise.all ainda é relevante em 2025?

    Antes das promises serem introduzidas nativamente no JavaScript, usávamos muitos callbacks para tarefas assíncronas. É comum ver callbacks sendo usados, pois muitos desenvolvedores podem ainda pensar que callbacks e promises são o mesmo, mas não são. Quando promises foram introduzidas, substituíram amplamente os callbacks, tornando a sintaxe mais compreensível. Em 2025, com async/await, Promise.allSettled, Promise.any […]

    Promise.all é crucial para tarefas assíncronas, mas novas alternativas surgem em 2025. Saiba quando usá-lo.

    Ler notícia completa
    Logotipo do JavaScript (JS) em quadrado amarelo sobre fundo com ondas suaves em tons de branco e cinza claro.
  • Equilibrando IA e UX: O Desafio do Design Humanizado

    A IA está sendo integrada aos fluxos de trabalho de design modernos, ajudando na geração de conteúdo, ideação e prototipagem. Isso aumenta a eficiência das equipes de design, aprimorando a forma como criamos, pensamos e resolvemos problemas. No entanto, a IA também traz preocupações ao processo de design, como a possível perda de foco no […]

    Descubra como manter o design UX humanizado enquanto utiliza IA para otimizar processos e aumentar a produtividade.

    Ler notícia completa
    Mão robótica branca tocando a ponta do dedo de uma mão humana contra um fundo colorido em tons de arco-íris.
  • A Revolução dos Navegadores com IA: Impactos e Futuro

    Há uma revolução silenciosa ocorrendo em um software que você usa diariamente, mas raramente pensa sobre: o navegador. Chrome, Safari, Firefox têm sido nossas janelas para a web por décadas. Agora, algo significativo está acontecendo. Uma nova espécie de navegador está surgindo: o navegador com IA. Ele não apenas muda como navegamos, mas redefine o […]

    Navegadores com IA estão mudando a web, impactando a criatividade, economia e verdade online.

    Ler notícia completa
    Tela de interface do Instacart mostrando produtos essenciais para praia à venda, como protetor solar e toalhas, com uma janela de chat com o assistente virtual aberta.
  • As 3 previsões para o futuro do design UX

    A evolução tecnológica moderniza e melhora todas as áreas da tecnologia, incluindo o design de dispositivos digitais, automação, desenvolvimento de software e design UI/UX. Essa evolução e as inovações em HCI (Interação Humano-Computador) impulsionam o design UI/UX para ajudar designers a criar produtos digitais mais amigáveis, usáveis e produtivos para todos os usuários. O design […]

    Confira as três principais previsões para a próxima era do design UX e como elas podem impactar o futuro das interfaces digitais.

    Ler notícia completa
    Ilustração em 3D de um computador desktop moderno com ícones em estilo futurista na tela, sobre fundo roxo com linhas de rede digitais.
  • A Importância do Enquadramento no Design

    No design, o enquadramento do problema está se tornando o cerne do papel humano. À medida que a IA, ou o que chamo de Programa, assume mais o trabalho de solução, nosso ofício muda para como tratamos o problema. “A IA não está substituindo designers; está substituindo designers que focam em saídas automatizáveis.” Citação e […]

    Explorando como o enquadramento de problemas redefine o papel humano no design em tempos de IA.

    Ler notícia completa
    Imagem de rabisco em preto e branco cheia de palavras e desenhos, incluindo cabeças estilizadas, uma palavra
  • Psicologia Ética no E-commerce: Facilite Compras

    A psicologia no e-commerce tem uma má reputação, muitas vezes associada a táticas de manipulação como escassez artificial e cobranças ocultas. No entanto, existe um lado positivo: a facilitação das compras sem manipulação. Trabalhando anos com e-commerce, percebi que a maioria dos problemas de conversão está em facilitar o processo de compra. Vou mostrar quatro […]

    Aprenda como remover barreiras psicológicas no e-commerce, promovendo compras éticas sem manipulação.

    Ler notícia completa
    Ilustração de um trator removendo neve da estrada, com carros vermelhos parcialmente cobertos de neve ao lado. Ambiente frio com árvores ao fundo.