Timeline.
Make the sequence feel natural.
Live preview
Design
Start with a clear purpose.Build
Bring the details to life.Ship
Make something worth using.
import { Timeline } from "luminescent";
import "luminescent/style.css";
export function Example() {
return (
<Timeline
data={[
{ title: "Design", content: "Start with a clear purpose." },
{ title: "Build", content: "Bring the details to life." },
]}
/>
);
}
Installation
npm install luminescent
Import luminescent/style.css once at your application root. The example above uses the same package implementation as Storybook.
Variants and states
Use the preview controls to explore the supported variants, sizes, disabled/loading states and reduced motion. Controls appear only where the component exposes the corresponding prop. Theme and glow apply to every component.
API reference
Generated from the source TypeScript interfaces. Native attributes, className, style, aria-* and data-* also pass through to the documented element. Import TimelineProps from the package for the full inherited contract.
| Prop | Type | Details |
|---|---|---|
datarequired | TimelineEntry[] | Optional unless marked required. |
title | React.ReactNode | Optional unless marked required. |
description | React.ReactNode | Optional unless marked required. |
containerRef | React.RefObject<HTMLElement | null> | Optional unless marked required. |
Accessibility and keyboard
An ordered list keeps all information available during SSR and reduced motion. One transform-only scroll beam uses the optional containerRef; no per-item scroll listeners or measurements are required.
Keep labels meaningful and test application-level contrast, focus order and screen-reader output. See the accessibility guide for composition requirements.
Theme customization
import { LuminescentProvider, Timeline } from "luminescent";
import "luminescent/style.css";
export function Example() {
return (
<LuminescentProvider theme="light" accent="violet" glow="subtle">
<Timeline
data={[
{ title: "Design", content: "Start with a clear purpose." },
{ title: "Build", content: "Bring the details to life." },
]}
/>
</LuminescentProvider>
);
}
Switch between light and dark in the preview, or open the playground for a larger workspace. Custom CSS variables can override spacing, color, typography and effects.