import {makeScene2D} from '@motion-canvas/2d'; import { Node, Rect, Layout, LayoutProps, } from '@motion-canvas/2d/lib/components'; import {all, loop} from '@motion-canvas/core/lib/flow'; import {createRef, range} from '@motion-canvas/core/lib/utils'; import {linear} from '@motion-canvas/core/lib/tweening'; const YELLOW = '#FFC66D'; const RED = '#FF6470'; const GREEN = '#99C47A'; const BLUE = '#68ABDF'; const Trail = (props: LayoutProps) => ( ); export default makeScene2D(function* (view) { view.fill('black'); const star = createRef(); const trail1 = createRef(); const trail2 = createRef(); const trail3 = createRef(); const dot = createRef(); view.add( <> {range(3).map(_ => ( ))} {range(3).map(_ => ( ))} {range(4).map(i => ( ))} {range(5).map(i => ( ))} {range(5).map(i => ( ))} , ); yield* all( star().rotation(360, 4, linear), loop(4, function* () { yield* trail1().position.y(-150, 1, linear); trail1().position.y(0); }), loop(2, function* () { yield* trail2().position.y(-150, 2, linear); trail2().position.y(0); }), loop(2, function* () { yield* all( trail3().position.y(-130, 2, linear), dot().fill(GREEN, 2, linear), ); dot().fill(BLUE); trail3().position.y(0); }), ); });