PXD

Timeline

Display a series of events in chronological order.

Default

  • Released version 1.0
    2026-08-03
  • Approved for release
    2026-07-28
  • Created release candidate
    2026-07-21
<template>
  <PTimeline>
    <PTimelineItem timestamp="2026-08-03">Released version 1.0</PTimelineItem>
    <PTimelineItem timestamp="2026-07-28">Approved for release</PTimelineItem>
    <PTimelineItem timestamp="2026-07-21">Created release candidate</PTimelineItem>
  </PTimeline>
</template>

Mode

Use mode to position content relative to the timeline.

  • Released version 1.0
    2026-08-03
  • Approved for release
    2026-07-28
  • Created release candidate
    2026-07-21
<script setup>
import { ref } from 'vue'

const mode = ref('alternate')
</script>

<template>
  <PStack direction="vertical" gap="4">
    <PRadioGroup v-model="mode" variant="button">
      <PRadio value="start">Start</PRadio>
      <PRadio value="alternate">Alternate</PRadio>
      <PRadio value="alternate-reverse">Alternate reverse</PRadio>
      <PRadio value="end">End</PRadio>
      <PRadio value="horizontal">Horizontal</PRadio>
    </PRadioGroup>

    <PTimeline :mode="mode">
      <PTimelineItem timestamp="2026-08-03">Released version 1.0</PTimelineItem>
      <PTimelineItem timestamp="2026-07-28">Approved for release</PTimelineItem>
      <PTimelineItem timestamp="2026-07-21">Created release candidate</PTimelineItem>
    </PTimeline>
  </PStack>
</template>

Horizontal

Horizontal timelines retain readable item widths and can be scrolled when space is limited.

  • Released version 1.0
    2026-08-03
  • Approved for release
    2026-07-28
  • Created release candidate
    2026-07-21
  • Started development
    2026-07-14
<template>
  <PTimeline mode="horizontal">
    <PTimelineItem timestamp="2026-08-03">Released version 1.0</PTimelineItem>
    <PTimelineItem timestamp="2026-07-28">Approved for release</PTimelineItem>
    <PTimelineItem timestamp="2026-07-21">Created release candidate</PTimelineItem>
    <PTimelineItem timestamp="2026-07-14">Started development</PTimelineItem>
  </PTimeline>
</template>

Custom Node

Node color, size, type, icon, and appearance can be customized.

  • Custom icon
  • Custom color
  • Hollow node
  • Custom dot
<script setup>
import CheckCircleIcon from '@gdsicon/vue/check-circle'
</script>

<template>
  <PTimeline>
    <PTimelineItem :icon="CheckCircleIcon" size="large" type="primary">
      Custom icon
    </PTimelineItem>
    <PTimelineItem color="#7928ca">Custom color</PTimelineItem>
    <PTimelineItem type="success" hollow>Hollow node</PTimelineItem>
    <PTimelineItem>
      <template #dot>
        <PStatusDot state="READY" />
      </template>
      Custom dot
    </PTimelineItem>
  </PTimeline>
</template>

Timestamp Placement

  • 2026-08-03
    Timestamp above the content
  • Timestamp below the content
    2026-07-28
  • Hidden timestamp
<template>
  <PTimeline>
    <PTimelineItem timestamp="2026-08-03" placement="top">
      Timestamp above the content
    </PTimelineItem>
    <PTimelineItem timestamp="2026-07-28">Timestamp below the content</PTimelineItem>
    <PTimelineItem timestamp="2026-07-21" hide-timestamp>Hidden timestamp</PTimelineItem>
  </PTimeline>
</template>

Props

NameTypeDefaultDescription
mode'start' | 'alternate' | 'alternate-reverse' | 'end' | 'horizontal'startPosition and direction of the timeline
reversebooleanfalseReverse the order of timeline items

Timeline Item Props

NameTypeDefaultDescription
timestampstring''Timestamp content
hide-timestampbooleanfalseHide the timestamp
placement'top' | 'bottom'bottomTimestamp position
type'primary' | 'success' | 'warning' | 'danger' | 'info' | ''''Node type
colorstring''Custom node color
size'normal' | 'large'normalNode size
iconstring | Component-Node icon component
hollowbooleanfalseRender a hollow node

Slots

NameDescription
defaultTimeline items

Timeline Item Slots

NameDescription
defaultTimeline item content
dotCustom timeline node

Source

Source