import type { CSSProperties, ReactNode } from "react"; import { AbsoluteFill, Sequence, useCurrentFrame, useVideoConfig, interpolate, spring } from "remotion"; import { demoIcerik as c } from "../lib/demo-icerik"; import { Fonts } from "./Fonts"; const colors = { paper: "#f3f1e7", ink: "#243d32", accent: "#35624c", sage: "#dce4d4", line: "#bfcdbd" }; const serif = '"Tasnora Serif", serif'; const sans = '"Tasnora Sans", sans-serif'; const title: CSSProperties = { margin: 0, fontFamily: serif, fontSize: 60, lineHeight: 1.16, fontWeight: 400, letterSpacing: -1.8 }; function Card({ index, children, style }: { index: number; children: ReactNode; style?: CSSProperties }) { const frame = useCurrentFrame(); const { fps } = useVideoConfig(); const enter = spring({ fps, frame: Math.max(0, frame - 8 - index * 6), config: { damping: 200, stiffness: 150 } }); return
{children}
; } function Scene({ index }: { index: number }) { const frame = useCurrentFrame(); const { fps } = useVideoConfig(); const dark = index === 3; const opacity = dark ? interpolate(frame, [0, 12], [0, 1], { extrapolateRight: "clamp" }) : interpolate(frame, [0, 12, 82, 89], [0, 1, 1, 0], { extrapolateLeft: "clamp", extrapolateRight: "clamp" }); const enter = spring({ frame, fps, config: { damping: 200, stiffness: 130 } }); return
{c.marka} /
0{index + 1} / 04
{index === 0 &&

{c.hero.etiket}

{c.hero.baslik}
{c.hero.vurgu}

{c.urun}

TASNORA / 01

{c.kartlar[0].ad}

{c.kartlar[0].alanlar.map(text =>

{text}

)}
} {index === 1 && <>

Küçük bir düzen. Daha çok alan.

{c.ozellikler.map((feature, i) => {feature.sembol}

{feature.baslik}

{feature.ozet}

)}
} {index === 2 && <>

İhtiyacın kadar alan.

{c.planlar.map((plan, i) =>

{plan.ad}

{plan.fiyat} ₺

{plan.aciklama}

)}
} {index === 3 &&

{c.hero.vurgu}

{c.hero.eylem} ↗

{c.marka} / {c.urun}

}

Kurgusal dijital set · örnek fiyatlar · gerçek satış yapılmaz

; } export function Tasnora() { return {[0, 1, 2, 3].map(index => )}; }