The Timeline Model and Layout Maths
AnyTool’s Project Timeline Maker keeps a single timeline object as its source of truth: a timeline has a title and an array of milestones, and each milestone carries a title, an ISO date, an optional one-line description, an optional phase/track label, a colour and a status (done / current / upcoming) with a statusMode flag of auto or manual. For rendering the milestones are sorted by date. Two spacing modes convert dates to positions along a 0–1 fraction: in by-date mode the fraction is (date − minDate) ÷ (maxDate − minDate) so the gaps between markers reflect the real time between them; in even mode the fraction is index ÷ (count − 1) so milestones are spaced equally in sequence regardless of date gaps. Two orientations render those fractions: horizontal places dots along a single axis with their cards alternating above and below the line to avoid overlap (the strip scrolls sideways when wide), and vertical draws a centre line with cards alternating left and right. On the date axis a red dashed today line is drawn at the today fraction when the current date falls inside the span. This is a presentation roadmap, not a Gantt-style scheduler: there are no task durations, percent-complete bars or dependency arrows.
- Timeline → title + milestones; each milestone has date, title, description, phase, colour, status and statusMode
- Milestones are sorted by date for rendering
- By-date fraction = (date − minDate) ÷ (maxDate − minDate); even fraction = index ÷ (count − 1)
- Horizontal: dots on an axis, cards alternate above/below; vertical: centre line, cards alternate left/right
- A red dashed today line marks now on the date axis when today is inside the span
