RemotionUI

Calendar Month Fill

A month grid sweeping up on a diagonal, then events dropping onto their days one at a time.

SceneScenes

calendar-month-fill30fps · 960×540
Install
$ npx remotion-ui@latest add calendar-month-fill

The empty grid fades up on a diagonal sweep and then the events land, each chip dropping onto its day rather than fading in place — so a filling month reads as things being scheduled instead of as a page loading.

The month is laid out from daysInMonth and startWeekday rather than from a date, and there is no date library involved. A scene needs a month that looks right, not one that is correct for a particular year, and this keeps the component free of both a dependency and a timezone bug waiting to happen. Set startWeekday to the column the 1st falls in, counting from Monday.

todayDay rings one date in the accent colour. Pass -1 when the month is a plan rather than a present-tense calendar.

Events are keyed by day number, one chip per day — the cell has room for the day number and a single chip at 1080p. If two things happen on one day, say so in the label rather than stacking chips.

The month comes from daysInMonth and startWeekday rather than from a date — a scene needs a month that looks right, not one correct for a particular year, and this keeps the component free of a date library and a timezone bug. Chips drop onto their day rather than fading in place, so a filling month reads as things being scheduled. One chip per day is the ceiling at 1080p.

Agent notes

Install first, then import the copied source component locally. AI guide →

Import
@/remotion/scenes/calendar-month-fill
  • Use when: full-frame scenes, overlays, cards, and reusable video sections.
  • Customize: month, year, daysInMonth, startWeekday, plus copied source for timing, layout, colors, and typography.
  • Rule: do not import this component from the remotion-ui npm package; it is copied into your project.

Usage

Example
import { CalendarMonthFill } from "@/remotion/scenes/calendar-month-fill"; <CalendarMonthFill month="August" year="2026" daysInMonth={31} startWeekday={5} todayDay={15} events={[ { day: 4, label: "Kickoff", color: "#7DD3E8" }, { day: 15, label: "Render day", color: "#9BD4A0" }, ]} holdSeconds={3.4} />

API Reference

PropTypeDescription
monthstringMonth name in the header.
yearstringYear beside the month.
daysInMonthnumberHow many day cells the month has.
startWeekdaynumberColumn the 1st falls in, counting from Monday as 0.
todayDaynumberDay given the accent ring. Pass -1 when the month is a plan.
eventsCalendarEvent[]Day number, label and chip colour. One chip per day.
weekdayLabelsstring[]Column headings; their count sets the grid width.
gridAtSecondsnumberSecond the empty grid starts sweeping up.
eventsAtSecondsnumberSecond the first event drops.
staggerSecondsnumberSeconds between events.
holdSecondsnumberSeconds the filled month holds before it retreats. Omit to leave it up.
accentColorstringToday's ring, and the fallback chip colour.
backgroundColorstringPage behind the card. Defaults to the theme page colour.
theme"dark" | "light"Surface palette.
speednumberAnimation speed multiplier.

Related