import React from 'react'; import { AbsoluteFill, Sequence, interpolate, spring, useCurrentFrame } from 'remotion'; import { palette } from './contract'; const clamp = { extrapolateLeft: 'clamp' as const, extrapolateRight: 'clamp' as const }; const font: React.CSSProperties = { fontFamily: 'Archivo, sans-serif' }; const LogoMark: React.FC<{ size?: number }> = ({ size = 52 }) => ( ); const Backdrop: React.FC<{ frame: number }> = ({ frame }) => { const drift = interpolate(frame, [0, 359], [0, 28], clamp); return ( ); }; const Opening: React.FC = () => { const f = useCurrentFrame(); const reveal = spring({ frame: f, fps: 30, durationInFrames: 26, config: { damping: 200 } }); const float = Math.sin((f / 90) * Math.PI) * 10; return ( Relay Make room for focused work {[0, 1, 2].map((item) => )} ); }; type CalendarCardProps = { left: string; top: number; title: string; detail: string; focused?: boolean; focusMix?: number; blue?: boolean }; const CalendarCard: React.FC = ({ left, top, title, detail, focused = false, focusMix = 0, blue = false }) => ( {title} {detail} ); const ProgressCard: React.FC<{ opacity: number }> = ({ opacity }) => ( Progress12 / 16 Planned Done ); const FeatureShowcase: React.FC = () => { const f = useCurrentFrame(); const enter = spring({ frame: f, fps: 30, durationInFrames: 30, config: { damping: 200 } }); const collaboration = interpolate(f, [0, 8, 47, 63], [1, 1, 0, 0], clamp); const focusMix = interpolate(f, [46, 63, 99, 117], [0, 1, 1, 0], clamp); const progressMix = interpolate(f, [106, 123, 180], [0, 1, 1], clamp); const titleOne = interpolate(f, [0, 7, 49, 62], [0, 1, 1, 0], clamp); const titleTwo = interpolate(f, [53, 66, 108, 122], [0, 1, 1, 0], clamp); const titleThree = interpolate(f, [113, 126, 180], [0, 1, 1], clamp); const labelStyle = (opacity: number): React.CSSProperties => ({ position: 'absolute', left: 0, top: 0, width: 440, opacity, transform: `translateY(${(1 - opacity) * 16}px)`, fontSize: 56, lineHeight: 1.08, fontWeight: 600, letterSpacing: '-0.055em' }); return ( Relay Plan together Protect focustime See progress Relay JM AK RL Share week WORKSPACE {['Week', 'Inbox', 'Projects', 'People'].map((item, index) => {item})} YOUR SPACE Product Design Team weekOctober 14 – 18 TodayWeek⌄ {['MON 14', 'TUE 15', 'WED 16', 'THU 17', 'FRI 18'].map((day, i) => {day})} 9 AM11 AM1 PM3 PM5 PM JM is planning ); }; const Closing: React.FC = () => { const f = useCurrentFrame(); const reveal = spring({ frame: f, fps: 30, durationInFrames: 24, config: { damping: 200 } }); const opacity = interpolate(f, [0, 9, 22], [0, 1, 1], clamp); return ( Start your next weekwith Relay ); }; export const BenchmarkVideo: React.FC = () => { const frame = useCurrentFrame(); return ( ); };