July 22, 2024

/ ~

How to truncate texts in multiple lines

The SCSS implementation is as follows:

Terminal window
@mixin truncate-lines($line-count, $breakType: word) {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
white-space: pre-wrap;
-webkit-box-orient: vertical;
-webkit-line-clamp: $line-count;
@if $breakType =="word" {
word-break: break-word;
}
@else if $breakType =="letter" {
word-break: break-all
}
@else {
@error "Unknown break type #{$breakType}.";
}
}
.title {
@include truncate-lines(2, "letter")
}

The Less implementation is as follows:

Terminal window
.truncate-lines(@lineCount; @breakType: "word") {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
white-space: pre-wrap;
-webkit-box-orient: vertical;
-webkit-line-clamp: @lineCount;
& when (@breakType = "word") {
word-break: break-word;
}
& when (@breakType = "letter") {
word-break: break-all;
}
}
.title {
.max-lines(2, "letter");
}