PXD

Ellipsis Text

Display ellipsis for long text and support for expanding or collapsing text.

Default

Lorem ipsum dolor sit amet consectetur adipisicing elit. Harum doloremque et debitis natus quas praesentium inventore! Numquam facilis expedita, sequi alias esse natus, modi nesciunt ...
<template>
  <PEllipsisText
    text="Lorem ipsum dolor sit amet consectetur adipisicing elit. Harum doloremque et debitis natus quas praesentium inventore! Numquam facilis expedita, sequi alias esse natus, modi nesciunt doloremque, optio dolorem vel et."
  />
</template>

Action

isEllipsis: true

Lorem ipsum dolor sit amet consectetur adipisicing elit. Harum doloremque et debitis natus quas praesentium inventore! Numquam facilis expedita, sequi alias esse natus, modi ...Read more
<script setup>
import { shallowRef, computed } from 'vue'

const ellipsisTextRef = shallowRef()

const isEllipsis = computed(() => {
  return ellipsisTextRef.value?.isOverflow && !ellipsisTextRef.value?.isExpanded
})
</script>

<template>
  <PText secondary>isEllipsis: {{ isEllipsis }}</PText>

  <PEllipsisText
    ref="ellipsisTextRef"
    action
    more-text="Read more"
    less-text="Read less"
    more-action-class="text-red-900"
    less-action-class="text-teal-900"
    text="Lorem ipsum dolor sit amet consectetur adipisicing elit. Harum doloremque et debitis natus quas praesentium inventore! Numquam facilis expedita, sequi alias esse natus, modi nesciunt doloremque, optio dolorem vel et."
  />
</template>

Rows

Lorem ipsum dolor sit amet consectetur adipisicing elit. Harum doloremque et debitis natus quas praesentium inventore! Numquam facilis expedita, sequi alias esse natus, modi nesciunt doloremque, optio dolorem vel et. Lorem ipsum dolor sit amet consectetur adipisicing elit. Harum doloremque et debitis natus quas praesentium inventore! Numquam facilis expedit...Expand
<template>
  <PEllipsisText
    :rows="2"
    action
    text="Lorem ipsum dolor sit amet consectetur adipisicing elit. Harum doloremque et debitis natus quas praesentium inventore! Numquam facilis expedita, sequi alias esse natus, modi nesciunt doloremque, optio dolorem vel et. Lorem ipsum dolor sit amet consectetur adipisicing elit. Harum doloremque et debitis natus quas praesentium inventore! Numquam facilis expedita, sequi alias esse natus, modi nesciunt doloremque, optio dolorem vel et."
  />
</template>

Position

start

...r adipisicing elit. Harum doloremque et debitis natus quas praesentium inventore! Numquam facilis expedita, sequi alias esse natus, modi nesciunt doloremque, optio dolorem vel et.Expand

middle

Lorem ipsum dolor sit amet consectetur adipisicing elit. Harum doloremque et debitis natus ... facilis expedita, sequi alias esse natus, modi nesciunt doloremque, optio dolorem vel et.Expand

end

Lorem ipsum dolor sit amet consectetur adipisicing elit. Harum doloremque et debitis natus quas praesentium inventore! Numquam facilis expedita, sequi alias esse natus, modi nesc...Expand
<script setup>

const text = 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Harum doloremque et debitis natus quas praesentium inventore! Numquam facilis expedita, sequi alias esse natus, modi nesciunt doloremque, optio dolorem vel et.'
</script>

<template>
  <PStack>
    <div>
      <PText secondary>start</PText>
      <PEllipsisText
        action
        :text="text"
        position="start"
      />
    </div>

    <div>
      <PText secondary>middle</PText>
      <PEllipsisText
        action
        :text="text"
        position="middle"
      />
    </div>

    <div>
      <PText secondary>end</PText>
      <PEllipsisText
        action
        :text="text"
        position="end"
      />
    </div>
  </PStack>
</template>

Props

NameTypeDefaultDescription
textstring-Text to truncate when it overflows its container
dotsstring...String that marks where the text was cut
rowsnumber1Maximum number of lines shown before truncating
actionboolean-Render a link that expands and collapses the full text
position'start' | 'middle' | 'end'endWhere dots are placed in the truncated text
more-textstringExpandLabel of the action while the text is collapsed
less-textstringCollapseLabel of the action while the text is expanded
more-action-classstring-Extra class for the action in the collapsed state
less-action-classstring-Extra class for the action in the expanded state

Events

NameTypeDescription
toggle(expanded: boolean) => voidEmitted when the action link is clicked to expand or collapse the text.

Methods

NameTypeDescription
isExpandedbooleanRead whether the full text is currently expanded.
isOverflowbooleanRead whether the text overflows its container and is being truncated.

Source

Source