https://framer.com/m/Timeline-vONb.js

Io / Enhancements / MilestoneTimeline

MilestoneTimeline

MilestoneTimeline lays a run of milestones along a wide arc, each one holding its own steps, and moves the active marker along that arc as the reader picks a point.

Enhancements19 controlsarc layoutsample data

Examples

Live specimens for every control the component exposes.

Default

Milestones come from the Manual array — a time label plus a list of steps, each with an icon and a line of copy. The specimens on this page carry sample content so the shape is visible; swap in your own.

🔍

Read the source and map every section.

Discovery
✏️

Build one page and stop for review.

Draft
🔁

Fix what the review turns up.

Review
🚀

Publish and record what was learned.

Ship

Arc width

circleWidth is the radius of the arc the markers sit on, from 1000 to 10000 pixels. Small values curve hard, large values read almost flat.

arc 1500

🔍

Read the source and map every section.

Discovery
✏️

Build one page and stop for review.

Draft
🔁

Fix what the review turns up.

Review
🚀

Publish and record what was learned.

Ship

arc 3500 (default)

🔍

Read the source and map every section.

Discovery
✏️

Build one page and stop for review.

Draft
🔁

Fix what the review turns up.

Review
🚀

Publish and record what was learned.

Ship

arc 7000

🔍

Read the source and map every section.

Discovery
✏️

Build one page and stop for review.

Draft
🔁

Fix what the review turns up.

Review
🚀

Publish and record what was learned.

Ship

Motion and state

enableAnimation steps through the milestones on its own at animationInterval seconds. defaultActiveStepIndex picks which one is lit when the page loads.

auto-loop on

🔍

Read the source and map every section.

Discovery
✏️

Build one page and stop for review.

Draft
🔁

Fix what the review turns up.

Review
🚀

Publish and record what was learned.

Ship

auto-loop off

🔍

Read the source and map every section.

Discovery
✏️

Build one page and stop for review.

Draft
🔁

Fix what the review turns up.

Review
🚀

Publish and record what was learned.

Ship

second step active

🔍

Read the source and map every section.

Discovery
✏️

Build one page and stop for review.

Draft
🔁

Fix what the review turns up.

Review
🚀

Publish and record what was learned.

Ship

Props

The controls exposed on the instance panel.

PropTypeBehaviour
dataSourceenumjson or raw. Where the milestones come from.
jsonDatastringJSON array of milestones when dataSource is json.
rawDataarrayMilestones set in the panel: a time label plus a list of steps.
defaultActiveStepIndexnumberWhich milestone is lit on load.
circleWidthnumberRadius of the arc the markers sit on, 1000 to 10000 pixels.
angleBetweenMinorStepsnumberAngular spacing between steps, 0.1 to 1 degrees.
lineCountFillBetweenStepsnumberHow many tick lines fill the gap between steps.
boundaryPlaceholderLinesCountnumberTick lines drawn past the first and last milestone.
enableAnimationbooleanSteps through the milestones on its own.
animationIntervalnumberSeconds each milestone holds while auto-looping.
verticalAlignmentenumtop · center · bottom. Where the arc sits in its box.
timeFontfontType for the time label.
timeActiveColorcolorTime label colour for the active milestone.
timeInactiveColorcolorTime label colour for the rest.
stepFontfontType for the step copy.
descriptionColorcolorColour of the step copy.
stepLineActiveColorcolorTick colour under the active milestone.
stepLineInactiveColorcolorTick colour elsewhere.
placeholderLineColorcolorColour of the boundary ticks.
PropTypeBehaviour
dataSourceenumjson or raw. Where the milestones come from.
jsonDatastringJSON array of milestones when dataSource is json.
rawDataarrayMilestones set in the panel: a time label plus a list of steps.
defaultActiveStepIndexnumberWhich milestone is lit on load.
circleWidthnumberRadius of the arc the markers sit on, 1000 to 10000 pixels.
angleBetweenMinorStepsnumberAngular spacing between steps, 0.1 to 1 degrees.
lineCountFillBetweenStepsnumberHow many tick lines fill the gap between steps.
boundaryPlaceholderLinesCountnumberTick lines drawn past the first and last milestone.
enableAnimationbooleanSteps through the milestones on its own.
animationIntervalnumberSeconds each milestone holds while auto-looping.
verticalAlignmentenumtop · center · bottom. Where the arc sits in its box.
timeFontfontType for the time label.
timeActiveColorcolorTime label colour for the active milestone.
timeInactiveColorcolorTime label colour for the rest.
stepFontfontType for the step copy.
descriptionColorcolorColour of the step copy.
stepLineActiveColorcolorTick colour under the active milestone.
stepLineInactiveColorcolorTick colour elsewhere.
placeholderLineColorcolorColour of the boundary ticks.

Usage

Guidance carried over from the component definition.

Reach for MilestoneTimeline

A history, roadmap or process needs to read as one continuous run.

Each milestone carries several steps rather than a single line.

The section should idle through its own milestones unattended.

Type and line colours need to be set per state, active against inactive.

Reach for something else

The entries are a plain list with no ordering in time — use a stack.

The data lives in the CMS — this reads from its own array or JSON.

You need a Gantt or dated chart — use ChartX.

Io — Enhancements

Every specimen above is a live component instance. Colour, type and radius resolve from the project theme tokens.

io

An experiment in what a design system becomes when AI can consume it.

© 2026 io

Contact me

Create a free website with Framer, the website builder loved by startups, designers and agencies.