Truncate

Truncate - компонент для усечения длинного текста с автоматическим добавлением многоточия. Идеально подходит для ограничения отображения текста в списках, карточках и других UI элементах с ограниченным пространством.


Import

Usage

Базовый пример усечения текста с ограничением в 3 строки.

Варианты усечения

Truncate поддерживает три варианта усечения текста: default, show-more и middle.

Default

Стандартный вариант усечения с многоточием в конце.

Одна строка

Несколько строк

Show More

Вариант с кнопками "Показать больше" и "Показать меньше" для раскрытия полного текста.

Кастомные кнопки

Вы можете использовать любые React элементы в качестве кнопок.

Middle

Усечение в середине текста. Полезно для длинных путей к файлам, URL-адресов, где важно видеть начало и конец.

Путь к файлу

URL адрес

Tooltip

С тултипом

Показывайте полный текст в тултипе при наведении.

Кастомный контент тултипа

Вы можете настроить содержимое тултипа.

Дополнительные опции

Обрезка пробелов

Используйте trimWhitespace для автоматической очистки лишних пробелов.

Свойства

Truncate Props

АтрибутТипОписаниеПо умолчанию
variant'default' | 'show-more' | 'middle'Вариант усечения текста'default'
childrenReactNodeТекст для усечения (обязательное)-
classNamestringДополнительные CSS классы-
showTooltipbooleanПоказывать тултип с полным текстом при наведенииfalse
tooltipContentReactNodeКастомное содержимое тултипа-
tooltipPropsTooltipPropsДополнительные пропсы для компонента Tooltip-

Default Variant Props

Специфичные свойства для варианта default:

АтрибутТипОписаниеПо умолчанию
linesnumberКоличество строк перед усечением1
ellipsisstringСимвол многоточия'...'
trimWhitespacebooleanОбрезать лишние пробелыfalse
separatorstringРазделитель для поиска позиции усечения' '

Show More Variant Props

Специфичные свойства для варианта show-more:

АтрибутТипОписаниеПо умолчанию
linesnumberКоличество строк перед усечением3
moreReactNodeКнопка "Показать больше"'Show more'
lessReactNodeКнопка "Показать меньше"'Show less'
ellipsisstringСимвол многоточия'...'
trimWhitespacebooleanОбрезать лишние пробелыfalse
separatorstringРазделитель для поиска позиции усечения' '
expandedbooleanКонтролируемое состояние развернутости-
defaultExpandedbooleanНачальное состояние развернутостиfalse
onToggle(expanded: boolean) => voidКоллбэк при изменении состояния-

Middle Variant Props

Специфичные свойства для варианта middle:

АтрибутТипОписаниеПо умолчанию
endnumberКоличество символов в конце текста10
ellipsisstringСимвол многоточия'...'
separatorstringРазделитель для поиска позиции усечения' '

Примеры использования

В карточке

В списке с путями

С длинным описанием

Для email адресов

С контролируемым состоянием

Accessibility

Компонент Truncate поддерживает базовые принципы доступности:

  • Полный текст всегда доступен через тултип (если включен showTooltip)
  • Кнопки "Show more/less" доступны с клавиатуры
  • Семантическая структура HTML сохраняется

Основано на

Truncate использует библиотеку @re-dev/react-truncate для реализации функциональности усечения текста.