RemotionUI

Weather Card

Conditions with iconography that never stops — rays turn, clouds drift, drops and flakes fall on their own loops.

SceneScenes

weather-card30fps · 960×540
Install
$ npx remotion-ui@latest add weather-card

The temperature counts up, the forecast row arrives day by day, and the iconography runs continuously underneath all of it — which means the card is never a still image, and needs no exit to stay alive in a loop.

Every moving part is a pure function of the frame: frame * rate wrapped into its own period, with each ray, drop or flake offset by its own index. Nothing accumulates state between frames, so a frame rendered out of order on a render farm is identical to the same frame rendered in sequence. That is a hard requirement in Remotion, not a stylistic choice — anything driven by a useRef counter will drift.

Four conditions ship: sun, cloud, rain and snow. Each forecast column runs its own clock, offset by nine frames per column, so the row never becomes five glyphs moving in lockstep.

The degree symbol takes accentColor while the glyph takes the condition colour. They are deliberately separate — the brand mark should not change hue when the weather does.

Every moving part is a pure function of the frame — frame × rate wrapped into its own period, with per-particle offsets from the particle's index — so a frame rendered out of order on a render farm is identical to the same frame rendered in sequence. Each forecast column runs its own clock nine frames apart, so the row is never five glyphs in lockstep. The card needs no exit to stay alive in a loop.

Agent notes

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

Import
@/remotion/scenes/weather-card
  • Use when: full-frame scenes, overlays, cards, and reusable video sections.
  • Customize: place, detail, temperature, unit, 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 { WeatherCard } from "@/remotion/scenes/weather-card"; <WeatherCard place="Lisbon" temperature={24} condition="sun" conditionLabel="Clear, light breeze" forecast={[ { label: "Sat", condition: "sun", high: 24, low: 14 }, { label: "Sun", condition: "cloud", high: 22, low: 13 }, { label: "Mon", condition: "rain", high: 18, low: 12 }, ]} />

API Reference

PropTypeDescription
placestringPlace name across the top.
detailstringLine under the place — a time, a date, a feels-like.
temperaturenumberThe temperature the card counts up to.
unitstringDegree suffix, used on the headline and the forecast.
condition"sun" | "cloud" | "rain" | "snow"Which glyph runs beside the headline.
conditionLabelstringWords under the temperature.
forecastForecastDay[]Label, condition, high and low per column.
temperatureAtSecondsnumberSecond the temperature starts counting.
countSecondsnumberHow long the count takes.
forecastAtSecondsnumberSecond the first forecast day arrives.
staggerSecondsnumberSeconds between forecast days.
holdSecondsnumberSeconds the card holds before it retreats. Omit to leave it up — the iconography keeps moving either way.
accentColorstringThe degree symbol. Kept off the condition colour on purpose.
backgroundColorstringPage behind the card. Defaults to the theme page colour.
theme"dark" | "light"Surface palette.
speednumberAnimation speed multiplier.

Related