Section Timeline

The VSectionTimeline component is designed to display a timeline with customizable items and an optional "Show All" toggle. It includes cards for detailed information and a button for additional actions.

Props

Prop NameTypeDefaultRequiredDescription
dataICaseStudiesTimelineItem[]undefinedYesArray of timeline data objects defining each timeline section and its content.
prevStringundefinedNoURL for the "Previous" navigation link.
nextStringundefinedNoURL for the "Next" navigation link.
topicStringundefinedNoTopic parameter for the action button's URL.
titleStringundefinedNoTitle of the timeline section.
showAllBooleanfalseNoDetermines whether to display all timeline items or only the first one.
horizontalBooleanfalseNoDetermines whether the timeline should be displayed horizontally.
ts
interface ICaseStudiesTimelineItemCard {
  title: string;
  duration: string;
  text: string;
  type?: 'active' | 'complete' | 'not-complete';
  variant?: 'primary' | 'inner' | 'highlight';
}
interface ICaseStudiesTimelineItem {
  circleType?: 'active' | 'not-complete' | 'complete' | 'highlight';
  title: string;
  items: ICaseStudiesTimelineItemCard[];
}

Slots

Slot NameDescription
titleSlot to customize the timeline's title section.

Example

vue
<script setup lang="ts">
import VSectionTimeline from 'UiKit/components/VSection/VSectionTimeline.vue';

const timelineData = [
  {
    title: "Phase 1",
    circleType: "highlight",
    items: [
      {
        title: "Task 1",
        text: "Description of task 1.",
        duration: "1 month",
        variant: "primary",
      },
    ],
  },
  {
    title: "Phase 2",
    items: [
      {
        title: "Task 2",
        text: "Description of task 2.",
        duration: "2 months",
        variant: "highlight",
      },
    ],
  },
];
</script>

<template>
  <VSectionTimeline
    :data="timelineData"
    title="Project Timeline"
    topic="project-timeline"
    :showAll="true"
  />
</template>

Project Timeline

Phase 1

Task 1

Duration: 1 month

Description of task 1.

Phase 2

Task 2

Duration: 2 months

Description of task 2.

Horizontal

vue
<script setup lang="ts">
import VSectionTimeline from 'UiKit/components/VSection/VSectionTimeline.vue';

const timelineData = [
  {
    title: "Phase 1",
    circleType: "highlight",
    items: [
      {
        title: "Task 1",
        text: "Description of task 1.",
      },
    ],
  },
  {
    title: "Phase 2",
    items: [
      {
        title: "Task 2",
        text: "Description of task 2.",
      },
    ],
  },
];
</script>

<template>
  <VSectionTimeline
    :data="timelineData"
    title="Project Timeline"
    topic="project-timeline"
    :showAll="true"
    horizontal
  />
</template>

Project Timeline

Phase 1

Task 1

Description of task 1.

Phase 2

Task 2

Description of task 2.

Help Ukraine to stop russian aggression