properties
changelog

Limit Lines Component

The limit lines component truncates text after a specified number of lines.

This is useful when content length is unpredictable but the layout must remain consistent.

Typical use cases include:

  • article previews
  • card descriptions
  • product listings
  • search results

Instead of letting long text expand the layout, this component limits the number of visible lines and hides the overflow.


How It Works

The component uses the line-clamp property to restrict the number of visible lines.

PropertyPurpose
overflow: hidden;hides overflowing text
display: -webkit-box;enable multi-line truncation
-webkit-box-orient: vertical;sets vertical layout direction
-webkit-line-clamp: var(--lines, 1);defines number of visible lines
line-clamp: var(--lines, 1);modern equivalent of -webkit-line-clamp

See: Classes Reference

Setting Line Count

The number of visible lines is controlled by CSS variable --lines (default is 1).

To change the number of lines, use the Text Intent: @text lines-*;

Example:

<div class="my-essay">
  <p class="limit-lines">
    Lorem ipsum dolor sit amet consectetur adipisicing elit. Laborum commodi enim iure tempora rerum
    qui iste at dolore? Fuga, quam sint! Numquam molestiae, est amet quas sit officia! Alias, quos?
  </p>
</div>
.my-essay {
  @size w-60;

  .limit-lines {
    @text lines-2;
  }
}

The text will display only two lines, and the rest will be hidden.

Browser Support

The component relies on the -webkit-line-clamp technique, which currently has the best cross-browser support for multi-line truncation.

Important requirements:

.limit-lines {
  display: -webkit-box;
  -webkit-box-orient: vertical;
}

See: Line Clamp

Classes Reference

shilpcss/styles/components/limit-lines.css
/* NOTE:
- widely supported only when used with `-webkit-box` and `orient = vertical`
- https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/line-clamp
*/
.limit-lines {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--lines, 1);
  line-clamp: var(--lines, 1);
}

Published at:

Last updated at: