This component no longer exists. It was in remotionui’s manifest when we first indexed it and is not there now — the registry served its inventory on 2026-08-11 and this item was not on it. The install command below will fail. It is kept here because a tutorial somewhere still tells people to run it.
line-chart-draw
remotionui/line-chart-drawRemovedComponent
SVG line chart that draws itself on
Live preview
live · rendered by the registry
Rendered by remotionui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://remotionui.com/r/line-chart-draw.jsonSource
1import { useId } from "react";2import { getLength, getPointAtLength } from "@remotion/paths";3import { interpolate, useCurrentFrame, useVideoConfig } from "remotion";4import {5 buildAreaPath,6 buildLinePath,7 buildSmoothPath,8 formatAxisValue,9 getPlotArea,10 niceDomain,11 plotPoints,12 type ChartPoint,13} from "@/remotion/lib/chart-utils";14import { EASING } from "@/remotion/lib/motion-tokens";15import { getPathDrawStyles } from "@/remotion/lib/path-utils";1617export type LineChartDrawProps = {18 points: ChartPoint[];19 /** Drawing width. Defaults to the composition width. */20 width?: number;21 /** Drawing height. Defaults to 40% of the composition height. */22 height?: number;23 color?: string;24 strokeWidth?: number;25 /** Cardinal spline through the points, or straight segments. */26 variant?: "smooth" | "linear";27 /** Gridlines and value labels down the left gutter. */28 showAxis?: boolean;29 /** Category labels under the plot, read from `point.label`. */30 showXLabels?: boolean;31 /** Gradient fill under the line, wiped in with the draw. */32 showArea?: boolean;33 /** Dot deposited on each data point as the line passes it. */34 showDots?: boolean;35 /** Glowing dot riding the tip of the line while it draws. */36 showHead?: boolean;37 /** Value callout pinned to the final point once the draw lands. */38 showEndLabel?: boolean;39 /**40 * Anchor the value axis at zero. Turn it off for sparklines, where the shape41 * of the recent range matters more than its distance from zero.42 */43 includeZero?: boolean;44 /** Formats axis ticks and the end label. */45 valueFormatter?: (value: number) => string;46 /** Text colour for axis and category labels. */47 labelColor?: string;48 gridColor?: string;49 /** Ink behind the dots — match the surface the chart sits on. */50 surfaceColor?: string;51 durationInFrames?: number;52 delayInFrames?: number;53 /** Frame override — pass the parent frame inside a `<Sequence>`. */54 frame?: number;55};5657const clamp01 = (value: number) => Math.min(1, Math.max(0, value));5859/**60 * A line chart that draws itself on.61 *62 * The line, its fill, gridlines and labels are all projected from one plot63 * rectangle (see `chart-utils`), so the geometry stays locked together at any64 * size. The draw is a single progress value: the stroke evolves along its own65 * length, the fill is wiped by a clip rect, and each dot lands as the tip66 * passes it — one gesture instead of several animations that merely overlap.67 */68// … truncated
