Free Online CSS Timeline Generator with a Mobile Fallback
Build a vertical CSS timeline and watch it as you work. Set the line on the left or centred with alternating entries, the dot size and colour, the gap between entries, the card and the date label. A compact horizontal variant is included, and the output collapses to one column on a phone.
First release
The first public version shipped with three modules and no account system at all.
Rewritten layout
The page shell moved to a shared template, which cut the duplicated markup in half.
Offline by default
Every tool now runs in the browser, so nothing is uploaded and the pages work with the network off.
Narrow the browser window to see the single column fallback the generated CSS includes.
Enjoying WizTools123? Help keep our server infrastructure 100% free and open for everyone.
How to Build a Timeline with CSS
A few steps, and nothing is uploaded.
What to Know About CSS Timelines
Including why the alternating layout has to collapse on a phone.
::before on the wrapper, positioned absolutely and stretched from top to bottom, gives one continuous line whatever the gap is. The trade off is that the wrapper needs position: relative and the entries need enough padding to clear the line, which is why the padding and the line position are calculated together in the output.
ol and li as on divs, so use the list and add list-style: none. Dates are worth putting in a time element with a datetime attribute as well.
Key Features & Capabilities
What this tool does, and what it deliberately does not.
About the CSS Timeline Generator
A timeline is a line, a row of dots and a card per entry, and every part of it can be done in CSS with no images and no JavaScript. The awkward bits are the arithmetic. The line has to be positioned so the dots sit exactly on it, the entry padding has to clear both, and the centred variant needs a different set of offsets for the odd and even entries, which is where most hand written attempts drift by a pixel or two and never quite look right.
This page does that arithmetic from the numbers you set. The line width, the dot size and the dot ring together decide where the line goes and how much padding each entry needs, so the dots stay centred on the line whatever size you choose. The preview is three real entries with the generated stylesheet applied to them, so what you see is the browser running your rules rather than a drawing of the result.
The part worth insisting on is the narrow screen. A centred alternating timeline is a good desktop layout and a poor phone one, so the output always ends with a media query that collapses it to a single left aligned column. The breakpoint is yours to choose. What the tool will not do is hand you the desktop half and let you discover the problem later on a phone.
Frequently Asked Questions
Layout, the line, semantics and narrow screens.
::before on the wrapper, stretched from top to bottom, and the gap no longer matters. That is what the generated CSS does, which is why the wrapper needs position: relative.ol with one li per entry tells a screen reader how many events there are and which comes first, and it costs you one list-style: none. The generated rules use a wrapper class and a child class, so they apply to list markup without any changes.overflow-x: auto on the wrapper so it can. A horizontal timeline with more than about four entries will always be wider than a phone, and sideways scrolling is a reasonable answer as long as it is the wrapper that scrolls and not the page. Below your breakpoint the horizontal variant collapses to the same single column as the others.